ansible是自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,
实现了批量系统配置、批量程序部署、批量运行命令等功能。无客户端。
playbook,配置管理,部署以及语法编排.如何使用/usr/bin/ansible执行ad-hoc并行命令,
ansible的核心有什么样的模块可供使用.当然以后你也可以写你自己的模块.
基础环境讲解:
ansible服务器
域名解析
vim /etc/hosts
192.168.184.165 ansible
192.168.184.166 host1
192.168.184.167 host2
yum install -y ansible
检测部署是否完成 rpm -qc ansible
免密码ssh-key的方式。
ssh-keygen
ssh-copy-id IP地址 推送公钥
登录:
增加用户名选项,增加密码选项
ansible host2 -m ping -u root -k -o
去掉(yes/no)的询问
vim /etc/ssh/ssh_config
StrictHostKeyChecking no
systemctl restart sshd
定义主机清单:
vim /etc/ansible/host
host1 ansible_ssh_user='root' ansible_ssh_pass='666666' ansible_ssh_port='2222' 可以单独写一个主机并添加端口。
[webserver] 使用主机组方式
host[1:2] 使用正则表达式
host1
host2 单独写1-2
[webserver:vars] 组变量
ansible_ssh_user='root'
ansible_ssh_pass='666666'
[apache]
host1
[nginx]
host2
[webserver:children] 将不同的分组进行组合
apache
nginx
[webserver:vars]
ansible_ssh_user='root'
ansible_ssh_pass='666666'
Ad-Hoc-点对点模式:
临时的,在ansible中是指需要快速执行的单条命令,并且不需要保存的命令。对于复杂的命令则为 playbook。
常用模块
1.shell模块
帮助 ansible-doc shell
ansible webserver -m shell -a 'hostname' -o 获取主机名
ansible host2 -m shell -a 'yum -y install httpd' -o 部署apache
2.复