inventory文件配置
inventory是Ansible管理主机信息的配置文件,相当于系统HOSTS文件的功能,默认存放在/etc/ansible/hosts
- 定义主机和组
- inventory可以直接为IP
x.x.x.x- d端口号不是默认的22端口时,可以明确表示
serverX:prot
serverX ansible_port=prot ansible_host=x.x.x.x- 中括号可以表示一个组,也可以表示一个范围
[server]
www[1…x].example.com
db-[a:f].example.com- 定义主机变量
在playbook中使用时对主机进行个性化定制
[web]
web1 http_port=port maxRequestPerChild=1024- [web:vars]
ntp_server = time1.aliyun.com
web组中的所有主机ntp_server的值为time1.aliyun.com- 定义组嵌套及组变量
[apache]
serverX
[nginx]
serverXX
serverXXX
[web:child]
apache
nginx
[web:vars]
time1.aliyun.com
- 组与组之间可以互相调用,并且可以向组中的主机指定变量,不过这些只是在ansible-playbook中使用
- inventory中使用yaml文件
- 在inventory主文件中保存的所有变量并不是最佳方式,还可以保存在独立的文件中
- /etc/ansbile/group_vars/raleigh
- /etc/ansbile/group_vars/webservers
- /etc/ansbile/group_vars/foosball
- 当变量太多时,分文件定义变量更方便管理和组织
- /etc/ansbile/group_vars/raleigh/db_settings
- /etc/ansbile/group_vars/raleigh/cluster_settings
- 变量检索位置
- inventory配置文件(默认/etc/ansible/hosts)
- playbook中定义的区域
- roles中vars目录下的文件
- roles同级别目录group_vars和hosts_vars目录下的文件
命令格式
ansible [options]
Options:
-
-u REMOTE_USER, --user=REMOTE_USER,以REMOTE_USER 以REMOTE_USER用户连接
-
-b --become sudo至root执行相关命令,例如:如果需要对远程主机做一些root级别的修改时,如果不加该参数是不能够操作的
如果不想在每次执行时加-b,可以在ansible.cfg配置文件中做配置
[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False
当不加-b时候,普通用户是无法对/mnt目录操作的
加上-b参数,可以正常访问,未完待续