Ansible_01_inventory
@
inventory
inventory:提供管理服务器信息的文件
1)Ansible只能管理能够成功连接SSH的服务器
2)每台服务器都需设置别名,以便Ansible识别和管理
3)常在playbook的同级目录下创建hosts文件充当inventory文件
inventory文件需知:
1)inventory文件为.ini
文件格式
2)inventory文件的默认值是/etc/ansible/hosts
3)Ansible默认将localhost添加到inventor文件中
4)inventory文件中至少含有一个服务器信息,否则会因异常终止
//显示添加localhost格式:localhost ansible_connection=local
//会直接与本机通信,但不会与本机建立SSH连接
群组
inventory文件通过“[]
”以群组管理各个服务器
1)中括号中的字符串作为组名,task可仅针对特定组执行;
2)可定义由群组和服务器组成的群组(指定群组名);
3)all
和*
代表inventory文件中所有群组;
//也可通过“[]”正则表达式的范围指定多个服务器
组变量:仅能适用于特定群组的变量(主机变量可适用于所有组)
1)变量值仅可设置为布尔型和字符串;
2)Ansible会在host_vars
和group_vars
目录分别查找主机变量和组变量;
3)需将host_vars和group_vars目录创建在inventory文件的同级目录下;
//主机变量和组变量也可直接定义在inventory文件中
组变量的定义格式:
[组名:vars]
变量名1=值1
变量名N=值N
1)[all:vars]
代表主机变量(所有群组);
2)若使用YAML的字典格式定义,则使用方式也需改变;
行为参数
行为参数:指定通过SSH连接服务器的配置信息
1)行为参数的默认值由ansible.cfg文件指定;
常用行为参数如下:
行为参数 | 含义 |
---|---|
ansible_ssh_host | 指定主机IP/域名 |
ansible_ssh_port | 指定SSH连接的端口号 (默认值22) |
ansible_ssh_user | 指定使用SSH连接的用户名 (默认值root) |
ansible_ssh_pass | 指定SSH连接所使用的密码 |
ansible_private_key_file | 指定SSH连接所使用的密钥 |
ansible_connection | 指定连接模式 (默认值smart) |
ansible_shell_type | 指定SSH连接后所使用的Shell解释器 (默认值sh) |
ansible_python_interpreter | 指定服务器的Python解释器路径 (默认值/usr/bin/python) |
ansible_*_interpreter | 指定服务器的其他语言编译器路径 |