环境
- 主机:需要一台控制节点,其他的为被控制节点
- 解析:添加本地解析
- 配置ssh公钥认证
systemctl start sshd #启动ssh服务
ssh-keygen #创建公钥
ssh-copy-id -i 用户名 #实现免密登
安装控制节点
- 配置epel网络yum源
- 安装ansible
yum -y install ansible #安装
ansible --version #查看当前版本
配置主机列表清单(inventory)
vim /etc/ansible/hosts #添加被控节点
[组名]
添加相应的域名或IP
测试
语法:
ansible <pattern> -m <module_name> -a <arguments>
pattern–主机清单里定义的主机组名,主机名,IP,别名等,all表示所有的主机,支持通配符,正则
-m module_name: 模块名称,默认为command
-a arguments: 传递给模块的参数
-o :使得输出结果一行显示
- 使用ping模块检查ansible节点的连通性
ansible jiajia -m ping
ansible jiajia -m ping -o
注意:指定控制节点中的某个节点,可以使用组名[索引]
ansible jiajia[0] -m ping -o
- 执行shell命令
注意:-m 默认的是command
ansible jiajia -m shell -a 'uptime'
ansible jiajia -a 'uptime' -u root -k
使用ssh账户和密码:-u和-k -u 用户 //指定ssh账户
-k //指定使用ssh密码,注意:如果设置了公钥认证,这里写什么密码都可以
- 给节点增加用户
ansible jiajia -a 'useradd hualaotou'
ansible jiajia -m shell -a 'grep hualaotou /etc/passwd' #查看是否创建成功
- 重定向输出到本地文件中
ansible jiajia -a "df -Th">/tmp/a.txt
- 批量安装nginx
ansible jiajia -a "yum -y install nginx"
ansible jiajia -a "nginx -v"