一。目录结构:
二。配置文件解析
1. Inventory:主机列表配置文档
2.ansible.cfg:可存放多地
2.1 ansible读取此conf的顺序:当前命令执行目录-- >用户家目录-- >/etc/ansible.cfg
2.2该文件遵循INI格式
2.3 参数详解。。。
三。ansible常规两种命令用法详解
(一)命令类型:
1. Ad-Hoc:用于临时命令的执行
2.Ansible-playbook:Ad-Hoc命令的集合
with_items,failed_when,changed_when,until,ignore_error等逻辑条件,及Checkmode(模拟执行,不会对生产环境产生任何影响)
(二)命令使用格式:'<>'必填,'[]'可选
1. ansible <hotst-pattern> [option]
1.1 <hotst-pattern> :Inventory里的主机或主机组名称
1.2 [option]:参数选项,有很多,列举常用的几个
-m 指定执行的模块
-u 指定远程主机以 -u的用户执行命令
-b 指定变换命令执行的账号,如果后面不接用户,即默认变换为root,如果后面接 -become-user,按此参数的账号执行
-become-user 指定变换的账号
eg: ansible all -m ping -u bruce -b -become-user derek
对all主机调用ping模块,用bruce的账号调sudo derek的权限执行
2. ansible-playbook <playbook.yml> [option]
2.1 <playbook.yml> 事先编辑好的yml文件
2.2 [option]:参数选项,有很多,列举常用的几个
-e 在playbook中引入外部变量
-i 指定要读取的inventory文件
--skip-tags=xx跳过指定的tags任务
--syntax-check 检查playbook中的语法书写
-t 指定执行某个tags任务
3. ansible-doc:模块文档说明,类似man
ansible-doc -l 列出支持的模块
ansible-doc ping ping模块的使用格式
四。ansible系列命令用法:
。。。
五。Inventory配置及详解
1. 默认/etc/ansible/hosts,可以有多个,用-i调取,且支持动态生成
2. ini的文件风格,[xxx], 组名
3. 可以为ip,也可以为能解析的hostname
4. 如果主机ssh不是22端口,可以在ip或hostname后加:port
5. 其他:相对比较复杂些
5.1 主机和主机组变量
5.2 嵌套组