/etc/ansible/ansible.cfg ansible配置文件
在这配置文件中分了很多块
在default中有指定主机的清单文件(inventory)
remote_tmp、local_temp 远程的临时目录
fork是指并发命令的执行次数
poll_interval多久时间拉一下数据
remote_port远程主机的端口号
用ansible首次连接前,用ssh连接;否则就再配置文件中host_key_checking 为False
log_path也要开启该日志是记录操作命令的过程
ansible+tab键盘,可以得出来一大堆命令
ansible-doc(类似man帮助)
实例:ansible-doc ping
一般使用 ansible-doc -l 可查看模块的介绍
ansible-doc -s ping 简略了解该命令
ansible all --list 列出所有的主机名单 ansible 组名 --list 列出某个组的清单
ansible webserver -m ping -u wang -k 特定使用远程主机某个用户
实例 ansible webserver -m commod -u wang -k -a’ls /root’ 显示权限不足
ansible webserver -m commod -a’ls /root’ -u wang -k -b -K 才行
注意:需要给被支配的服务器上非root账号授权sudo
visudo vim /etc/sudoers.tmp
添加wang账号到组里去
usermod -aG wheel wang 主组保留
把下列注释去掉,则在ansible命令中不需要输入口令
最便捷的就是基于root的key验证
在控制端上输入:ssh-keygen
ssh-copy-id 被控制端IP1
ssh-copy-id 被控制端IP2
ssh-copy-id 被控制端IP3
ansible all -m ping
ansible的主机模式
或关系:两个分组的主机清单都想执行
或关系则用: 两个组的名单取并集
逻辑与 :& 两个组的名单只取交集
最好都用单引号
也可以在/etc/ansible/ansible.cfg修改执行状态的颜色 colors块
ansible all -m command -a ‘ls /data’
command条件判断:
removes:ansible all -a ‘removes=/etc/fsfasdf cat /etc/fstab’
当removes=/etc/fs…,这个文件不存在,则不执行
··································································
当creates=/etc/fsfas,这个文件不存在,则执行
··································································
chdir切换目录再执行,‘chdir=boot ls’
··································································
执行脚本:ansible IP -a ‘/data/f1.sh’ 再次强调脚本需要规范,头部加shebang机制
··································································
command针对管道、重定向、变量、;、&有问题;
因此相比较command,用shell模块
给wang账号添加密码
ansible all -m shell -a ‘echo magedu|passwd -stdin wang’
·······································································
控制端提供脚本并让被控制端执行该脚本
在控制端创建host.sh脚本,vim host.sh #!/bin/bash hostname
chmod +x host.sh
ansible all -m script -a ‘/root/ansible/host.sh’
····································································