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

原文地址:https://www.cnblogs.com/yangmingxianshen/p/12655970.html