ansible中的命令
ansible中有如下命令:
ansible
ansible-config
ansible-doc
ansible-galaxy
ansible-inventory
ansible-playbook
ansible-pull
ansible-vault
这些命令有非常多的相同的子选项。
1.ansible
(1)Options:普通选项
-a MODULE_ARGS:指定模块的参数
--ask-vault-pass:密码保护
-B SECONDS:异步运行的失败时间
-C:不做任何改变; 相反,尝试预测可能发生的一些变化
-D:更改(小)文件和模板时,显示这些文件的差异; 与-C一起使用效果很好
-e EXTRA_VARS:将其他变量设置为key = value或YAML / JSON,如果filename前缀为@
-f FORKS:开启的进程数量,默认5个
-i INVENTORY:指定HOST文件地址
-l SUBSET:进一步将所选主机限制为其他模式
--list-host:输出匹配主机列表; 不会执行任何其他操作
-m MODULE_NAME:指定使用哪一个模块
-o:将输出压缩
--playbook-dir=BASEDIR:由于此工具不使用playbooks,因此将其用作替代playbook目录。这为许多功能设置了相对路径,包括roles / group_vars / etc.
-P POLL_INTERVAL:设置轮询间隔,默认为15
(2)Privilege Escalation Options:提权选项
-b:提权
--become-method=BECOME_METHOD:要使用的权限升级方法(默认= sudo),请使用`ansible-doc -t成为-l`列出有效的选择。
--become-user=BECOME_USER:提权成为那个用户,默认是root
-K:要求提供权限提升密码
(3)Connection Options:连接选项
-k:询问连接密码
--private-key=PRIVATE_KEY_FILE, --key-file=PRIVATE_KEY_FILE:指定密钥文件
-u REMOTE_USER:使用指定用户连接,默认None
-c CONNECTION:指定连接类型,默认为smart
-T TIMEOUT:指定连接超时时间,默认10秒
--ssh-common-args=SSH_COMMON_ARGS:指定传递给sftp / scp / ssh的公共参数(例如ProxyCommand)
--sftp-extra-args=SFTP_EXTRA_ARGS:指定仅传递给sftp的额外参数(例如-f,-l)
--scp-extra-args=SCP_EXTRA_ARGS:指定仅传递给scp的额外参数(例如-l)
--ssh-extra-args=SSH_EXTRA_ARGS:指定仅传递给ssh的额外参数(例如-l)
2.ansible-playbook
运行playbook,执行指定任务。
Usage: ansible-playbook [options] playbook.yml [playbook2 ...]
(1)Options:普通选项
-ask-vault-pass
-C, --check
-D, --diff
-e EXTRA_VARS, --extra-vars=EXTRA_VARS
--flush-cache:清除inventory主机的fact缓存
--force-handlers:即使任务失败,也要运行处理程序
-f FORKS
-i INVENTORY
-l SUBSET
--list-hosts
--list-tags:列出所有的可用标签
--list-tasks:列出将要执行的所有任务
-M MODULE_PATH, --module-path=MODULE_PATH
--skip-tags=SKIP_TAGS:仅运行其标签与这些值不匹配的播放和任务
--start-at-task=START_AT_TASK:在匹配此名称的任务中运行playbook
--step:在运行之前确认每个任务
--syntax-check:对playbook进行于法检测
-t TAGS, --tags=TAGS:仅运行使用这些值标记的操作和任务
--vault-id=VAULT_IDS:需要使用的vault特性
--vault-password-file=VAULT_PASSWORD_FILES:vault密码文件
-v, --verbose:详细模式(-vvv表示更多,-vvvv表示启用连接调试)
--version:打印ansible的版本
(2)Privilege Escalation Options:提权选项
-b, --become
--become-method=BECOME_METHOD
--become-user=BECOME_USER
-K, --ask-become-pass
(3)Connection Options:连接选项
-k, --ask-pass
--private-key=PRIVATE_KEY_FILE
-u REMOTE_USER, --user=REMOTE_USER
-c CONNECTION, --connection=CONNECTION
-T TIMEOUT, --timeout=TIMEOUT
--ssh-common-args=SSH_COMMON_ARGS
--sftp-extra-args=SFTP_EXTRA_ARGS
--scp-extra-args=SCP_EXTRA_ARGS
--ssh-extra-args=SSH_EXTRA_ARGS
3.ansible-config
编辑、查看和管理ansible的配置信息。
Usage: ansible-config [dump|list|view] [--help] [options] [ansible.cfg]
options:
-c CONFIG_FILE, --config=CONFIG_FILE:指定配置文件的路径
-h,--help:显示帮助信息
-v, --verbose:详细模式(-vvv表示更多,-vvvv表示启用连接调试)
--version:打印ansible的版本信息
可能一套主机有多个配置文件,默认是/etc/ansible/ansible.cfg.
ansible-config:查看默认配置
[root@centos01 ansible]# ansible-config dump ACTION_WARNINGS(default) = True AGNOSTIC_BECOME_PROMPT(default) = True ALLOW_WORLD_READABLE_TMPFILES(default) = False ANSIBLE_CONNECTION_PATH(default) = None ANSIBLE_COW_PATH(default) = None ANSIBLE_COW_SELECTION(default) = default ANSIBLE_COW_WHITELIST(default) = ['bud-frogs', 'bunny', 'cheese', 'daemon', 'default', 'dragon', 'elephant-in-snake', 'elephant', 'eyes', 'hellokitty', 'kitty', 'luke- ANSIBLE_FORCE_COLOR(default) = False ANSIBLE_NOCOLOR(default) = False ANSIBLE_NOCOWS(default) = False ANSIBLE_PIPELINING(default) = False ANSIBLE_SSH_ARGS(default) = -C -o ControlMaster=auto -o ControlPersist=60s
ansible-config list:对于配置文件中每个配置项的解释,包括环境、默认值、类型等等
[root@centos01 ansible]# ansible-config list ACTION_WARNINGS: default: true description: [By default Ansible will issue a warning when received from a task action (module or action plugin), These warnings can be silenced by adjusting this setting to False.] env: - {name: ANSIBLE_ACTION_WARNINGS} ini: - {key: action_warnings, section: defaults} name: Toggle action warnings type: boolean version_added: '2.5'
ansible-config view:打印配置文件的内容
[root@centos01 ansible]# ansible-config view # config file for ansible -- https://ansible.com/ # =============================================== # nearly all parameters can be overridden in ansible-playbook # or with command line flags. ansible will read ANSIBLE_CONFIG, # ansible.cfg in the current working directory, .ansible.cfg in # the home directory or /etc/ansible/ansible.cfg, whichever it # finds first [defaults] # some basic default values... .....(这就是ansible.cfg的内容)
如果想要查找某一项的内容,可以使用grep、awk来过滤。
4.ansible-doc
文档工具
Usage: ansible-doc [-l|-F|-s] [options] [-t <plugin type> ] [plugin]
Options:
-h, --help:查看帮助信息
-j, --json:**仅限内部测试**转储json元数据所有插件。
-l, --list:显示所有模块名及其描述信息。
-F, --list_files:显示所有模块名及其模块路径
-M MODULE_PATH, --module-path=MODULE_PATH:设定模块的路径,default=~/.ansible/plugins/modules:/usr/share/ansible/plugins/modules
-s, --snippet:显示指定插件的playbook代码段
-t TYPE, --type=TYPE:选择哪种插件类型(默认为“模块”)。
-v, --verbose:
--version
5.ansible-pull
从VCS存储库中提取Playbooks并为本地主机执行.
Usage: ansible-pull -U <repository> [options] [<playbook.yml>]
(1)Options:普通选项
--accept-host-key:如果尚未添加,则为repo url添加hostkey
--ask-vault-pass
-C CHECKOUT, --checkout=CHECKOUT:branch / tag / commit to checkout。 默认为行为存储库模块。
--clean:工作存储库中的已修改文件将被丢弃
--diff
-d DEST, --directory=DEST:查看存储库的目录结构
-e EXTRA_VARS, --extra-vars=EXTRA_VARS
-f, --force:即使存储库不能,也要运行playbook更新
--full:深复制而不是浅复制。
-i INVENTORY, --inventory=INVENTORY, --inventory-file=INVENTORY
-l SUBSET, --limit=SUBSET
--list-hosts
-m MODULE_NAME, --module-name=MODULE_NAME:存储库模块名称,默认是git
-M MODULE_PATH, --module-path=MODULE_PATH:添加模块库路径
-o, --only-if-changed:如果存储库已经存在,则仅运行playbook更新
--purge :在playbook执行结束之后清除
--skip-tags=SKIP_TAGS
-s SLEEP, --sleep=SLEEP::在开始之前以随机间隔(在0和n秒之间)休眠。 这是分散git请求的有用方法
-t TAGS, --tags=TAGS
--track-subs:子模块将跟踪最新的更改。 这相当于为git子模块更新指定了--remote标志
-U URL, --url=URL:playbook仓库的url
--vault-id=VAULT_IDS
--vault-password-file=VAULT_PASSWORD_FILES
-v, --verbose
--verify-commit:验证签出提交的GPG签名,如果失败则中止运行playbook。 这需要相应的VCS模块来支持这种操作
--version
(2)Connection Options:连接选项
-k, --ask-pass
--private-key=PRIVATE_KEY_FILE
-u REMOTE_USER, --user=REMOTE_USER
-c CONNECTION, --connection=CONNECTION
-T TIMEOUT, --timeout=TIMEOUT
--ssh-common-args=SSH_COMMON_ARGS
--sftp-extra-args=SFTP_EXTRA_ARGS
--scp-extra-args=SCP_EXTRA_ARGS
--ssh-extra-args=SSH_EXTRA_ARGS
(3)Privilege Escalation Options:提权选项
-K, --ask-become-pass
6.ansible-inventory
Usage: ansible-inventory [options] [host|group]
(1)Options:
--ask-vault-pass
--export:在执行--list时,以一种针对导出进行优化的方式表示,而不是作为Ansible如何处理它的准确表示
-i INVENTORY, --inventory=INVENTORY, --inventory-file=INVENTORY
--output=OUTPUT_FILE:在执行--list时,将库存发送到文件而不是屏幕
--playbook-dir=BASEDIR
--toml:使用TOML格式而不是默认的JSON,忽略--graph
--vars:将vars添加到graphs
--vault-id=VAULT_IDS
--vault-password-file=VAULT_PASSWORD_FILES
-v, --verbose
--version
-y, --yaml:使用yaml替换默认的json格式
(2)Actions:
--list:输出所有主机信息,作为库存脚本
--host=HOST:输出特定主机信息,作为库存脚本
--graph:创建库存图,如果提供必须的模式是一个有效的组名
示例1:
[root@centos01 ansible]# ansible-inventory --list { "_meta": { "hostvars": { "148.70.120.50": { "ansible_ssh_pass": "467661568cx." }, "148.70.122.28": { "ansible_ssh_pass": "467661568cx." } } }, "all": { "children": [ "node", "ungrouped" ] }, "node": { "hosts": [ "148.70.120.50", "148.70.122.28" ] } }
示例2:
@all: |--@node: | |--148.70.120.50 | |--148.70.122.28 |--@ungrouped:
7.ansible-vault
加密解密ansible中的数据文件。
Usage: ansible-vault [create|decrypt|edit|encrypt|encrypt_string|rekey|view] [options] [vaultfile.yml]
(1)action
create:创建并加密文件
decrypt:加密一个文件
encrypt:解密一个文件
rekey:修改密钥
view:打印加密文件的内容
(2)options
--ask-vault-pass
--new-vault-id=NEW_VAULT_ID
--new-vault-password-file=NEW_VAULT_PASSWORD_FILE:用于重新密钥的新保管库密码文件
--vault-id=VAULT_IDS
--vault-password-file=VAULT_PASSWORD_FILES
-v, --verbose
--version
8.ansible-galaxy
执行各种角色相关操作。
Usage: ansible-galaxy [delete|import|info|init|install|list|login|remove|search|setup] [--help] [options] ...
(1)options
-c, --ignore-certs:忽略SSL证书验证错误。
-s API_SERVER, --server=API_SERVER:API服务器目标地址
-v, --verbose
--version
(2)action
delete
import
info
init
install
list
login
remove
search
setup