一、安装ansible
在线安装
# 安装epel源
yum install -y epel-release
# 安装ansible
yum install -y ansible
二、配置文件
1、ansible.cfg
[defaults]
#inventory = /etc/ansible/hosts #默认配置文件路径
#host_key_checking = False #取消注释,取消公钥验证
#log_path = /var/log/ansible.log #取消注释,启用日志
2、hosts
# Host-pattern
all //表示所有主机
* //通配符,例如:ansible 192.168.1.* -m ping
: //或的关系,例如:ansible 192.168.1.1:192.168.1.2 -m ping
:& //并且的关系,要加引号,例如:ansible 'db:server' -m ping,即在db组又在server组的主机
:! //非的关系,要加单引号,例如:ansible 'db:!server' -m ping,在db组不在server组的主机
正则表达式 //示例:ansible '~(db|web)server' -m ping
# vars
- ansible_ssh_host: 访问ip地址,用于远程主机多ip场景
- ansible_ssh_user: 访问用户
- ansible_ssh_pass: 访问密码
- ansible_ssh_port: ssh端口
- ansible_become: 是否进行提权操作,[true|false]
- ansible_become_pass: 提权密码,切换用户密码
- ansible_become_user: 提权用户,默认root
- ansible_become_method: 方法,默认sudo
- ansible_sudo_pass: sudo密码
# 执行sudo,需要将配置文件添加"ansible_sudo_pass=xxx"
- adhoc中,还需在命令中添加"-b"参数
- playbook中,还需在任务中添加"become: yes"
3、示例
- 在shell中使用ad-hoc命令引入变量,需把-a后单引号变为双引号
#!/bin/bash
for i in {35..58};do
ansible 171.16.10.$i -i /root/aaa/2.conf -b -m hostname -a "name=dac$i"
done