一文学会主流Ansible Web UI的部署与使用 | 万字长文

Ansible 作为近几年比较流行的自动化运维工具,由于简单、无侵入性,受到许多运维甚至开发同学的喜爱。大多数情况下,运维人员是喜欢直接在终端命令行下编写和执行playbook/role。

但这样会有三个问题:一个是Playbook不好管理,二是任务定义不直观,三是不便于协作。有什么办法可以解决这些问题?下面就一起来看看四个Ansible Web UI,哪个是我们最想要的。

Ansible Tower

Ansible Tower是Ansible官方的Web UI,所以我们第一个就从它开始,下面开始安装 。

Step1: 环境准备
系统:CentOS7.7+
配置:2核2G或更高
硬盘:50G+

注意:最新版Ansible Tower要求系统CentOS7.7+,如果小于7.7的化,执行setup.sh的时候会报如下错误:

先执行yum update -y 进行升级,当前实战环境是CentOS7.6 最小化安装版执行了yum update升级到CentOS7.8。

Step2: 安装环境及Ansible
sudo yum -y install epel-release
sudo yum -y install ansible vim curl deltarpm wget
Step3: 下载当前最新的Ansible Tower安装包
mkdir /tmp/tower && cd /tmp/tower
curl https://releases.ansible.com/ansible-tower/setup-bundle/ansible-tower-setup-bundle-3.7.2-1.tar.gz
tar xvf ansible-tower-setup-bundle-3.7.2-1.tar.gz
cd ansible-tower-setup-bundle-3.7.2-1
Step4: 安装Ansible Tower

Ansible Tower是使用Ansible playbook来部署的,首先需要配置一下inventory,配置内容如下:

[tower]
localhost ansible_connection=local
[database]
[all:vars]
admin_password='AdminPassword'
pg_host=''
pg_port=''
pg_database='awx'
pg_username='awx'
pg_password='PgStrongPassword'
rabbitmq_username=tower
rabbitmq_password='RabbitmqPassword'
rabbitmq_cookie=cookiemonster

配置完成后,执行一下命令安装:

sudo ./setup.sh

如果你看到了,类似下图的提示信息,faide=0,那恭喜你,安装成功了。

Step5: 登录Ansible Tower

安装完成之后,可以在浏览器中配置输入https://ip  访问Ansible Tower UI:

输入用户admin,密码是Step4中配置的AdminPassword,输入后出现如下提示你输入License,购买的了的话,直接输入即可,没有购买的话可以自行百度或者留言获取操作方法:

输入license之后,再次登录Ansible Tower,界面如下图,默认会有一台主机,这台是安装Ansible Tower的主机:

Step6: 实例演示

安装完成之后,Ansible Tower会创建一些默认的配置,我们可以作为列子来参考,当然也可以重新创建,本篇就以全部新建来做演示。

Ansible Tower使用的步骤如下:

创建机构 >> 创建凭证 >>创建项目 >> 创建清单 >> 创建模板 >>启动模板

下面就来逐一介绍如何配置。

  • 创建一个机构

    Ansible Tower中机构可以理解为公司,机构由用户、团队、清单、项目、作业模板、管理员,6块组成。

    在左侧导航中选择【机构】,在最右侧,点击 + 号按钮,添加机构,填写信息后点击保存:

  • 创建凭证

    在左侧导航中选择【凭证】,在最右侧,点击 + 号按钮,添加凭证,Ansible Tower支持22种凭证类型,选择合适的类型,并填写相关信息,此处我们选择的是【机器】类型,也就是服务器的登陆信息,可以账号密码/密钥,非root的账号还提供了sudo相关的配置,如下图,填写信息后保存。

  • 创建项目

    Ansible Tower中定义的项目,类似于一个ansible playbook的库,SCM(source code management)类型支持,手动、Git、SVN等5种类型,选择不同的类型,按要求填写信息。

    此处我们选择手动,也就是把Ansible playbook的库放在系统的执行目录里面,默认情况下在/var/lib/awx/projects,所以我们需要到提供的/var/lib/awx/projects下创建playbook目录,及测试的yaml文件,配置如下:

    [root@10-20-3-151 projects]# cd /var/lib/awx/projects/
    [root@10-20-3-151 projects]# mkdir sample-project/
    [root@10-20-3-151 projects]# cd sample-project/
    [root@10-20-3-151 sample-project]# cat hello-word.yaml
    - name: Hello World Sample
    hosts: all
    tasks:
       - name: Hello Message
        debug:
          msg: "Hello World!"
    

    创建完成后,在左侧导航栏中选择【项目】,在最右侧,点击 + 号,按如下内容填写,并保存。

