[Linux]-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

返回如下:

ansible get_url 下载超时 ansible官网下载_ansible

2.2 Docker

1)安装 docker

curl -fsSL https://get.docker.com/ | sh

如果是网络问题,就多试几次。

2)docker安装验证

docker --version

返回如下:

ansible get_url 下载超时 ansible官网下载_ansible_02

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

返回如下:

ansible get_url 下载超时 ansible官网下载_ansible_03

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

运行成功如下图:

ansible get_url 下载超时 ansible官网下载_linux_04

7)浏览输入机器IP(不用指定端口),进入AWX

ansible get_url 下载超时 ansible官网下载_ansible_05


ansible get_url 下载超时 ansible官网下载_ansible_06

三、使用案例

3.1 Ansible

1)修改ansible的配置文件,添加服务组,填充被控的机器IP

vim /etc/ansible/host

DEMO:

ansible get_url 下载超时 ansible官网下载_docker_07

[组名称] 自定配置即可。

2)配置公钥、私钥

a:生成密钥

ssh-keygen -t rsa

ansible get_url 下载超时 ansible官网下载_docker_08

步骤:回车(保存在默认路径:/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)创建清单

ansible get_url 下载超时 ansible官网下载_python_09


ansible get_url 下载超时 ansible官网下载_python_10


ansible get_url 下载超时 ansible官网下载_docker_11

2)为清单创建主机

ansible get_url 下载超时 ansible官网下载_Ansible_12


ansible get_url 下载超时 ansible官网下载_Ansible_13


3)在主机上运行命令

ansible get_url 下载超时 ansible官网下载_Ansible_14


ansible get_url 下载超时 ansible官网下载_ansible_15

4)命令运行结果

ansible get_url 下载超时 ansible官网下载_docker_16

四、总结

到此,我们对于Ansible和AWX的基本介绍及使用已经完成,如果错误之处,欢迎大家指正。