02-Ansible命令行工具

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 用户配置文件,如果存在则覆盖默认配置。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335