公司中实现运维自动化的架构中主要用到ansible,ansible脚本在部署服务器指令行中显得不太直观。Ansible-Tower(之前叫做awx)是将ansible的指令界面化,简明直观,简单易用。Ansibke-tower其实就是一个图形化的任务调度,复杂服务部署,IT自动化的一个管理平台,属于发布配置管理系统,支持Api及界面操作,Django编写。Ansible-tower可以通过界面从github拉取最新playbook实施服务部署,提高生产效率。当然它也提供一个RESET API和命令行的CLI以供python脚本调用。下面是Ansible-Tower的搭建记录,在此分享下:
Ansible Tower是由Redhat提供的一个管理Ansible前端UI,使用它可以免费管理10台以内的主机,所以它是一个收 费项目,该项目仅适用于那些不会运维开发,并且有钱的选手们,当然,如果会开发,懒得写,也可以 PJ Ansible Tower。Do you understand me? Ansible本质上是一个进行了封装的Shell。优点在于它是去中心化的工具,可以直接通过ssh管理远程主机,实现无 Agent的部署(ssh+python环境已经原生集成在Linux中)。 Ansible的缺点也在于其去中心化的特点,本身不支持高可用和分布式架构,无法实现Server-Proxy-Client的架构。 在比较复杂或者多区域的网络区域中,无法实现统一的集中式管理(如多个ansible管理端的配置同步),也没有前 端UI,对ansible的技能要求比较高。
Ansible-Tower目前支持7.4+的版本,可以使用yum update -y命令更新;
[root@ansible ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
关闭selinux
[root@ansible ansible-tower]# vim /etc/sysconfig/selinux
[root@ansible ansible-tower]# setenforce 0
setenforce: SELinux is disabled
[root@ansible ansible-tower]# getenforce
[root@ansible ansible-tower]# systemctl stop firewalld
[root@ansible ansible-tower]# systemctl disable firewalld
[root@ansible ansible-tower]# firewall-cmd --state
=======================================================================
需要注意:如果开启了防火墙,需要开放对应访问策略(这里是测试环境,就关闭了防火墙)
[root@ansible ansible-tower]# firewall-cmd --permanent --zone=public --add-port=80/tcp
[root@ansible ansible-tower]# systemctl restart firewalld.service
[root@ansible ~]# yum install -y ansible
[root@ansible ~]# ansible --version
3.按照ansible-tower(官网下载地址: Index of /ansible-tower/setup)
[root@ansible ~]# cd /usr/local/src/
[root@ansible src]# wget https://releases.ansible.com/ansible-tower/setup-bundle/ansible-tower-setup-bundle-3.7.0-4.tar.gz
[root@ansible src]# tar -zvxf ansible-tower-setup-bundle-3.7.0-4.tar.gz
[root@ansible src]# mv ansible-tower-setup-bundle-3.7.0-4 /usr/local/src/ansible-tower
[root@ansible src]# cd /usr/local/ansible-tower
[root@ansible ansible-tower]# ls
backup.yml bundle collections group_vars install.yml inventory licenses README.md restore.yml roles setup.sh
配置inventory文件 (注意:admin_password处填写的就是ansible-tower登陆密码,密码可以自行设定)
[root@ansible ansible-tower]# sed -i "s#password=''#password='tower@123'#g" inventory
[root@ansible ansible-tower]# sed -i "s#host=''#host='127.0.0.1'#g" inventory
[root@ansible ansible-tower]# sed -i "s#port=''#port='5432'#g" inventory
安装前先创建/var/log/tower的日志目录,不然会报错
[root@ansible ansible-tower]# mkdir -p /var/log/tower
接着执行ansible-tower的安装脚本,如果网络没有问题的话耐心等待安装完成即可.
[root@ansible ansible-tower]# ./setup.sh(漫长等待)
安装完成没报错的话即可访问web页面,这里测试机地址为172.18.10.254,则访问ansible-tower地址就是https://172.18.10.254 默认初始页面如下:
Ansible-Tower自动化运维管理-管理软件文档类资源-CSDN文库
默认用户为admin,密码为inventory文件admin_password字段配置的密码(如上设置的密码为"tower@123")。
接着会提示让选择license文件,导入license,没有的话官方申请免费试用填写个人信息后 (邮箱要填写正确,其他信息可随便填写) 会把license发到填写的邮箱。提交license并登录成功后默认初始页面如下:
申请的免费版license最多只能添加10个主机, 且有时间限制。