• 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

  • 相关阅读:
    RAID
    变量的内存位置
    OSI网络结构的七层模型 TCP/IP层次模型
    IT公司【应聘】
    ajax的一个最简单例子
    优先级反转问题
    问一道算法题:算出这些直线一共有多少个交点
    一个女研究生(高级测试工程师)的职业选择 ZZ
    使用SWIG实现C/C++与其他语言间的互相调用 zz
    创建系统级热键 C++ builder为例
  • 原文地址:https://www.cnblogs.com/yangmingxianshen/p/12655970.html
Copyright © 2020-2023  润新知