ansible node1,node2,node3 ? ?--list-hosts ? ?: ? 列出匹配到的主机
在/ect/ansible/hosts里面加入主机清单,在组外面的是单台主机,分组控制比较方便,用ansible命令发送指令
node6 ? ? : ?不属于任何组需要写在主机清单最上面
[组名]
node1
node2
node3
[组名]
node4
node5
ansible ?all ?--list-hosts ? : ?查看匹配到的主机清单
ansible ?ungrouped ?--list-hosts ?: ?查看不属于任何组的主机
[db:children] ? : ?嵌套组
组名1
组名2
ansible ? ???.example.com ? --list-hosts ? ?: ? ?列出任何三个开头的主机
ansible ? '*.example.com' ? ?--list-hosts ? : ? 列出任何开头的主机
ansible ? '*.example.com,!*.lab.example.com' ? ?--list-hosts ? : ? 列出除了所有开头的.lab.example.com的.example.com 的主机
ansible ?'prod,172*,*lab*' ? --list-hosts ? ?: ? 列出prod组里的172开头的或包含lab的主机
ansible ?'db,&london' ? --list-hosts ? : ? 匹配到属于db组和london组的主机
?
ansible ?all ? --limit ? ?db1.example.com ?--list-hosts ? : ?执行失败的主机指定在db1.example.com上再执行
ansible ?all ? --limit ? @hosts.txt ? --list-hosts ? ?: ?把执行失败的主机在再执行一遍,必须要在主机清单中
ansible ?all ? -i ? hosts.txt ? --list-hosts ? : ? ?把执行失败的主机在再执行一遍,不必非要在主机清单中
ansible ?node1 ?-m ?shell ? -a ?'pwd' ?-u ? admin ?-k ?: ?指定被控端用户admin
ansible配置文件/etc/ansible/ansible.cfg
remote_user = ?devop ? : ? 指定被控端连接的用户
[privilege_escalation]
become=True ? ? ? : ? 是否要提权
become_method=sudo ? ? ?: ? ? 用到sudo提权
become_user=root ? ? ? ?: ? ?提权到root身份
become_ask_pass ? ? ? : ?提权时,是否交互提示密码验证
定义ansible的配置文件
vim /etc/ansible/ansible.cfg
inventory ? ? ?= /etc/ansible/inventory ?#定义主机清单的路径
#remote_tmp ? ? = ~/.ansible/tmp ?#定义被控端的脚本临时存放目录
#local_tmp ? ? ?= ~/.ansible/tmp ?#定义主控端的脚本临时存放目录
forks ? ? ? ? ?= 5 ?#定义并发数
remote_user = devops #指定被控端连接的用户
ask_pass ? ? ?= True ?#密码密钥,默认时密钥验证
remote_port ? ?= 22 ? #被控端主机的端口号
host_key_checking = False #自动接受被控端的公钥
[privilege_escalation]
become=True ?#是否要提权
become_method=sudo #用sudo提权
become_user=root ? #提权到root用户
become_ask_pass=False ?#提权时不需要输入密码
#定义ansible的配置文件的优先级
1.ANSIBLE_CONFIG定义的配置文件路径,优先级最高
ANSIBLE_CONFIG=/var/lib/ansible/ansible.cfg
2.其次是当前目录下面的ansible.cfg
./ansible.cfg
3.其次是~/.ansible.cfg
4.最后是/etc/ansible/ansible.cfg
#ansible帮助文档
1.ansible官方文档
2.ansible内置帮助
?? ?ansible-doc -l 查看所有的模块
?? ?ansible-doc 模块名 ?查找该模块的参数