Ansible
Ansible version : 2.6.2
ad-hoc命令简介
什么是ad-hoc命令?
ad-hoc命令就是想快速的执行一些任务,但是执行完成后不想保存。
并行和shell命令
举个例子
让我们使用Ansible的命令行工具重启亚特兰大的所有Web服务器,一次10个。首先,让我们设置SSH代理,以便它能记住我们的凭据。
如果您不想使用ssh-agent并希望使用密码而不是密钥进行SSH,则可以使用--ask-pass
(-k
),但最好只使用ssh-agent。
ssh-agent bash
ssh-add ~/.ssh/id_rsa
什么是ssh-agent?
ssh-agent命令是一种控制用来保存公钥身份验证所使用的私钥的程序。ssh-agent在X会话或登录会话之初启动,所有其他窗口或程序则以客户端程序的身份启动并加入到ssh-agent程序中。通过使用环境变量,可定位代理并在登录到其他使用ssh机器上时使用代理自动进行身份验证。
其实ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。
现在,在组中的所有服务器上运行该命令,在本例中为 atlanta,以10个并行分叉运行:
ansible atlanta -a "/sbin/reboot" -f 10
/usr/bin/ansible将默认从您的用户帐户运行。如果您不喜欢此行为,请传入-u username
。如果要以不同的用户身份运行命令
ansible atlanta -a "/usr/bin/foo" -u username
通常,您不希望仅从您的用户帐户执行操作。如果要通过权限提升运行命令
ansible atlanta -a“/ usr / bin / foo”-u username --become [--ask-become-pass]
如果您没有使用无密码权限提升方法(sudo/su/pfexec/doas/etc),请使用--ask-become-pass
(-K
) 。这将以交互方式提示您输入密码。使用无密码设置可以使事情更容易自动化,但这不是必需的。
使用--become-user
也可以成为root之外的用户
ansible atlanta -a“/ usr / bin / foo”-u username --become --become-user otheruser [--ask-become-pass]
我们还可以选择要运行的Ansible的“module”。通常命令会使用-m
指定模块名称,默认模块名称是'command',因此我们不需要一直指定。我们将-m
在后面的示例中使用它来运行其他一些其他模块。
command不支持管道以及重定向操作,尽管shell变量仍然工作。如果你想使用的话,请用shell模块替代。
使用ad-hoc(非Playbooks)运行任何命令时,特别注意shell引用规则,本地shell在传递给Ansible之前不会使用变量。
命令行模式下单引号、与双引号执行本地变量区别,如果使用本地变量时,一定要使用双引号。
PY=12345
ansible localhost -m shell -a 'echo $PY'
localhost | SUCCESS | rc=0 >>
$ ansible localhost -m shell -a "echo $PY"
localhost | SUCCESS | rc=0 >>
12345
此外,ansible通过在开始之前检查当前状态来实现一种幂等形式,并且如果当前状态与指定的最终状态匹配,则什么都不做。
Ansible命令行工具
ansible命令
范例
ansible <host-pattern> [options]
说明
Ansible是一个非常简单的工具/框架/ API,用于做“远程事物”。此命令允许您针对一组主机定义和运行单个任务“playbook”。
选项
询问su密码(弃用,使用become)
--ask-su-pass
询问sudo密码(弃用,使用become)
--ask-sudo-pass
询问vault密码
--ask-vault-pass
使用的提权方法(默认= sudo),有效值 [ sudo | su | pbrun | pfexec | doas | dzdo | ksu | runas | pmrun | enable | machinectl ]
--become-method <BECOME_METHOD>
使用该用户运行,默认值为root
--become-user <BECOME_USER>
列出匹配的主机列表,但不执行任何操作。
--list-hosts
由于ansible命令不使用playbooks,因此将其用作替代playbook目录。这将设置许多功能的相对路径,包括roles/ group_vars/ 等.
--playbook-dir <BASEDIR>
使用文件进行连接认证
--private-key, --key-file
指定仅传递给scp的额外参数(例如-l)
--scp-extra-args <SCP_EXTRA_ARGS>
指定仅传递给sftp的额外参数(例如-f,-l)
--sftp-extra-args <SFTP_EXTRA_ARGS>
指定传递给sftp / scp / ssh的公共参数(例如ProxyCommand)
--ssh-common-args <SSH_COMMON_ARGS>
对playbook语法检查,并不执行
--syntax-check
使用vault标识
--vault-id
vault密码文件
--vault-password-file
ansible版本
--version
异步运行,X秒后失败(默认=N/A)
-B <SECONDS>, --background <SECONDS>
不做任何改变; 相反,尝试预测可能发生的一些变化
-C, --check
更改(小)文件和模板时,显示这些文件的差异; 与-check配合更好
-D, --diff
询问become密码
-K, --ask-become-pass
将冒号分隔的路径预先添加到模块库 (默认值=[u’/home/jenkins/.ansible/plugins/modules’, u’/usr/share/ansible/plugins/modules’])
-M, --module-path
如果使用-B(默认值=15),则设置轮询间隔
-P <POLL_INTERVAL>, --poll <POLL_INTERVAL>
以su作为此用户运行操作(默认=None)(弃用,使用become)
-R <SU_USER>, --su-user <SU_USER>
用su运行操作(弃用,使用become)
-S, --su
以秒为单位覆盖连接超时(默认值=10)
-T <TIMEOUT>, --timeout <TIMEOUT>
期望sudo用户(默认= root)(弃用,使用become)
-U <SUDO_USER>, --sudo-user <SUDO_USER>
模块参数
-a <MODULE_ARGS>, --args <MODULE_ARGS>
使用become操作,并不意味密码提示
-b, --become
连接类型(默认值=smart)
-c <CONNECTION>, --connection <CONNECTION>
设置额外变量为key=value或者json、yaml,如果文件名预置为@
-e, --extra-vars
指定并行处理数,(默认值=5)
-f <FORKS>, --forks <FORKS>
显示帮助信息
-h, --help
指定inventory主机路径或逗号分隔的主机列表。--inventory-file
已弃用
-i, --inventory, --inventory-file
询问连接密码
-k, --ask-pass
进一步限制所选主机为额外模式
-l <SUBSET>, --limit <SUBSET>
选择执行模块名称(默认值=command)
-m <MODULE_NAME>, --module-name <MODULE_NAME>
执行结果显示为一行
-o, --one-line
使用sudo操作(无密码)(已弃用,使用become)
-s, --sudo
日志输出到指定目录
-t <TREE>, --tree <TREE>
设置连接用户(默认值=None)
-u <REMOTE_USER>, --user <REMOTE_USER>
详细模式(-vvv表示更多,-vvvv表示启用连接调试)
-v, --verbose
环境
可以指定以下环境变量。
ANSIBLE_CONFIG
-覆盖默认的ansible配置文件
对于ansible.cfg中的大多数选项,还有更多选项可用。
配置文件
/etc/ansible/ansible.cfg
配置文件,如果存在则使用。
~/.ansible.cfg
用户配置文件,如果存在则覆盖默认配置。
ansible-config命令
范例
ansible-config [view|dump|list] [--help] [options] [ansible.cfg]
说明
命令行配置
选项
显示版本号
--version
配置文件的路径,默认为优先级中找到的第一个文件。
-c <CONFIG_FILE>, --config <CONFIG_FILE>
显示帮助文件
-h, --help
详细模式(-vvv表示更多,-vvvv表示启用连接调试)
-v, --verbose
动作
list
列出读取lib/constants.py的所有当前配置,并显示env和配置文件设置名称
dump
显示当前设置,如果指定,则合并ansible.cfg
仅显示已从默认值更改的配置
--only-changed
view
显示当前配置文件
优先级
ansible将读取配置文件优先级顺序当前工作目录中的ANSIBLE_CONFIG,ansible.cfg,主目录中的.ansible.cfg或/etc/ansible/ansible.cfg。
环境
可以指定以下环境变量。
ANSIBLE_CONFIG
-覆盖默认的ansible配置文件
对于ansible.cfg中的大多数选项,还有更多选项可用。
配置文件
/etc/ansible/ansible.cfg
配置文件,如果存在则使用。
~/.ansible.cfg
用户配置文件,如果存在则覆盖默认配置。
ansible-console命令
范例
ansible-console [<host-pattern>] [options]
描述
交互模式下的ansible
选项
询问su密码(弃用,使用become)
--ask-su-pass
询问sudo密码(弃用,使用become)
--ask-sudo-pass
询问vault密码
--ask-vault-pass
使用的提权方法(默认= sudo),有效值 [ sudo | su | pbrun | pfexec | doas | dzdo | ksu | runas | pmrun | enable | machinectl ]
--become-method <BECOME_METHOD>
使用该用户运行,默认值为root
--become-user <BECOME_USER>
列出匹配的主机列表,但不执行任何操作。
--list-hosts
由于ansible-console命令不使用playbooks,因此将其用作替代playbook目录。这将设置许多功能的相对路径,包括roles/ group_vars/ 等.
--playbook-dir <BASEDIR>
指定文件进行连接认证
--private-key, --key-file
指定仅传递给scp的额外参数(例如-l)
--scp-extra-args <SCP_EXTRA_ARGS>
指定仅传递给sftp的额外参数(例如-f,-l)
--sftp-extra-args <SFTP_EXTRA_ARGS>
指定传递给sftp / scp / ssh的公共参数(例如ProxyCommand)
--ssh-common-args <SSH_COMMON_ARGS>
指定仅传递给ssh的额外参数(例如-R)
--ssh-extra-args <SSH_EXTRA_ARGS>
一步步执行,执行前确认
--step
对playbook语法检查,并不执行
--syntax-check
使用vault标识
--vault-id
vault密码文件
--vault-password-file
ansible版本
--version
不做任何改变; 相反,尝试预测可能发生的一些变化
-C, --check
更改(小)文件和模板时,显示这些文件的差异; 与-check配合更好
-D, --diff
询问become密码
-K, --ask-become-pass
将冒号分隔的路径预先添加到模块库 (默认值=[u’/home/jenkins/.ansible/plugins/modules’, u’/usr/share/ansible/plugins/modules’])
-M, --module-path
以su作为此用户运行操作(默认=None)(弃用,使用become)
-R <SU_USER>, --su-user <SU_USER>
用su运行操作(弃用,使用become)
-S, --su
以秒为单位覆盖连接超时(默认值=10)
-T <TIMEOUT>, --timeout <TIMEOUT>
期望sudo用户(默认= root)(弃用,使用become)
-U <SUDO_USER>, --sudo-user <SUDO_USER>
使用become操作,并不意味密码提示
-b, --become
连接类型(默认值=smart)
-c <CONNECTION>, --connection <CONNECTION>
设置额外变量为key=value或者json、yaml,如果文件名预置为@
-e, --extra-vars
指定并行处理数,(默认值=5)
-f <FORKS>, --forks <FORKS>
显示帮助信息
-h, --help
指定inventory主机路径或逗号分隔的主机列表。--inventory-file
已弃用
-i, --inventory, --inventory-file
询问连接密码
-k, --ask-pass
进一步限制所选主机为额外模式
-l <SUBSET>, --limit <SUBSET>
使用sudo操作(无密码)(已弃用,使用become)
-s, --sudo
设置连接用户(默认值=None)
-u <REMOTE_USER>, --user <REMOTE_USER>
详细模式(-vvv表示更多,-vvvv表示启用连接调试)
-v, --verbose
环境
可以指定以下环境变量。
ANSIBLE_CONFIG
-覆盖默认的ansible配置文件
对于ansible.cfg中的大多数选项,还有更多选项可用。
配置文件
/etc/ansible/ansible.cfg
配置文件,如果存在则使用。
~/.ansible.cfg
用户配置文件,如果存在则覆盖默认配置。
ansible-doc命令
范例
ansible-doc [-l|-F|-s] [options] [-t <plugin type> ] [plugin]
描述
显示Ansible库中安装的模块的信息。它显示了一个简洁的插件列表及其简短描述,提供了他们的DOCUMENTATION字符串的打印输出,它可以创建一个简短的“片段”,可以粘贴到剧本中。
选项
显示版本号
--version
显示插件名称及其源文件不包含摘要
-F, --list_files
将冒号分隔的路径预先添加到模块库 (默认值=[u’/home/jenkins/.ansible/plugins/modules’, u’/usr/share/ansible/plugins/modules’])
-M, --module-path
仅限内部测试显示所有插件的文档。
-a, --all
显示帮助信息
-h, --help
仅限内部测试转储所有插件的json元数据
-j, --json
列出可以用的插件
-l, --list
显示指定插件的playbook片段
-s, --snippet
选择插件类型(默认为module)
-t <TYPE>, --type <TYPE>
详细模式(-vvv表示更多,-vvvv表示启用连接调试)
-v, --verbose
环境
可以指定以下环境变量。
ANSIBLE_CONFIG
-覆盖默认的ansible配置文件
对于ansible.cfg中的大多数选项,还有更多选项可用。
配置文件
/etc/ansible/ansible.cfg
配置文件,如果存在则使用。
~/.ansible.cfg
用户配置文件,如果存在则覆盖默认配置。
ansible-galaxy命令
范例
ansible-galaxy [delete|import|info|init|install|list|login|remove|search|setup] [--help] [options] ...
描述
用于管理共享存储库中的Ansible角色的命令。 默认的Ansible Galaxy https://galaxy.ansible.com.
选项
列出所有集成roles,(存疑,未找到该选项)
--list
删除与提供的ID值匹配的集成。使用-list查看ID值。(存疑,未找到该选项)
--remove <REMOVE_ID>
显示版本号
--version
忽略SSL证书验证错误
-c, --ignore-certs
目标api server
-s <API_SERVER>, --server <API_SERVER>
详细模式(-vvv表示更多,-vvvv表示启用连接调试)
-v, --verbose
动作
info
打印出有关已安装角色的详细信息以及galaxy API提供的信息。
创建roles不查询galaxy api
--offline
包含roles的目录的路径,默认值roles_path配置在ansible.cfg文件里面(没有配置,则为/etc/ansible/roles)
-p, --roles-path
search
Ansible Galaxy查找roles
GitHub 用户名
--author <AUTHOR>
过滤的galaxy标签
--galaxy-tags <GALAXY_TAGS>
过滤OS平台
--platforms <PLATFORMS>
包含roles的目录的路径,默认值roles_path配置在ansible.cfg文件里面(没有配置,则为/etc/ansible/roles)
-p, --roles-path
setup
为Ansible Galaxy roles从github或者Travis安装integration
列出所有自己集成
--list
删除与提供的ID值匹配的集成。使用-list查看ID值
--remove <REMOVE_ID>
list
列出本地系统上安装的roles或者匹配作为参数传递的单个role。
包含roles的目录的路径,默认值roles_path配置在ansible.cfg文件里面(没有配置,则为/etc/ansible/roles)
-p, --roles-path
remove
从本地系统中删除作为参数传递的roles列表
包含roles的目录的路径,默认值roles_path配置在ansible.cfg文件里面(没有配置,则为/etc/ansible/roles)
-p, --roles-path
init
创建一个符合规定的role原始框架
指定role创建的目录,默认是当前工作目录
--init-path <INIT_PATH>
创建时不查询galaxy api
--offline
新role应基于role框架路径
--role-skeleton <ROLE_SKELETON>
初始化使用备用的role类型,有效值包含‘container’, ‘apb’ and ‘network’.
--type <ROLE_TYPE>
强制覆盖已存在role
-f, --force
install
使用要安装的args列表,除去规定的-f,roles列表可以是一个名字(将通过galaxy API and github下载)或者本地的tar.gz文件。
强制覆盖已存在role
-f, --force
打包role时,请使用tar而不是scm archive选项
-g, --keep-scm-meta
忽略错误并继续下一个指定的role
-i, --ignore-errors
不要下载作为依赖项列出的role
-n, --no-deps
包含roles的目录的路径,默认值roles_path配置在ansible.cfg文件里面(没有配置,则为/etc/ansible/roles)
-p, --roles-path
包含要导入的role列表的文件
-r <ROLE_FILE>, --role-file <ROLE_FILE>
import
用于将role导入Ansible Galaxy
要导入的分支的名称。默认为存储库的默认分支(通常为master)
--branch <REFERENCE>
无需等待导入结果
--no-wait
如果role的名称与repo名称不同,则role名称必须指定
--role-name <ROLE_NAME>
检查指定github_user/github_repo的最新导入请求的状态。
--status
login
通过Github验证用户的身份,并从Ansible Galaxy中检索身份验证令牌.
使用github token 而不是用户名和密码进行验证。
--github-token <TOKEN>
delete
从ansible galaxy删除role
环境
可以指定以下环境变量。
ANSIBLE_CONFIG
-覆盖默认的ansible配置文件
对于ansible.cfg中的大多数选项,还有更多选项可用。
配置文件命令
/etc/ansible/ansible.cfg
配置文件,如果存在则使用。
~/.ansible.cfg
用户配置文件,如果存在则覆盖默认配置。
ansible-inventory
范例
ansible-inventory [options] [host|group]
说明
用于显示或者dump inventory配置就像ansible看的那样
选项
询问vault密码
--ask-vault-pass
当使用--list的时候,优化后导出的一种方式表现,而不是Ansible如何处理它的准确表示
--export
由于ansible-console命令不使用playbooks,因此将其用作替代playbook目录。这将设置许多功能的相对路径,包括roles/ group_vars/ 等.
--playbook-dir <BASEDIR>
将vars添加到图形显示中,除非与-graph一起使用否则忽略
--vars
使用vault标识
--vault-id
vault密码文件
--vault-password-file
版本号
--version
帮助信息
-h, --help
指定inventory 主机路径或者逗号分隔的主机列表。--inventory-file
被弃用
-i, --inventory, --inventory-file
详细模式(-vvv表示更多,-vvvv表示启用连接调试)
-v, --verbose
使用yaml格式替换默认的json,-graph下忽略
-y, --yaml
动作
必须在调用时使用以下其中一个,只有一个!
创建inventory图模式,如果提供该模式,则它必须是有效的组名
--graph
输出特定主机信息,作为inventory脚本
--host <HOST>
输出所有主机信息,作为inventory脚本
--list
环境
可以指定以下环境变量。
ANSIBLE_CONFIG
-覆盖默认的ansible配置文件
对于ansible.cfg中的大多数选项,还有更多选项可用。
配置文件
/etc/ansible/ansible.cfg
配置文件,如果存在则使用。
~/.ansible.cfg
用户配置文件,如果存在则覆盖默认配置。
ansible-playbook命令
范例
ansible-playbook [options] playbook.yml [playbook2 ...]
说明
这个工具用来运行Ansible playbooks,它是一个配置和多节点部署系统
选项
询问su密码(弃用,使用become)
--ask-su-pass
询问sudo密码(弃用,使用become)
--ask-sudo-pass
询问vault密码
--ask-vault-pass
使用的提权方法(默认= sudo),有效值 [ sudo | su | pbrun | pfexec | doas | dzdo | ksu | runas | pmrun | enable | machinectl ]
--become-method <BECOME_METHOD>
使用该用户运行,默认值为root
--become-user <BECOME_USER>
清除在inventory里面每台主机的真实缓存
--flush-cache
及时task失败仍然执行handlers
--force-handlers
输出匹配的主机列表,不会执行任何其他操作
--list-hosts
列出所有可用的标签
--list-tags
列出将要执行所有tasks
--list-tasks
指定文件进行连接认证
--private-key, --key-file
指定仅传递给scp的额外参数(例如-l)
--scp-extra-args <SCP_EXTRA_ARGS>
指定仅传递给sftp的额外参数(例如-f,-l)
--sftp-extra-args <SFTP_EXTRA_ARGS>
指定传递给sftp / scp / ssh的公共参数(例如ProxyCommand)
--ssh-common-args <SSH_COMMON_ARGS>
仅运行其标签与这些值不匹配的play和tasks
--skip-tags
指定仅传递给ssh的额外参数(例如-R)
--ssh-extra-args <SSH_EXTRA_ARGS>
在匹配此名称的任务中启动playbook
--start-at-task <START_AT_TASK>
一步步执行:在运行前确认每项任务
--step
语法检查,但是不会执行
--syntax-check
使用vault标识
--vault-id
指定vault密码文件
--vault-password-file
显示版本号
--version
不做任何改变; 相反,尝试预测可能发生的一些变化
-C, --check
更改(小)文件和模板时,显示这些文件的差异; 与-check配合更好
-D, --diff
询问become密码
-K, --ask-become-pass
将冒号分隔的路径预先添加到模块库 (默认值=[u’/home/jenkins/.ansible/plugins/modules’, u’/usr/share/ansible/plugins/modules’])
-M, --module-path
以su作为此用户运行操作(默认=None)(弃用,使用become)
-R <SU_USER>, --su-user <SU_USER>
用su运行操作(弃用,使用become)
-S, --su
以秒为单位覆盖连接超时(默认值=10)
-T <TIMEOUT>, --timeout <TIMEOUT>
期望sudo用户(默认= root)(弃用,使用become)
-U <SUDO_USER>, --sudo-user <SUDO_USER>
使用become操作,并不意味密码提示
-b, --become
连接类型(默认值=smart)
-c <CONNECTION>, --connection <CONNECTION>
设置额外变量为key=value或者json、yaml,如果文件名预置为@
-e, --extra-vars
指定并行处理数,(默认值=5)
-f <FORKS>, --forks <FORKS>
显示帮助信息
-h, --help
指定inventory主机路径或逗号分隔的主机列表。--inventory-file
已弃用
-i, --inventory, --inventory-file
询问连接密码
-k, --ask-pass
进一步限制所选主机为额外模式
-l <SUBSET>, --limit <SUBSET>
使用sudo操作(无密码)(已弃用,使用become)
-s, --sudo
仅运行使用这些值标记的play和tasks
以此用户身份连接(默认=None)
-u <REMOTE_USER>, --user <REMOTE_USER>
详细模式(-vvv表示更多,-vvvv表示启用连接调试)
-v, --verbose
环境
可以指定以下环境变量。
ANSIBLE_CONFIG
-覆盖默认的ansible配置文件
对于ansible.cfg中的大多数选项,还有更多选项可用。
配置文件
/etc/ansible/ansible.cfg
配置文件,如果存在则使用。
~/.ansible.cfg
用户配置文件,如果存在则覆盖默认配置。
ansible-pull命令
范例
ansible-pull -U <repository> [options] [<playbook.yml>]
说明
ansible-pull用于在每个受管节点上启动ansible的远程副本,每个设置通过cron运行,并通过源repository更新playbook源。这将ansible的默认推送架构反转为拉去架构,该架构具有接近无限的扩展潜力。
可以调整设置playbook来改变cron频率、记录位置和参数更改为ansible-pull。这对于极端横向扩展和定期修复都很有用。使用'fetch'模块从ansible-pull运行中检索日志将是从ansible-pull收集和分析远程日志的一种很好的方法。
选项
如果尚未添加,则为repo url添加hostkey。
--accept-host-key
询问su密码(弃用,使用become)
--ask-su-pass
询问sudo密码(弃用,使用become)
--ask-sudo-pass
询问vault密码
--ask-vault-pass
不做任何改变; 相反,尝试预测可能发生的一些变化
--check
工作repository 中的已修改文件将被丢弃
--clean
做一个完整的克隆,而不是浅的克隆。
--full
输出匹配主机列表;不会执行任何其他操作
--list-hosts
指定文件进行连接认证
--private-key, --key-file
playbook完成后清除检出
--purge
指定仅传递给scp的额外参数(例如-l)
--scp-extra-args <SCP_EXTRA_ARGS>
指定仅传递给sftp的额外参数(例如-f,-l)
--sftp-extra-args <SFTP_EXTRA_ARGS>
指定传递给sftp / scp / ssh的公共参数(例如ProxyCommand)
--ssh-common-args <SSH_COMMON_ARGS>
仅运行其标签与这些值不匹配的play和tasks
--skip-tags
指定仅传递给ssh的额外参数(例如-R)
--ssh-extra-args <SSH_EXTRA_ARGS>
子模块将跟踪最新的更改。这相当于为git子模块更新指定-remote标志
--track-subs
使用vault标识
--vault-id
vault密码文件
--vault-password-file
验证签出提交的GPG签名,如果失败则中止运行playbook。这需要相应的VCS模块来支持这种操作
--verify-commit
版本号
--version
指定检出行为为branch/tag/commit,默认为repository 模块的行为
-C <CHECKOUT>, --checkout <CHECKOUT>
询问become密码
-K, --ask-become-pass
将冒号分隔的路径预先添加到模块库 (默认值=[u’/home/jenkins/.ansible/plugins/modules’, u’/usr/share/ansible/plugins/modules’])
-M, --module-path
以秒为单位覆盖连接超时(默认值=10)
-T <TIMEOUT>, --timeout <TIMEOUT>
playbook repository的url
-U <URL>, --url <URL>
连接类型(默认值=smart)
-c <CONNECTION>, --connection <CONNECTION>
检出repository 目标目录
-d <DEST>, --directory <DEST>
设置额外变量为key=value或者json、yaml,如果文件名预置为@
-e, --extra-vars
即使无法更新存储库,也要运行playbook
-f, --force
显示帮助信息
-h, --help
指定inventory主机路径或逗号分隔的主机列表。--inventory-file
已弃用
-i, --inventory, --inventory-file
询问连接密码
-k, --ask-pass
进一步限制所选主机为额外模式
-l <SUBSET>, --limit <SUBSET>
Repository 模块名称,ansible将用于检出存储库。选择是('git','subversion','hg','bzr')。默认是git。
-m <MODULE_NAME>, --module-name <MODULE_NAME>
如果存储库已更新,则运行playbook
-o, --only-if-changed
在开始之前以随机间隔(在0到n秒之间)休眠。这是分散git请求的有用方法
-s <SLEEP>, --sleep <SLEEP>
仅运行使用这些值标记的play和tasks
-t, --tags
设置连接用户(默认值=None)
-u <REMOTE_USER>, --user <REMOTE_USER>
详细模式(-vvv表示更多,-vvvv表示启用连接调试)
-v, --verbose
环境
可以指定以下环境变量。
ANSIBLE_CONFIG
-覆盖默认的ansible配置文件
对于ansible.cfg中的大多数选项,还有更多选项可用。
配置文件
/etc/ansible/ansible.cfg
配置文件,如果存在则使用。
~/.ansible.cfg
用户配置文件,如果存在则覆盖默认配置。
ansible-vault命令
范例
ansible-vault [create|decrypt|edit|encrypt|encrypt_string|rekey|view] [options] [vaultfile.yml]
说明
可以加密Ansible使用的任何结构化数据文件。这可以包括group_vars/或host_vars/ inventory变量,由include_vars或vars_files加载的变量,或使用-e @file.yml或-e @file.json在ansible-playbook命令行上传递的变量文件。角色变量和默认值也包括在内。
因为Ansible tasks,handlers和其他objects 都是数据,这些也可以用Vault加密。如果您不想公开正在使用的变量,可以将单个任务文件保持为完全加密。
当前对所有你想一起使用的采用vault的密码必须一样。
选项
询问vault密码
--ask-vault-pass
用于秘钥更新采用新的vault标识
--new-vault-id <NEW_VAULT_ID>
用于秘钥更新的新vault密码文件
--new-vault-password-file
使用vault标识
--vault-id
vault密码文件
--vault-password-file
版本号
--version
帮助信息
-h, --help
详细模式(-vvv表示更多,-vvvv表示启用连接调试)
-v, --verbose
动作
encrypt
使用提供的vault秘密加密指定文件。
用于加密的vault标识,(如果提供了更多的vault-id,则需要)
--encrypt-vault-id <ENCRYPT_VAULT_ID>
加密或解密的输出文件名,使用 - 用于标准输出
--output
rekey
使用新密码重新加密存储文件,需要先前的密码
用于加密的vault ID(如果提供了更多的vault-id,则需要)
--encrypt-vault-id <ENCRYPT_VAULT_ID>
encrypt_string
使用提供的vault加密指定字符串。
用于加密的vault标识,(如果提供了更多的vault-id,则需要)
--encrypt-vault-id <ENCRYPT_VAULT_ID>
加密或解密的输出文件名,使用 - 用于标准输出
--output
指定stdin的变量名称
--stdin-name <ENCRYPT_STRING_STDIN_NAME>
指定变量名称
-n, --name
提示字符串加密
-p, --prompt
edit
在编辑器中打开并解密现有的存储文件,关闭后将再次加密
用于加密的vault标识,(如果提供了更多的vault-id,则需要)
--encrypt-vault-id <ENCRYPT_VAULT_ID>
create
在编辑器中创建并打开一个文件,该文件将在关闭时使用提供的vault加密
decrypt
使用提供的vault解密指定字符串。
加密或解密的输出文件名,使用 - 用于标准输出
--output
view
打开、解密并查看一个已存在vault并使用寻呼使用提供vault密码
环境
可以指定以下环境变量。
ANSIBLE_CONFIG
-覆盖默认的ansible配置文件
对于ansible.cfg中的大多数选项,还有更多选项可用。
配置文件
/etc/ansible/ansible.cfg
配置文件,如果存在则使用。
~/.ansible.cfg
用户配置文件,如果存在则覆盖默认配置。