Ansible配置文件

一、ansible主机和组的配置

1、简单的主机和组

ansible的配置文件位于/etc/ansible目录下,主要有ansible.cfg、hosts文件。本节重点介绍主机与组定义文件/etc/ansible/hosts.

/etc/ansible/hosts最简单的格式如下:

www.ixdba.net

[webservers]

ixdba1.net

ixdba2.net

[dbservers]

db.ixdba1.net

db.ixdba2.net

中括号中的名字代表组名,可以根据需求将庞大的主机分成具有标识的组,如上面分了两个组webservers和dbservers组;

主机(hosts)部分可以使用域名、主机名、IP地址表示;当然使用前两者时,也需要主机能反解析到相应的IP地址,一般此类配置中多使用IP地址;

未分组的机器需保留在hosts的顶部。

2、指定主机范围

可在/etc/ansible/hosts文件中,指定主机的范围,示例如下:

[web]

www[01:50].ixdba.net

[db]

db[a:f].ixdba.ent

3、主机变量

以下是Hosts部分中经常用到的变量部分:

ansible_ssh_host #用于指定被管理的主机的真实IP

ansible_ssh_port #用于指定连接到被管理主机的ssh端口号,默认是22

ansible_ssh_user #ssh连接时默认使用的用户名

ansible_ssh_pass #ssh连接时的密码

ansible_sudo_pass #使用sudo连接用户时的密码

ansible_sudo_exec #如果sudo命令不在默认路径,需要指定sudo命令路径

ansible_ssh_private_key_file #秘钥文件路径,秘钥文件如果不想使用ssh-agent管理时可以使用此选项

ansible_shell_type #目标系统的shell的类型,默认sh

ansible_connection #SSH 连接的类型:local , ssh , paramiko,在ansible1.2之前默认是paramiko ,后来智能选择,优先使用基于ControlPersist 的ssh

ansible_python_interpreter #用来指定python解释器的路径,默认为/usr/bin/python 同样可以指定ruby 、perl的路径

ansible_*_interpreter #其他解释器路径,用法与ansible_python_interpreter类似,这里"*"可以是ruby或perl等其它语言

示例:

[web]

192.168.78.11 http_port=80

192.168.78.12 http_port=80

还可以改成这样:

[web]

192.168.78.11

192.168.78.12

[web:vars]

http_port=80

[webhost]

host1

host2

[dbhost]

host2

host3

[allhosts:children]

webhost

Dbhost

主机组可以包含主机组,主机的变量可以通过继承关系,继承到最高等级的组的变量。定义主机组之间的继承关系我们使用":children"来表示

二、ansible.cfg与默认配置

/etc/ansible/ansible.cfg文件中定义了ansible的主机的默认配置部分,如默认是否需要输入密码、是否开启sudo认证、action_plugins插件的位置、hosts主机组的位置、是否开启log功能、默认端口、key文件位置等等。

#inventory = /etc/ansible/hosts 该参数表示资源清单inventory文件的位置,资源清单就是一些Ansible需要连接管理的主机列表

#library = /usr/share/my_modules/ Ansible的操作动作,无论是本地或远程,都使用一小段代码来执行,这小段代码称为模块,这个library参数就是指向存放Ansible模块的目录

#module_utils= /usr/share/my_module_utils/

#remote_tmp= ~/.ansible/tmp指定远程执行的路径

#local_tmp= ~/.ansible/tmpansible管理节点的执行路径

#forks = 5 forks 设置默认情况下Ansible最多能有多少个进程同时工作,默认设置最多5个进程并行处理。具体需要设置多少个,可以根据控制主机的性能和被管理节点的数量来确定。

#poll_interval= 15 轮询间隔

#sudo_user= root sudo使用的默认用户,默认是root

#ask_sudo_pass= True 是否需要用户输入sudo密码

#ask_pass= True 是否需要用户输入连接密码

#remote_port= 22 这是指定连接对端节点的管理端口,默认是22,除非设置了特殊的SSH端口,不然这个参数一般是不需要修改的

#module_lang= C 这是默认模块和系统之间通信的计算机语言,默认为'C'语言.

host_key_checking= False 跳过ssh首次连接提示验证部分,False表示跳过。

#timeout = 10 连接超时时间

#module_name= command 指定ansible默认的执行模块

#nocolor= 1 默认ansible会为输出结果加上颜色,用来更好的区分状态信息和失败信息.如果你想关闭这一功能,可以把'nocolor'设置为'1':

#private_key_file=/path/to/file.pem在使用ssh公钥私钥登录系统时候,使用的密钥路径。

posted @ 2019-09-09 20:26  不言不弃  阅读(5054)  评论(0编辑  收藏  举报