作者主页:点击!
Ansible专栏:点击!
创作时间:2024年5月18日15点46分
💯趣站推荐💯
前些天发现了一个巨牛的🤖人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家,人工智能, 机器算法等...... 点击跳转网页!
https://www.captainbed.cn/sis
在Ansible自动化运维中,service
模块用于管理系统服务,包括启动、停止、重新启动服务等操作。
service模块的优点
易于使用:
- 语法简单易懂,无需编写复杂脚本
- 支持多种Linux发行版和服务管理系统
- 可通过Ansible ad-hoc命令或Playbook进行调用
功能强大:
- 支持启动、停止、重启、启用、禁用和检查服务状态
- 可以设置服务运行用户、重新加载守护进程配置等参数
- 支持使用模式匹配来管理多个服务
灵活可扩展:
- 可以通过自定义模块扩展
service
模块的功能- 可以将
service
模块与其他Ansible模块组合使用,实现更复杂的自动化任务
使用场景
- 批量管理服务:可以使用
service
模块在多个主机上批量启动、停止或重启服务,例如在部署新软件之前停止相关服务,或者在升级软件之后重新加载服务配置。- 确保服务可用性:可以使用
service
模块定期检查服务状态,并自动重启或修复出现问题的服务,确保关键服务始终处于运行状态。- 服务配置管理:可以使用
service
模块来管理服务的配置文件,例如设置服务运行参数或环境变量。- 自动化部署流程:可以使用
service
模块将服务管理任务纳入自动化部署流程中,提高部署效率和一致性。
实例
启动一个服务
- name: Start Apache service
service:
name: apache2
state: started
停止一个服务
- name: Stop Apache service
service:
name: apache2
state: stopped
重新启动一个服务
- name: Restart Apache service
service:
name: apache2
state: restarted
重载一个服务配置
- name: Reload Apache service
service:
name: apache2
state: reloaded
禁用一个服务
- name: Disable Apache service
service:
name: apache2
enabled: no
启用一个服务
- name: Enable Apache service
service:
name: apache2
enabled: yes
检查服务状态
- name: Check Apache service status
service_facts:
- debug:
var: ansible_facts.services['apache2'].state
实验
通过一台安装ansible服务器来通过service模块
启动两台服务器安装httpd的网站服务器
帮助命令
ansible-doc service
1.增加主机组
通过以下配置就是创建一个webServers组 并且加入两个主机 再给组赋予变量 用户名和密码 这样组下的所有主机都可以访问 更加的便捷
附注事项:
- 确保正确的 Ansible 配置以连接到
webServers
组(通常使用基于 SSH 密钥的身份验证)。
2.开启服务
[root@ansible ~]# ansible webServers -m service -a 'name=httpd state=started'
webServers
:这指定要面向的主机组。此组中的主机应在 Ansible 清单文件中定义。-m service
:这告诉 Ansible 使用该service
模块来管理目标主机上的服务。-a 'name=httpd state=started'
:这定义service
了模块的参数。以下是每个参数的含义:
name=httpd
:这指定要管理的服务的名称,httpd
在本例中为(通常用于 Apache Web 服务器)。state=started
:这将设置所需的服务状态。在这里,您指示 Ansible 确保在所有目标 Web 服务器上启动服务httpd
。
客户端查看是否开启
3.设置开机自启
给httpd服务设置开机自启
默认是关闭的状态
[root@ansible ~]# ansible webServers -m service -a 'name=httpd state=started enabled=yes'
webServers
:这指定了 Ansible 清单文件中定义的目标主机组。-m service
:这告诉 Ansible 使用该service
模块来管理服务。-a 'name=httpd state=started enabled=yes'
:这些是模块的service
参数:
name=httpd
:指定要管理的服务httpd
,即(通常用于 Apache Web 服务器)。state=started
:确保httpd
服务在所有目标 Web 服务器上运行。enabled=yes
:将服务设置为在引导时自动启动。
客户端查看成功
以上我举几个例子
下面的参数请参考
关闭服务
[root@ansible ~]# ansible webServers -m service -a 'name=httpd state=stopped'
-a 'name=httpd state=stopped'
:这些是模块的service
参数:
name=httpd
:指定要管理的服务httpd
,即(通常用于 Apache Web 服务器)。state=stopped
:确保在所有目标 Web 服务器上停止httpd
服务。
’重启服务
[root@ansible ~]# ansible webServers -m service -a 'name=httpd state=restarted'
-a 'name=httpd state=restarted'
:这些是模块的service
参数:
name=httpd
:指定要管理的服务httpd
,即(通常用于 Apache Web 服务器)。state=restarted
:这将指示service
模块执行httpd
服务的重新启动。