自动化运维工具Ansible——inventory 主机清单

Inventory简介

Inventory支撑对主机进行分组,每个组能够界说多个主机,每个主机都能够界说在任何一个或多个主机内。

Ansible配置文件的优先级

  • 首先找履行ansible指令的当前目录中,是否有ansible.cfg文件
  • 假如找不到,再找当前用户的家目录下是否有ansible.cfg
  • 假如还找不到,就运用全局配置文件/etc/ansible/ansible.cfg
  • 要查看当前运用的是哪个配置文件能够运用ansible –version 指令,会显现配置文件途径

Ansible指令常用参数

参数 功用
-m 要履行的模块,默以为command
-a 指定模块的参数
-u ssh衔接的用户名,默许用root,ansible.cfg中能够配置
-b,–become 变成那个用户身份,不提示暗码
-k 提示输入ssh登录暗码,当运用暗码验证的时候用
-s sudo运转
-U sudo到哪个用户,默以为root
-K 提示输入sudo暗码,当不是NOPASSWD形式时运用
-C 仅仅测试一下会改动什么内容,不会真实去履行
-c 衔接类型(default=smart)
-f fork多少进程并发处理,默以为5个
-i 指定hosts文件途径,默许default=/etc/ansible/hosts
-I 指定pattern,对已匹配的主机中再过滤一次
-list-host 只打印有哪些主机会履行这个指令,不会实践履行
-M 要履行的模块途径,默以为/usr/share/ansible
-o 压缩输出,摘要输出
–private-key 私钥途径
-T ssh衔接超时时间,默许是10秒

主机清单文件hosts

文件方位/etc/ansible/hosts

通过列表的方法标识主机规模

假如是名称相似的主机,能够运用列表的方法标识各个主机。

自动化运维工具Ansible——inventory 主机清单

自动化运维工具Ansible——inventory 主机清单

主机端口指定

自动化运维工具Ansible——inventory 主机清单

用主机名标识主机规模

db-test-a.example.com
db-test-b.example.com
db-test-c.example.com
db-test-d.example.com
db-test-e.example.com
db-test-f.example.com
能够这样标识一个规模
db-test-[a:f].example.com

inventory 中的变量

inventory变量名 意义
ansible_host ansible衔接节点时的IP地址
ansible_port 衔接对方的端口号,ssh衔接时默以为22
ansible_user 衔接对方主机时运用的用户名。不指定时,将运用履行ansible或ansible-playbook指令的用户
ansible_password 衔接时的用户的ssh暗码,仅在未运用密钥对验证的情况下有用
ansible_ssh_private_key_file 指定密钥认证ssh衔接时的私钥文件
ansible_ssh_common_args 提供给ssh,sftp,scp指令的额外参数
ansible_become 允许进行权限额外提高
ansible_become_method 指定提高权限的方法,列如可运用sudo/runas等方法
ansible_become_user 提高为哪个用户的权限,默许提高为root
ansible_become_password 提高为指定用户权限时的暗码

主机变量

不主张直接用暗码,主张运用免交互。不过为了此处试验作用,还是删掉.ssh中的authorized_keys文件,使得不能免密登录远程主机。

自动化运维工具Ansible——inventory 主机清单

自动化运维工具Ansible——inventory 主机清单

假如指定的端口号有误,将无法履行指令。

自动化运维工具Ansible——inventory 主机清单

自动化运维工具Ansible——inventory 主机清单

组变量

自动化运维工具Ansible——inventory 主机清单

自动化运维工具Ansible——inventory 主机清单

all

all表示所有组内的所有主机界说变量

自动化运维工具Ansible——inventory 主机清单

嵌套

自动化运维工具Ansible——inventory 主机清单

自动化运维工具Ansible——inventory 主机清单