自动化运维工具ansible
作用
批量管理服务器,实现运维自动化。
安装
rpm包安装
yum install ansible -y
编译安装
yum -y install python-jinja2 PyYAML python-paramiko python-babelpython-cryptotar xf ansible-1.5.4.tar.gzcd ansible-1.5.4python setup.py buildpython setup.py installmkdir /etc/ansiblecp -r examples/* /etc/ansible
pip安装
pip是安装Python包的管理器,类似yum
yum install python-pip python-develyum install gcc glibc-devel zibl-devel rpm-bulid openssl-develpip install --upgrade pippip install ansible --upgrade
相关文件
/etc/ansible/ansible.cfg 主配置文件,配置ansible工作特性
/etc/ansible/hosts 主机清单
/etc/ansible/roles/ 存放角色的目录
/etc/ansible/ansible.cfg配置文件
[defaults]#inventory = /etc/ansible/hosts # 主机列表配置文件#library = /usr/share/my_modules/ # 库文件存放目录#remote_tmp = $HOME/.ansible/tmp #临时py命令文件存放在远程主机目录#local_tmp = $HOME/.ansible/tmp # 本机的临时命令执行目录#forks = 5 # 默认并发数#sudo_user = root # 默认sudo 用户#ask_sudo_pass = True #每次执行ansible命令是否询问ssh密码#ask_pass = True #remote_port = 22#host_key_checking = False # 检查对应服务器的host_key#log_path=/var/log/ansible.log #日志文件
/etc/ansible/hosts 主机清单
[webservers]/////////////////////[dbservers]///////////////////
ansible命令
ansible <host-pattern> [-m module_name] [-a args]
连通需要管理的主机
主机 | IP |
---|---|
ansible控制端 | 192.168.188.130 |
nginx1 | 192.168.188.131 |
nginx2 | 192.168.188.132 |
nginx3 | 192.168.188.134 |
将需要管的主机IP加入主机清单中
vim /etc/ansible/hosts[webservers]192.168.188.131192.168.188.132[dbservers]192.168.188.134
配置免密登录
ssh-key-genssh-copy-id 192.168.188.132ssh-copy-id 192.168.188.131ssh-copy-id 192.168.188.134
测试连通性
ansible all -m ping192.168.188.131 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"},"changed": false,"ping": "pong"}192.168.188.134 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python3"},"changed": false,"ping": "pong"}192.168.188.129 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python3"},"changed": false,"ping": "pong"}
ansible常用模块
command
默认模块
ansible all -m command -a 'ip a'
ping
测试连通性,成功回复pong
ansible all -m ping
yum
管理包,默认安装
ansible all -m yum -a 'name=nginx' #安装ansible all -m yum -a 'name=nginx state=absent' #删除
nginx端用rpm包查看
rpm -ql nginx|grep bin
service
管理服务
ansible all -m service -a 'name=nginx state=started' #启动ansible all -m service -a 'name=nginx state=stopped' #关闭