ansible-playbook命令行(more)
1
| usage: ansible-playbook [-h] [--version] [-v] [-k]
|
常用命令行关键字
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
| --ask-vault-password, --ask-vault-pass 要求提供保管库密码
--become-method <BECOME_METHOD> 要使用的特权升级方法(默认= sudo),请使用ansible-doc -t成为-l列出有效的选择。
--become-user <BECOME_USER> 以该用户身份运行操作(默认= root)
--flush-cache 清除清单中每个主机的事实缓存
--force-handlers 即使任务失败也运行处理程序
--list-hosts 输出匹配主机列表;不执行其他任何操作
--list-tags 列出所有可用标签
--list-tasks 列出将要执行的所有任务
--private-key <PRIVATE_KEY_FILE>, --key-file <PRIVATE_KEY_FILE> 使用此文件来验证连接
--scp-extra-args <SCP_EXTRA_ARGS> 指定额外的参数以仅传递给scp(例如-l)
--sftp-extra-args <SFTP_EXTRA_ARGS> 指定额外的参数以仅传递给sftp(例如-f,-l)
--skip-tags 仅运行标签与这些值不匹配的剧本和任务
--ssh-common-args <SSH_COMMON_ARGS> 指定要传递给sftp / scp / ssh的通用参数(例如ProxyCommand)
--ssh-extra-args <SSH_EXTRA_ARGS> 指定额外的参数以仅传递给ssh(例如-R)
--start-at-task <START_AT_TASK> 在与此名称匹配的任务处启动剧本
--step 一步一步:在运行之前确认每个任务
--syntax-check 在剧本上执行语法检查,但不执行
--vault-id 要使用的库身份
--vault-password-file, --vault-pass-file 保险库密码文件
--version 显示程序的版本号,配置文件位置,配置的模块搜索路径,模块位置,可执行文件位置和退出
-C, --check 不要做任何改变;相反,尝试预测可能发生的某些变化
-D, --diff 更改(小的)文件和模板时,请显示这些文件中的差异;与–check一起使用效果很好
-K, --ask-become-pass 要求特权升级密码
-M, --module-path 将冒号分隔的路径添加到模块库(默认=〜/ .ansible / plugins / modules:/ usr / share / ansible / plugins / modules)
-T <TIMEOUT>, --timeout <TIMEOUT> 覆盖连接超时(以秒为单位)(默认为10)
-b, --become 使用变为运行操作(不表示提示输入密码)
-c <CONNECTION>, --connection <CONNECTION> 要使用的连接类型(默认=智能)
-e, --extra-vars 如果文件名以@开头,则将其他变量设置为key = value或YAML / JSON
-f <FORKS>, --forks <FORKS> 指定要使用的并行进程数(默认= 5)
-h, --help 显示此帮助消息并退出
-i, --inventory, --inventory-file 指定清单主机路径或逗号分隔的主机列表。–不推荐使用库存文件
-k, --ask-pass 询问连接密码
-l <SUBSET>, --limit <SUBSET> 将所选主机进一步限制为其他模式
-t, --tags 只运行带有这些值标记的剧本和任务
-u <REMOTE_USER>, --user <REMOTE_USER> 以该用户身份连接(默认=无)
-v, --verbose 详细模式(-vvv用于更多,-vvvv用于启用连接调试)
|
执行Playbook的语法
$ ansible-playbook deploy.yml
查看输出的细节
ansible-playbook playbook.yml --verbose
查看该脚本影响哪些hosts
ansible-playbook playbook.yml --list-hosts
并行执行脚本
ansible-playbook playbook.yml -f 10
完整的playbook脚本示例
最基本的playbook脚本分为三个部分:
- 在什么机器上以什么身份执行
- 执行的任务是都有什么
- 善后的任务都有什么
deploy.yml文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| --- - hosts: webservers vars: http_port: 80 max_clients: 200 user: root tasks: - name: ensure apache is at the latest version yum: pkg=httpd state=latest - name: write the apache config file template: src=/srv/httpd.j2 dest=/etc/httpd.conf notify: - restart apache - name: ensure apache is running service: name=httpd state=started handlers: - name: restart apache service: name=httpd state=restarted
|
playbook语法特性
1 2 3 4 5
| 1. 以 --- (三个减号)开始,必须顶行写; 2. 次行开始写Playbook的内容,但是一般要求写明该playbook的功能; 3. 严格缩进,并且不能用Tab键缩进; 4. 缩进级别必须是一致的,同样的缩进代表同样的级别,程序判别配置的级别是通过缩进结合换行来实现的; 5. K/V的值可同行写,也可换行写。同行使用 :分隔,换行写需要以 - 分隔;
|