金鱼哥戏说RHCE认证:部署Ansible--管理ansible配置文件

简介: 第二章 部署Ansible--管理ansible配置文件
🎹 个人简介:大家好,我是 金鱼哥,CSDN运维领域新星创作者,华为云·云享专家,阿里云社区·专家博主
📚个人资质: CCNA、HCNP、CSNA(网络分析师),软考初级、中级网络工程师、RHCSA、RHCE、RHCA、RHCI、ITIL、PMP😜
💬格言:努力不一定成功,但要想成功就必须努力🔥

🎈支持我:可点赞👍、可收藏⭐️、可留言📝


@[toc]
前文再续,就书接上一回,上一回讲到如何 “构建Ansible主机清单” ,如果对本门的入门内功已经有所了解后,就可以修炼第二层了——配置文件。(所属内功:第二章 部署Ansible--管理ansible配置文件)
image-20211203201636021


装逼心法----管理Ansible配置文件

说到配置文件,Ansible都有够特别,他可以在四个位置上定义配置文件,但这样是不是会重复呢?不会,因为有优先级决定了究竟使用哪个配置文件上的定义。以下献上内功心法。


📜第一层 配置文件优先级

Ansible配置文件ansible.cfg,可以存在于多个位置,他们的被读取的顺序如下:

ANSIBLE_CONFIG                   # (环境变量)
ansible.cfg                      # (当前目录)
.ansible.cfg                     # (用户家目录)
/etc/ansible/ansible.cfg         # (默认配置文件)

最先匹配的配置文件就会生效,而且可以一个一个单独设置。

别说人家有四个配置文件就说人奇葩啊,是方便你打通奇经八脉,运用在江湖的。
image-20211203201326145


📜第二层 配置选项

查看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配置文件一堆配置选项参数,但常用的,真就那么几个,别说我没告诉你。
image-20211203202024909

[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,但在实际生产环境中,除了管理员外,不应该让用户拥有如此高的权限。)。

啥?你不练这层,就小心走火入魔了~


📜去炼器阁拿装备

高阶武器与防具还是必备。


📑实验拓扑介绍

image-20211103091209839
实验使用4台虚拟机,分别命名为 servera、serverb、serverc、serverd。

其中,servera 为主控端,serverb、serverc、serverd为被控端。

为了方便演示与测试,4台机器的selinux已关闭。演示环境使用CentOS 7 系统。

为了方便以主机名做为访问互联,编辑 /etc/hosts 文件添加对应机器的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

准备好各种武器,防具,爽。


📜行走江湖

练好了心法,是时候行走江湖出去装逼了。

image-20211203202000539


📑编写配置文件

[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

初次闯荡,感觉好爽,突然想等着日后的奇遇。

image-20211203203849093


💡总结

RHCE认证作为基础认证的升级,需要大家在RHCSA的基础上再进行学习,因此,涉及的基础内容需要大家好好进行学习并巩固。有良好的基础才能更上一层楼。
好好加油,可以噶🤪。

以上就是【金鱼哥】对 第二章 部署Ansible--管理ansible配置文件 的简述和讲解。希望能对看到此文章的小伙伴有所帮助。

💾 红帽认证专栏系列:
RHCSA专栏: 戏说 RHCSA 认证
RHCE专栏: 戏说 RHCE 认证
此文章收录在RHCA专栏: RHCA 回忆录

如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点。

如果有对【运维技术】感兴趣,也欢迎关注❤️❤️❤️ 【金鱼哥】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!

目录
相关文章
|
7月前
|
运维 Kubernetes 网络安全
Ansible自动化运维工具之主机管理与自定义配置文件(2)
Ansible自动化运维工具之主机管理与自定义配置文件(2)
|
10月前
ansible的环境部署及简单使用
ansible的环境部署及简单使用
107 0
|
9月前
|
运维 负载均衡 关系型数据库
【运维知识进阶篇】用Ansible Roles重构LNMP架构(Linux+Nginx+Mariadb+PHP),实现4个项目一键部署
【运维知识进阶篇】用Ansible Roles重构LNMP架构(Linux+Nginx+Mariadb+PHP),实现4个项目一键部署
118 0
|
10月前
管理工具ansible的部署
管理工具ansible的部署
69 0
管理工具ansible的部署
|
6月前
|
Linux 网络安全 调度
使用docker部署awx-1.7.1.0(ansible图形化界面)
使用docker部署awx-1.7.1.0(ansible图形化界面)
513 0
|
6月前
|
弹性计算 关系型数据库 数据库
通过计算巢轻松部署 Ansible Semaphore
AnsibleSemaphore是一个现代化的Ansible用户界面,通过计算巢可轻松部署。
162 1
通过计算巢轻松部署 Ansible Semaphore
|
9月前
|
应用服务中间件 nginx
Ansible模块——软件包管理模块
Ansible模块——软件包管理模块
|
10月前
|
存储 JSON 数据安全/隐私保护
ansible定义变量和管理事实
ansible定义变量和管理事实
126 0
|
10月前
|
运维 NoSQL Oracle
ansible快速部署cassandra3集群
借助ansible快速部署cassandra3集群,省事儿方便
ansible快速部署cassandra3集群
|
运维 安全 持续交付
利用ansible的角色快速批量一键部署基础docker环境
利用ansible的角色快速批量一键部署基础docker环境
383 0
利用ansible的角色快速批量一键部署基础docker环境