ansible部署(清单及配置文件的部署)

1.ansible简介

1.1 什么是ansible

ansible是一款开源自动化平台,是一个配置管理工具,自动化运维工具
ansible基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。


1.2 ansible的优点

1.支持跨平台操作:ansible提供linux,Windows,unix和网络设备的无代理支持,适用于物理、虚拟、云和容器环境

2.可读性强:减少人为错误,在运行playbook时,如果目标主机处于正确状态,则不会进行任何更改。

3.完美描述应用:playbook(具有幂等性)

4.轻松管理版本控制:playbook是纯文本,可视作源代码

5.支持动态清单

6.编排可与其他系统轻松集成:puppet、jenkins

7.基础架构即代码:简单的任务用命令即可完成


2. ansible的安装

1.在服务端上安装ansible,充当控制节点
yum install -y ansible
2.查看ansible版本信息
ansible --version
3.使用setup模块验证python
ansible -m setup localhost | grep ansible_python_version

2.1 在rhel8中安装

(有些可以直接用红帽自带ansible安装)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


2.2 在rhel7中安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


3.ansible的部署(构建ansible清单)

清单定义了ansible将要管理的一批主机

1.静态清单

(1)定义单独主机:每行一个,填写主机名或ip

www.westos.org   ##主机名

或者

172.25.254.250   ##主机IP

(2)定义主机组:

[webservers]
server1.westos.org
server2.westos.org
172.25.0.1
[dbservers]
node1.westos.org
node1.westos.org

'注意:一台主机可以存在于多个主机组


2.定义嵌套组

ansible主机清单可以包含多个主机组构成的组

[webservers]
server1.westos.org
server2.westos.org
172.25.0.1 

[dbservers]
node1.westos.org
node1.westos.org

[servers:children]
webservers
dbservers

3.通过范围简化主机规格

语法:[START:END]

可以指定主机名称或ip范围或者数字和字母范围

172.25.[0:4].[0:254]匹配172.25.0.0/24,172.25.1.0/24 …
server[01:10].example.com匹配server01.example.com到server10.example.com所有主机,此方式不匹配server1,只匹配server01
[a:c].example.com匹配a.example.com到c.example.com

4.验证清单

ansible workstation.lab.example.com --list-hosts
在这里插入图片描述ansible all --list-hosts 显示所有受管主机
ansible dbservers --list-hosts 显示dbserver里的受管主机
ansible ungrouped --list-hosts 显示不在组中的受管主机
在这里插入图片描述


5.默认清单位置

/etc/ansible/hosts
注意:为了操作安全和便于管理一般不使用,而是自己新建
在这里插入图片描述
在这里插入图片描述


6.自定义清单列表

(1)建立清单目录
mkdir deploy-inventory

(2)编辑清单文件
vim deploy-inventory/inventory

(3)列出主机
ansible all -i inventory --list-hosts 列出所有主机(-i指定清单)
ansible ungrouped -i inventory --list-hosts 列出未分组的主机
ansible www -i inventory --list-hosts #列出www组中的主机
ansible westos -i inventory --list-hosts #westos组包含www组和bbs组

在这里插入图片描述
在这里插入图片描述


7.动态清单

动态清单可以从开源社区的脚本中获取


4.ansible的部署(管理ansible配置文件)

4.1 ansible的配置文件

(1)/etc/ansible/ansible.cfg
基本配置文件,如果找不到其他配置文件,使用这个
在这里插入图片描述
(2) ~/.ansible.cfg
如果存在此配置并且当前工作目录中也没有ansible.cfg,此文件替代/etc/ansible/ansible.cfg

(3) 当前目录下的 ./ansible.cfg
执行ansible命令的目录中如果有ansible.cfg,就用它,不使用上面两个(推荐使用,上面两个不常用)
在这里插入图片描述

(4)显示使用的配置文件
ansible red -i inventory --list-hosts -v

在这里插入图片描述


4.2 管理配置文件中的设置

[defaults] 部分设置ansible操作的默认值

[privilege_escalation] 配置ansible如何在受管主机上执行特权升级

vim ansible.cfg

[defaults]
inventory = ./inventory
remote_user = blue #指定登录受管主机的用户,如不指定则使用当前用户名称
ask_pass = false    #是否提示输入ssh密码,做了免密就可以设置为false,否则需为true
host_key_checking = False #跳过ssh的key检查

[privilege_escalation]
become = true            #连接到受管主机上是否进行身份切换
become_method = sudo     #切换方式,默认为sudo
become_user = root    #切换到的用户
become_ask_pass = false #是否需要为become_method提示输入密码,默认为false
 

在这里插入图片描述
使用sudo进行权限下放(在受管主机用户中操作)
vim /etc/sudoers或者visudo (注意使用超级用户编辑文件)
sudo命令的配置建议写在/etc/sudoers.d/目录下的文件中。另外要注意:如果使用这种方式修改sudoers,需要在/etc/sudoers文件的最后行加上 #includedir /etc/sudoers.d语句(默认已有)。

blue         ALL=(ALL)      NOPASSWD: ALL

在这里插入图片描述


在此为了方便,对在配置文件中的设定的指定受管主机用户进行了ssh免密操作
在这里插入图片描述


测试:
在这里插入图片描述
在这里插入图片描述


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值