Ansible的安装和模块使用(补充)
-
安装源
yum search ansible
yum -y install centos-release-ansible29 -
安装ansible
yum -y install ansible -
添加主机到清单
vim /etc/ansible/hosts
[webservers]
192.168.189.172
192.168.189.173 -
配置免密
ssh-keygen
ssh-copy-id [email protected]
ssh-copy-id [email protected] -
测试被管理主机是否可达
ansible webservers -m ping
任务的执行方式
ansible 下发单个任务,一次一个
ansible-playbook 读取playbook剧本文件,有序执行多个任务
ansible清单文件路径:/etc/ansible/hosts
ansible命令格式:
ansible 主机/主机组 -m 模块 -a ‘模块的参数’ -f ‘同时执行的主机的数量,默认5个’
ansible webservers -m ping
ansible 配置文件:/etc/ansible/ansible.cfg
remote_user = root # 默认的远程ssh连接用户
remote_port = 22 # 默认的ssh连接端口
forks = 5 # 默认的主机并发数量
inventory = /etc/ansible/hosts # 默认清单文件
module_name = command # 默认的模块
单独指定某个主机的ssh连接端口和连接用户,在清单文件中指定
[webservers]
192.168.189.172:223 ansible_ssh_user=tom
192.168.189.173:224
查询模块的帮助信息
ansible-doc -s 模块名字
常用的模块:
command 在被管理节点执行一条命令(默认)
shell 执行shell命令的,它可以支持一些特殊符号的解释,| &&…
yum 使用yum工具安装软件
参数:
name: 指定你要安装的软件包的名字
state: 指定你的动作:“安装(installed,latest)、卸载(removed、absent)”
ansible webservers -m yum -a 'name=httpd state=latest'
ansible webservers -m yum -a 'name=httpd state=removed'
systemd: 管理服务、启动、停止、重启
参数:
name: 指定你要管理的服务名
state: 指定你的动作:启动(started)、关闭(stopped)、重启(restarted)、重载(reloaded)
enabled: yes、no 开机自启
service
参数:
name: 指定你要管理的服务名
state: 指定你的动作:启动(started)、关闭(stopped)、重启(restarted)、重载(reloaded)
enabled: true 开机自启
实例:
批量安装httpd
ansible webservers -m yum -a ‘name=httpd state=latest’
批量启动所有主机的httpd
ansible webservers -m systemd -a ‘name=httpd state=started enabled=yes’
查看被管理节点的80端口是否被监听
ansible webservers -m shell -a ‘ss -ntl | grep 80’
创建一个httpd的测试页面
ansible webservers -m shell -a ‘echo 1807A > /var/www/html/index.html’