目录
一.ansible简介
1.特点
2.ansible系统架构
二,环境搭建
1.控制端安装ansible自动化工具
1)配置CentOS-8.5源
2)配置扩展源epel
3)安装python3.9
4)安装ansible软件工具
5)检验ansible安装完成
2.ssh免密登录
server主机以root身份连接node1主机
server主机以普通用户身份连接node1主机
ansible是一款类unix系统中通过python所开发的自由开源的自动化管理工具,能够自动部署软件以及软件配置,是一款无代理(客户端程序)配置语法使用yam及Jinja2模板语言
1)部署简单,只需在主控端部署ansible环境,被控端无需做任何操作
2)默认使用ssh协议对设备进行管理
3)主从集中化管理
4)配置简单,功能强大,扩展性强
5)支持API及自定义模块,可通过Python轻松管理
6)通过playbooks来定制强大的配置,状态管理
7)对云计算平台,大数据都有很好的支持
8)支持非root用户管理操作,支持sudo
文档说明:https://docs.ansible.com
Ansible 是基于模块工作的, 本身没有批量部署的能力。 真正具有批量部署的是 Ansible 所运行的模块, Ansible只是提供一种框架。
Ansible 由以下各部分组成:
组成
• 核心引擎: 即 Ansible,执行工具;一次性或者临时执行的操作都是通过该命令进行。
• 剧本(playbook): 定义Ansible任务的配置文件,可以将多个任务定义在一个剧本中,Ansible自动执行,剧本执行支持多个任务,可以由控制主机运行多个任务,同时对多台远程主机进行管理。
主机清单(host inventory): 定义Ansible管理的主机策略,默认是在Ansible的hosts配置文件中定义被管节点
• 核心模块(core modules ): 这些都是Ansible自带的模块。
• 自定义模块(custom modules): 如果核心模块不足以完成某种功能,可以添加自定义模块。
• 插件(plugins): 完成模块功能的补充,借助于插件完成记录日志,邮件等功能。
• 连接插件(connectior plugins) : Ansible 基于连接插件连接到各个主机上,负责和被管节点实现通信。
Ansible作用对象
Ansible的作用对象,不仅是Linux和非Linux操作系统的主机,同样也可以作用于各类公/私有云、商业/非商业设备的网络设施
大概流程:
控制端 192.168.10.100 主机名 server.example.com nat网络模式
受控端 192.168.10.111 node1.example.com nat网络模式
192.168.10.222 node2.example.com nat网络模式
更改主机名 hostnamectl set-hostname 主机名
关闭防火墙 systemctl disable firewalld
时间同步 timedatectl set-timezone Asia/Shanghai
epel镜像_epel下载地址_epel安装教程-阿里巴巴开源镜像站 (aliyun.com)
安装epel配置包
将 repo 配置中的地址替换为阿里云镜像站地址
ps:配置ansible时使用node1主机完成,后来把server主机与node1主机的ip和主机名更换了
centos源配置出问题的可以换别的镜像网站试试,epel下载成功但没包的可以换台虚拟机试试
安装完成之后恢复原来的本地源,删除centos/epel源,再存个快照
1)通过主机名连接(这一步可忽略)
server主机在 /etc/hosts 中 添加node1主机的ip,主机名实现ip绑定
2)ssh通过ip(或主机名)连接node1并输入node1主机root账户密码
4)将公钥发送给node1主机
5)完成免密登录
1)免密登录过程与root身份登录过程一致,身份切换为普通用户身份操作
2)普通身份执行特权指令时
或者修改组,并将普通用户加入组里(建议用这种方式)
3)普通用户可执行特权指令
[john2@server ~]$ ssh node1 sudo 指令