Ansible配置文件ansible.cfg,可以存在于多个位置,他们的被读取的顺序如下:
ANSIBLE_CONFIG # (环境变量)
ansible.cfg # (当前目录)
.ansible.cfg # (用户家目录)
/etc/ansible/ansible.cfg # (默认配置文件)
最先匹配的配置文件就会生效,而且可以一个一个单独设置。
别说人家有四个配置文件就说人奇葩啊,是方便你打通奇经八脉,运用在江湖的。
查看ansible.cfg的配置项
[student@servera ~]$ grep "^\[" /etc/ansible/ansible.cfg
[defaults] # 默认常用配置
[inventory] # 主机清单插件
[privilege_escalation] # 用于提权
[paramiko_connection] # python paramiko模块的连接设置(默认使用SSH)
[ssh_connection] # SSH连接设置
[persistent_connection] # 长连接设置
[accelerate] # 加速模式的配置
[selinux] # selinux设置
[colors] # 输出结果颜色的设置
[diff] # 输出不同的设置
虽然ansible.cfg配置文件一堆配置选项参数,但常用的,真就那么几个,别说我没告诉你。
[defaults]
#inventory = /etc/ansible/hosts # 主机清单文件的位置
#library = /usr/share/my_modules/ # 库文件存放目录
#remote_tmp = ~/.ansible/tmp # 临时py命令文件存放在远程主机目录
#local_tmp = ~/.ansible/tmp # 本机的临时命令执行目录
#forks = 5 # 默认并发数
#sudo_user = root # 默认sudo 用户
#ask_sudo_pass = True # 是否需要sudo密码
#ask_pass = True # 连接时是否需要密码
#remote_port = 22 # 远程主机的默认端口,生产中这个端口应该会不同
#log_path = /var/log/ansible.log # 日志路径
#roles_path = /etc/ansible/roles # roles 存放路径
#host_key_checking = False # 首次连接是否检查对应服务器的host_key,建议取消注释。
#remote_user # 指定使用ansible用户。
[privilege_escalation]:
become=True # 是否提权
become_method=sudo # 提权方式
become_user=root # 提权的用户
become_ask_pass=False # 提权是否需要密码
全部招式,怎么记得住啊?去藏经阁找找:
https://docs.ansible.com/ansible/latest/reference_appendices/config.html
根据配置项可知,若要提权成功,则需要设置好对应的sudo权限才可以使用sudo,至于提权是否需要密码,就需要设置好对应的命令是否需要(实验为了方便演示,直接使用NOPASSWD: ALL,但在实际生产环境中,除了管理员外,不应该让用户拥有如此高的权限。)。
高阶武器与防具还是必备。
实验使用4台虚拟机,分别命名为 servera、serverb、serverc、serverd。
其中,servera 为主控端,serverb、serverc、serverd为被控端。
为了方便演示与测试,4台机器的selinux已关闭。演示环境使用CentOS 7 系统。
为了方便以主机名做为访问互联,编辑 文件添加对应机器的ip地址映射,演示环境设置如下所示:
[root@servera ~]# cat /etc/hosts # 4台机器都编辑同样的映射配置
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.159.111 servera
192.168.159.112 serverb
192.168.159.113 serverc
192.168.159.114 serverd
[student@servera ~]$ mkdir /home/student/manage # 建议不同项目创建不同项目的文件夹,并编写不同的配置文件以方便项目管理。
[student@servera ~]$ cd !$
cd /home/student/manage
[student@servera manage]$ vim ansible.cfg
[defaults]
inventory = ./inventory
[student@servera manage]$ vim inventory
[myself]
localhost
[intranetweb]
servera
[everyone:children]
myself
intranetweb
[student@servera manage]$ ansible myself --list-hosts
hosts (1):
localhost
[student@servera manage]$ ansible intranetweb --list-hosts
hosts (1):
servera
[student@servera manage]$ ansible everyone --list-hosts
hosts (2):
localhost
servera
[student@servera manage]$ vim ansible.cfg
[defaults]
inventory = ./inventory
[privilege_escalation]
become = true
become_method = sudo
become_user = root
become_ask_pass=true
[student@servera manage]$ ansible intranetweb --list-hosts
SUDO password: student
hosts (1):
servera
RHCE认证作为基础认证的升级,需要大家在RHCSA的基础上再进行学习,因此,涉及的基础内容需要大家好好进行学习并巩固。有良好的基础才能更上一层楼。
阅读量:72
点赞量:0
收藏量:0