自动化运维神奇之 Ansible Tower 安装全过程,附科学使用教程
公司在实现运维自动化的架构中用到了 Ansible,Ansible 脚本在部署中显得不太直观,不太方便管理。Ansible Tower 是将 Ansible 脚本项目化,界面化管理,更方便易用.Ansible Tower 其实就是一个图形化的任务调度,复杂部署,IT自动化的一个管理平台,属于发布配置管理系统,支持 Api 及界面操作。
今天来分享一个自动化运维层面的一个软件——Ansible Tower
简介
公司在实现运维自动化的架构中用到了 Ansible,Ansible 脚本在部署中显得不太直观,不太方便管理。Ansible Tower 是将 Ansible 脚本项目化,界面化管理,更方便易用.
官方文档地址:https://docs.ansible.com/ansible-tower/
Ansible Tower 其实就是一个图形化的任务调度,复杂部署,IT自动化的一个管理平台,属于发布配置管理系统,支持 Api 及界面操作(见下图)。
常用的应用架构如下:
Ansible Tower 可以通过界面从 git 拉取最新 playbook 实施服务部署,提高生产效率. 并且可以和企业已有的系统进行集成对接(下图是我们的运维自动化平台部分截图)。
由于内容较多,本文主要介绍安装(科学使用),后续再进一步介绍相关实践应用,如果对你有用,记得点赞,收藏,分享,如果觉得哪里写的不对或不好,欢迎留言指正,或公&号“新质程序猿”联系到我,认辱认骂。
下载软件
我们目前使用的还是 3.6 的,旧虽旧点,够用就好,本文档不保证其他版本,大家请见谅,后续有空再探究其他版本。
下载地址:
https://releases.ansible.com/ansible-tower/setup-bundle/
我们这里选择这个 3.6.6-1 吧,适用于 CentOS 操作系统。
https://releases.ansible.com/ansible-tower/setup-bundle/ansible-tower-setup-bundle-3.6.6-1.tar.gz
如遇个人文章中任何资源找不到,请公&号“新质程序猿”联系我。
安装软件
首先准备一台主机 CentOS 系统
注意:Tower 安装过程包括安装一些依赖软件,如 PostgreSQL、RabbitMQ、NGINX 和其他一些软件,所以 Tower 需要在一个独立的虚拟机或云实例上安装,而不能和其他应用程序位于同一个机器上(相关的监控和日志程序除外)。
tower 安装软件一览:
- rabbitmq 5672/15672/25672
- memcached
- postgresql 5432
- nginx 443/80
- supervisord (如下进程通过 supervisor 管理)
- exit-event-listener
- awx-callback-receiver
- awx-dispatcher
- awx-channels-worker
- awx-daphne
- awx-uwsgi
tar -zxvf ansible-tower-setup-bundle-3.6.6-1.tar.gz -C /opt/
cd /opt/ansible-tower-setup-bundle-3.6.6-1
配置一下 inventory, 告诉安装脚本一些配置:单机版只更改其中的 password 即可。
[tower]
localhost ansible_connection=local
[database]
[all:vars]
admin_password='admin123'
pg_host=''
pg_port=''
pg_database='awx'
pg_username='awx'
pg_password='123456'
pg_sslmode='prefer' # set to 'verify-full' for client-side enforced SSL
rabbitmq_username=tower
rabbitmq_password='123456'
rabbitmq_cookie=cookiemonster
# Isolated Tower nodes automatically generate an RSA key for authentication;
# To disable this behavior, set this value to false
# isolated_key_generation=true
# SSL-related variables
# If set, this will install a custom CA certificate to the system trust store.
# custom_ca_cert=/path/to/ca.crt
# Certificate and key to install in nginx for the web UI and API
# web_server_ssl_cert=/path/to/tower.cert
# web_server_ssl_key=/path/to/tower.key
# Use SSL for RabbitMQ inter-node communication. Because RabbitMQ never
# communicates outside the cluster, a private CA and certificates will be
# created, and do not need to be supplied.
# rabbitmq_use_ssl=False
# Server-side SSL settings for PostgreSQL (when we are installing it).
# postgres_use_ssl=False
# postgres_ssl_cert=/path/to/pgsql.crt
# postgres_ssl_key=/path/to/pgsql.key
执行安装:
# 需要先安装 ansible, yum直接安装
yum info ansible
# 安装 ansible
yum install -y ansible
# 我安装的版本
ansible --version
ansible 2.9.27
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /bin/ansible
python version = 2.7.5 (default, Jun 20 2019, 20:27:34) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]
# 直接安装
bash setup.sh
问题: 如果安装过程报错,我遇到的错误是 yum 源连不上导致的,尝试替换为阿里云的源。
# 备份
cp CentOS-SCLo-scl.repo{,.bak}
cp CentOS-SCLo-scl-rh.repo{,.bak}
# 替换为 aliyun 源
# CentOS-SCLo-scl.repo 内容如下
[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=https://mirrors.aliyun.com/centos/7/sclo/$basearch/sclo/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
# CentOS-SCLo-scl-rh.repo 内容如下
[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=https://mirrors.aliyun.com/centos/7/sclo/$basearch/rh/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
没激活之前,登录是需要填写 license 的。
科学使用
安装成功后,科学一下吧。简直不要太简单哈!!!!
echo 'so easy' > /var/lib/awx/i18n.db
ansible-tower-service restart
启停软件
Tower 安装了一系列的软件,主要:
- systemd 管理的如下服务
- rabbitmq
- memcached
- postgresql
- nginx
- supervisord
- supervisor 管理的如下服务
- exit-event-listener
- awx-callback-receiver
- awx-dispatcher
- awx-channels-worker
- awx-daphne
- awx-uwsgi
启停的逻辑包装成了一个 可执行命令 ansible-tower-service
ansible-tower-service --help
Ansible Tower service helper utility
Usage: /bin/ansible-tower-service {start|stop|restart|status}
Docker 运行
在 hub 仓库里搜到了一个,但是版本是 3.2 的,并且需要授权
https://hub.docker.com/r/ybalt/ansible-tower
https://github.com/ybalt/ansible-tower
也简单尝试了一下构建,但没有成功,由于时间关系就先不管它了,后面会想办法构建出来一个可用的镜像。
如果你有可靠的资源,也可以分享给大家。
好了,今天的分享就是这些,主要介绍了 CentOS 安装 Ansible Tower 的过程,当然还有科学使用手段分享。
如果有任何问题,欢迎 点赞,分享,关注,评论,可以通过公&号:新质程序猿 找到我,欢迎互撩。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)