· 创建清单

Ansible Tower中的清单,类似一个hosts文件,其中定义了一个主机信息。在左侧导航栏中选择【清单】,在最右侧,点击 + 号,可以选择清单和智能清单,区别是智能清单可以通过模糊搜索将其他清单中的主机,加入直接加入进来:

此处,我们选择清单,如下进行配置,并保存:

保存之后,点击上图的主机标签,在最右侧,点击 + 号,添加主机信息;添加完成后,如下图所示:

· 创建模板

Ansible Tower中通过模板,把清单、项目、Playbook、凭证进行了统一的关联,在左侧导航栏中选择【模板】,在最右侧,点击 + 号,可以选择【作业模板】和【工作流模板】:

此处选择作业模板,按下图内容进行配置,配置完成后点击保存。

· 启动模板

模板保存之后,可以直接启动模板,在左侧导航栏中选择【模板】,点击启动:

执行的结果如下图:

按上面的步骤操作,可以完成一个基本的Ansible任务的运行。

当然Ansible Tower的功能远不止这些,比如它可以创建工作流、可以进行很细的权限配置、Playbook支持tag,主机清单支持分组、Playbook可以放在自建的Gitlab中等等,这些在本篇中就不介绍了,感兴趣的可以自己研究一下。

Ansible AWX

Ansible AWX是Ansible Tower的开源版本,它是免费的,所以在版本和功能方面要激进一些,部署方式也采用了docker-compose方式,想体验Ansible AWX的朋友,可以跟着下面的文档进行操作。

Step1: 环境准备
系统:Ubuntu 20.04.1 LTS
配置:2核4G或更高
硬盘:50G+
Step2: 更新系统
sudo apt update && sudo apt -y upgrade
sudo reboot
Step3: 安装Ansible
sudo apt install ansible
root@tiops:~# ansible --version
ansible 2.9.6
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3/dist-packages/ansible
executable location = /usr/bin/ansible
python version = 3.8.2 (default, Jul 16 2020, 14:00:26) [GCC 9.3.0]
Step4: 安装Docker及Docker Compose
#安装依赖
sudo apt -y install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
#清理旧版本的docker
apt remove docker docker-engine docker.io containerd runc
#导入安装源证书
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
#添加docker安装源
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
#刷新安装源
apt update
#安装docker
apt install docker-ce docker-ce-cli containerd.io curl
#显示docker版本
docker --version
Docker version 19.03.12, build 48a66213f
#下载docker-compose
curl -L https://github.com/docker/compose/releases/download/1.26.2/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
#显示docker-compose版本
docker-compose version
docker-compose version 1.26.2, build unknown
docker-py version: 4.3.0
CPython version: 3.8.2
OpenSSL version: OpenSSL 1.1.1f  31 Mar 2020
Step5: 安装Nodejs和NPM
sudo apt install -y nodejs npm
sudo npm install npm --global
Step6: 安装Ansible AWX
#安装docker相关的python库
sudo apt install python3-pip git pwgen vim
sudo pip3 install requests==2.14.2

#clone awx的代码
git clone --depth 50 https://github.com/ansible/awx.git
#进入awx目录
cd awx/installer/
#创建一个AWX 的secret key
pwgen -N 1 -s 30
2fCkx2K5GnIjBz4OterhOC3ey0WPd

编辑/root/awx/installer/inventory文件内容如下:

localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env python3"

[all:vars]
dockerhub_base=ansible
awx_task_hostname=awx
awx_web_hostname=awxweb
postgres_data_dir=/tmp/pgdocker
host_port=80
host_port_ssl=443
docker_compose_dir=/tmp/awxcompose
pg_username=awx
pg_password=awxpass
pg_database=awx
pg_port=5432
rabbitmq_password=awxpass
rabbitmq_erlang_cookie=cookiemonster
admin_user=admin
admin_password=StrongAdminpassword
create_preload_data=True
secret_key=2fCkx2K5GnIjBz4OterhOC3ey0WPdj
project_data_dir=/tmp/project
  • 4
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值