ansible-console 是 Ansible 为用户提供的一款交互式工具,用户可以在 ansible-console 虚拟出来的终端像 shell 一样使用 Ansible 内置的各种命令,这对习惯于使用 shell 交互式的用户提供了良好的使用体验。
命令格式
usage: ansible-console [-h] [--version] [-v] [-b]
[--become-method BECOME_METHOD]
[--become-user BECOME_USER] [-K] [-i INVENTORY]
[--list-hosts] [-l SUBSET] [-k]
[--private-key PRIVATE_KEY_FILE] [-u REMOTE_USER]
[-c CONNECTION] [-T 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] [-C] [--syntax-check]
[-D] [--vault-id VAULT_IDS]
[--ask-vault-pass | --vault-password-file VAULT_PASSWORD_FILES]
[-f FORKS] [-M MODULE_PATH] [--playbook-dir BASEDIR]
[--step]
[pattern]
参数详解
positional arguments:
pattern # 连接的主机地址,需在主机清单中
optional arguments:
--ask-vault-pass # 加密playbook文件时提示输入密码
--list-hosts # 列出执行匹配到的主机,但并不会执行
--playbook-dir BASEDIR # 由于此工具不使用剧本,因此将其用作 替换剧本目录
--step one-step-at-a-time: confirm each task before running
--syntax-check # 检查Playbook中的语法书写
--vault-id VAULT_IDS # vault id
--vault-password-file # vault 密码文件
--version # 显示程序的版本号,配置文件位置,配置的模块搜索路径,模块位置,可执行文件位置
-C, --check don't make any changes; instead, try to predict some
-C, --check # 模拟执行,不会真正在机器上执行(查看执行会产生什么变化)
-D, --diff # 当更新的文件数及内容较少时,该选项可显示这些文件不同的地方,该选项结合-C用会有较好的效果
-M MODULE_PATH, --module-path MODULE_PATH # 要执行的模块的路径
-f FORKS, --forks FORKS # 并行任务数。FORKS被指定为一个整数,默认是5
-h, --help # 命令帮助文档
-i INVENTORY, --inventory INVENTORY, --inventory-file INVENTORY # 指定要读取的Inventory文件
-l SUBSET, --limit SUBSET # 限定执行的主机范围
-v, --verbose # 执行详细输出 (-vvv for more, -vvvv to enable connection debugging)
权限提升参数:
--become-method BECOME_METHOD # 要使用的权限提升方法(默认=sudo),使用 `ansible-doc -t become -l` 列出有效的选择
--become-user BECOME_USER # 以此用户身份运行操作(默认=root)
-K, --ask-become-pass # 要求提权的密码
-b, --become # 设置为yes激活权限提升。
连接参数:
--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)
--ssh-common-args SSH_COMMON_ARGS # 指定要传递给 sftp/scp/ssh 的通用参数
--ssh-extra-args SSH_EXTRA_ARGS # 指定仅传递给 ssh 的额外参数(例如 -R)
-T TIMEOUT, --timeout TIMEOUT # 连接超时时间,单位:秒,默认 10 秒
-c CONNECTION, --connection CONNECTION # 要使用的连接类型,默认是 smart
-k, --ask-pass # 询问连接密码,也就说,使用密码访问的话,需要加此参数
-u REMOTE_USER, --user REMOTE_USER # 以此用户身份连接,默认为 None
演示
[root@lanyulei-1 ~]# ansible-console
Welcome to the ansible console.
Type help or ? to list commands.
root@all (2)[f:5]$ list
172.16.244.154
172.16.244.130
root@all (2)[f:5]$ forks 2
root@all (2)[f:2]$
“root@all (2)[f:5]$ ” 是提示符,该提示符分别表示 “当前的使用用户@当前所在的Inventory中定义的组,默认是all分组 (Inventory中all组所有主机的数量)[forks:线程数]$”。