Ansible是一个开源的配置管理和业务流程工具。它可以自动化和标准化的配置远程主机和虚拟机。它的编排功能允许Ansible并列的启动和正常关闭多种应用程序。所以Ansible可以以零停机的方式执行多个系统的轧制更新。
Ansible Tower是一个基于Web的用户界面,提供了IT自动化的企业解决方案。它有一个友好用户的仪表板来管理部署和监控资源。Ansible Tower为Ansible增加自动化,可视化管理和监控能力。
本文档将分别介绍Ansible Tower在RHEL6和RHEL7上的安装。
序号 | 格式开头 | 格式说明 |
---|---|---|
1 | 以“#”开头 | 代表root用户; |
2 | 以“$”开头 | 代表普通用户; |
3 | 以边框“灰色底纹”标注 | 表示命令或输入字符; |
4 | 以边框“白色底纹”标注 | 表示配置文件配置项 |
5 | 以“红色”标注 | 表示特殊说明 |
6 | 以“楷体”标注 | 表示注释内容; |
名称 | 最小值 | 推荐值 |
---|---|---|
内存 | 2GB | 4GB+(100 forks),16GB+(400 forks) |
磁盘 | 20GB(/var分区10GB) | 40GB+(/var分区20GB+) |
CPU | 2C | 8C+ |
操作系统版本 | 依赖 |
---|---|
Red Hat Enterprise Linux 6 | rhscl源 |
Red Hat Enterprise Linux 7 | 无 |
注:以上依赖源分别为RHEL6和RHEL7版本,官方文档中提到RHEL7依赖extras源,但是在实际安装过程中,并没有用到extras源中的软件包,所以RHEL7使用ISO中的软件包就可以成功完成安装。从Ansible Tower 3.0开始,Tower在RHEL6上的运行环境是python2.7,所以在RHEL6上安装Tower不在依赖optional源,而是依赖于rhscl源。
推荐使用Bundled安装程序,从Ansible Tower2.3.0开始,Tower安装支持bundled安装程序,Bundled安装程序虽然打包了大部分依赖软件包,但是仍然需要访问Red HatEnterprise Linux源。
Bundled下载地址:https://releases.ansible.com/ansible-tower/setup-bundle/,下载最新的版本,当前最新版本是3.0.3
ansible-tower-setup-bundle-3.0.3-1.el6.tar.gzansible-tower-setup-bundle-3.0.3-1.el7.tar.gz |
---|
操作系统版本 | IP地址 | 主机名 |
---|---|---|
Red Hat Enterprise Linux 6.8 | 172.168.0.10 | ansible6.example.com |
Red Hat Enterprise Linux 7.3 | 172.168.0.11 | ansible7.example.com |
注:本文档介绍的是Ansible Tower分别在RHEL6和RHEL7上的安装,实际环境中可根据需求选择一个版本即可。
安装Ansible Tower,/var分区至少有10G的可用空间,否则安装前检查会无法通过,检查方法如下:
# df -hP /var/Filesystem Size Used Avail Use% Mounted on/dev/mapper/VolGroup-lv_var 15G 114M 14G 1% /var |
---|
注:如果/var不是一个单独的文件系统,也可以使用上面的命令进行检查,df命令会打印/var目录所在文件系统上的大小,例如:/分区。
Ansibel Tower Bundled安装程序虽然包含了大部分依赖软件包,但是仍然需要额外的源,除了基础源(系统光盘自带的RPM包)之外,Red Hat Enterprise Linux 6还需要订阅rhscl源,Red Hat Enterprise Linux 7不需要订阅额外的源。
RHEL6:
# yum repolist --nopluginsrepo id repo name statusrhel-server-rhscl-6-rpms Red Hat Software Collections 4,973rhel-6-server-rpms Red Hat Enterprise Linux 6 Server 3,855repolist: 8,828 |
---|
RHEL7:
# yum repolist --nopluginsrepo id repo name statusrhel-7-server-rpms Red Hat Enterprise Linux 7 Server 4,751repolist: 4,819 |
---|
Ansible Tower企业版需要收费,如需订阅,请联系红帽:https://access.redhat.com。
如果需要测试及评估Ansible Tower,可申请试用版基础license,基础License只支持10个节点,申请地址:http://ansible.com/license;红帽员工可以申请50个节点的企业版License,申请地址:https://store.ansible.com/redhat/tower_license/。
本小节介绍的是Ansible Tower在RHEL6上的标准安装,使用单节点,内置数据库。
上传Bundled安装介质至服务器ansible6.example.com:/opt目录下:
# ls /opt/ansible-tower-setup-bundle-3.0.3-1.el6.tar.gz /opt/ansible-tower-setup-bundle-3.0.3-1.el6.tar.gz |
---|
解压:
# cd /opt# tar -xf /opt/ansible-tower-setup-bundle-3.0.3-1.el6.tar.gz# lsansible.cfg backup.yml bundle group_vars install.yml inventory licenses README.md restore.yml roles setup.sh |
---|
Ansible Tower 3.0的安装省略了运行./configure的步骤,在执行安装之前,需要手动修改inventory文件,根据当前的环境情况,进行配置。以下是配置示例:
(1)单节点内置数据库:
[primary]localhost ansible_connection=local [secondary] [database] [all:vars]admin_password='password' #使用实际的密码替换passwordredis_password='password' #使用实际的密码替换password pg_host=''pg_port='' pg_database='awx'pg_username='awx'pg_password='password' #使用实际的密码替换password |
---|
(2)双节点+已安装的外部数据库:
[primary]node1 ansible_connection=local #使用实际的主机替换node1 [secondary]node2 #使用实际的主机替换node2 [database] [all:vars]admin_password='password' #使用实际的密码替换passwordredis_password='password' #使用实际的密码替换password pg_host=‘database’ #使用实际的主机替换databasepg_port=’5432’ #使用实际的端口替换5432 pg_database='awx'pg_username='awx'pg_password='password' #使用实际的密码替换password |
---|
(3)双节点+未安装的外部数据库:
[primary]node1 ansible_connection=local #使用实际的主机替换node1 [secondary]node2 #使用实际的主机替换node2 [database]database #使用实际的主机替换database [all:vars]admin_password='password' #使用实际的密码替换passwordredis_password='password' #使用实际的密码替换password pg_host=‘database’ #使用实际的主机替换databasepg_port=’5432’ #使用实际的端口替换5432 pg_database='awx'pg_username='awx'pg_password='password' #使用实际的密码替换password |
---|
本文档使用单节点内置数据库,所以inventory文件配置如下:
[primary]localhost ansible_connection=local [secondary] [database] [all:vars]admin_password='redhat'redis_password='redhat' pg_host=''pg_port='' pg_database='awx'pg_username='awx'pg_password='redhat' |
---|
注:redis密码不支持空格和这些特殊符号:【@, :, -,\, /, #】,另外,如果使用双节点的Tower,则数据库必须使用外部数据库,且数据库节点必须是一台单独的节点,不能是Tower节点中的一台。
在配置完inventory文件之后,就可以执行setup.sh开始安装,
# ./setup.sh[warn] Will install bundled Ansible………中间的输出内容省略………PLAY RECAP ************************************************************localhost : ok=126 changed=53 unreachable=0 failed=0 The setup process completed successfully.Setup log saved to /var/log/tower/setup-2016-12-20-00:04:42.log |
---|
注:如果使用低于RHEL6.7的版本,在安装过程中会提示找不到PyYAML,则需要额外下载PyYAML包,因为PyYAML是在RHEL6.7才加入的光盘镜像中的。
将申请的License key文件上传至Ansible Tower的/etc/tower目录下,并命名为license,如下:
# ls /etc/tower/license /etc/tower/license |
---|
通过浏览器访问:https://172.168.0.10,如下:
使用用户名admin及inventory文件中设置的密码进行登陆,登陆后界面如下:
本小节介绍的是Ansible Tower在RHEL7上的标准安装,使用单节点,内置数据库。
上传Bundled安装介质至服务器ansible7.example.com:/opt目录下:
# ls /opt/ansible-tower-setup-bundle-3.0.3-1.el7.tar.gz /opt/ansible-tower-setup-bundle-3.0.3-1.el7.tar.gz |
---|
解压:
# cd /opt# tar -xf /opt/ansible-tower-setup-bundle-3.0.3-1.el7.tar.gz# lsansible.cfg backup.yml bundle group_vars install.yml inventory licenses README.md restore.yml roles setup.sh |
---|
Ansible Tower 3.0的安装省略了运行./configure的步骤,在执行安装之前,需要手动修改inventory文件,根据当前的环境情况,进行配置。以下是配置示例:
(1)单节点内置数据库:
[primary]localhost ansible_connection=local [secondary] [database] [all:vars]admin_password='password' #使用实际的密码替换passwordredis_password='password' #使用实际的密码替换password pg_host=''pg_port='' pg_database='awx'pg_username='awx'pg_password='password' #使用实际的密码替换password |
---|
(2)双节点+已安装的外部数据库:
[primary]node1 ansible_connection=local #使用实际的主机替换node1 [secondary]node2 #使用实际的主机替换node2 [database] [all:vars]admin_password='password' #使用实际的密码替换passwordredis_password='password' #使用实际的密码替换password pg_host=‘database’ #使用实际的主机替换databasepg_port=’5432’ #使用实际的端口替换5432 pg_database='awx'pg_username='awx'pg_password='password' #使用实际的密码替换password |
---|
(3)双节点+未安装的外部数据库:
[primary]node1 ansible_connection=local #使用实际的主机替换node1 [secondary]node2 #使用实际的主机替换node2 [database]database #使用实际的主机替换database [all:vars]admin_password='password' #使用实际的密码替换passwordredis_password='password' #使用实际的密码替换password pg_host=‘database’ #使用实际的主机替换databasepg_port=’5432’ #使用实际的端口替换5432 pg_database='awx'pg_username='awx'pg_password='password' #使用实际的密码替换password |
---|
本文档使用单节点内置数据库,所以inventory文件配置如下:
[primary]localhost ansible_connection=local [secondary] [database] [all:vars]admin_password='redhat'redis_password='redhat' pg_host=''pg_port='' pg_database='awx'pg_username='awx'pg_password='redhat' |
---|
注:redis密码不支持空格和这些特殊符号:【@, :, -,\, /, #】,另外,如果使用双节点的Tower,则数据库必须使用外部数据库,且数据库节点必须是一台单独的节点,不能是Tower节点中的一台。
在配置完inventory文件之后,就可以执行setup.sh开始安装,
# ./setup.sh[warn] Will install bundled Ansible………中间的输出内容省略………PLAY RECAP ************************************************************localhost : ok=122 changed=52 unreachable=0 failed=0 The setup process completed successfully.Setup log saved to /var/log/tower/setup-2016-12-19-16:26:34.log |
---|
最后看到以上输出,表示安装成功了。
将申请的License key文件上传至Ansible Tower的/etc/tower目录下,并命令为license,如下:
# ls /etc/tower/license /etc/tower/license |
---|
通过浏览器访问:https://172.168.0.11,如下:
使用用户名admin及inventory文件中设置的密码进行登陆,登陆后界面如下: