[Linux]-Ansible
森格 | 2023年2月
介绍:本文旨在介绍ansible的基本使用,提高部署环境时的效率,避免重复操作带来的时间成本。
文章目录
- [Linux]-Ansible
- 一、什么是Ansible
- 1.1 基本介绍
- 1.2 核心概念
- 1.3 优点
- 二、环境部署
- 2.1 Ansible
- 2.2 Docker
- 2.3 AWX
- 三、使用案例
- 3.1 Ansible
- 3.2 AWX
- 四、总结
一、什么是Ansible
官网:Ansible
GitHub: https://github.com/ansible/
1.1 基本介绍
ansible是一种基于python开发的自动化运维工具,实现了批量系统配置、程序部署、运行命令等功能。
其本身没有批量部署的能力,但其运行的模块具有该能力,ansible不需要在远程主机安装client、agents,因为它们它们基于shh和远程主机进行通讯。
1.2 核心概念
1)Ansible Playbook
是Ansible的配置、部署和编排语言,通过YAML的格式描述,可以将多个任务定义在一个YAML文件中执行。
2)Ansible 模块
是Ansible执行任务的核心。每个模块都是独立的代码,可以通过命令行或Playbook执行。
1.3 优点
- 部署简单,只需要在主控端部署Ansible环境,被空端无需部署。
- 拥有大量操作模块,可实现绝大部分的运维操作。
- 配置简单、功能强大,支持API及自定义模块,通过Python可轻松扩展。
- Playbook提供了强大的可定制及状态管理。
- 提供了AWX可视化平台,更方便的编排部署Ansible Playbook
二、环境部署
安装pip、git、pwgen,后面会用到
yum install -y python3-pip git pwgen
2.1 Ansible
1)安装 EPEL源
yum -y install epel-release
2)安装 Ansible
yum -y install ansible
3)Ansible安装验证
ansible --version
返回如下:
2.2 Docker
1)安装 docker
curl -fsSL https://get.docker.com/ | sh
如果是网络问题,就多试几次。
2)docker安装验证
docker --version
返回如下:
3)配置镜像加速
#1、创建文件夹
mkdir -pv /etc/docker
#2、写入配置
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://v16stybc.mirror.aliyuncs.com"]}
EOF
#3、重新加载
systemctl daemon-reload && Systemctl restart docker
4)安装docker-compose
两种方式
a:二进制文件安装
curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 注意赋权
chmod +x /usr/local/bin/docker-compose
b:使用python模块安装
pip3 install docker-compose
5)docker-compose安装验证
docker-compose --version
返回如下:
2.3 AWX
1)更新pip3,否则可能会报错
pip3 install --upgrade pip
2)安装上小节一致的版本
pip3 install docker-compose==1.25.5
3)下载AWX包
wget https://github.com/ansible/awx/archive/14.1.0.tar.gz
tar -zxf 14.1.0.tar.gz
4)进入目录,利用pwgen生产密钥
cd ./awx-14.1.0/installer/
pwgen -N 1 -s 10
5)更改inventory文件
vim ./inventory
- admin_password=你的管理员密码
- secret_key=上面生成的10个字符秘钥
6)使用ansible-playbook运行install.yml
ansible-playbook -i inventory install.yml
运行成功如下图:
7)浏览输入机器IP(不用指定端口),进入AWX
三、使用案例
3.1 Ansible
1)修改ansible的配置文件,添加服务组,填充被控的机器IP
vim /etc/ansible/host
DEMO:
[组名称] 自定配置即可。
2)配置公钥、私钥
a:生成密钥
ssh-keygen -t rsa
步骤:回车(保存在默认路径:/root/.ssh/id_rsa)=> 连续输入两次密码(可自定义)
b:分发公钥给被控机器
cd /root/.ssh/
ssh-copy-id root@ip
c:设置免密交互(可以自行选择)
ssh-agent bash
ssh-add
d:ping检查连通性
ansible ip -m ping
ip | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
设置完后,不用再次输入密码
3.2 AWX
1)创建清单
2)为清单创建主机
3)在主机上运行命令
4)命令运行结果
四、总结
到此,我们对于Ansible和AWX的基本介绍及使用已经完成,如果错误之处,欢迎大家指正。