ansible-tower装以及破解(亲测可用) ansible-tower版本:3.2.6 和 3.4.3

转:https://kionf.com/2017/07/24/linux-tower/

ansible-tower版本: 3.4.3 仅供实验测试使用,请勿用于其它用途!

ansibke-tower他是一个图形化的任务调度,复杂服务部署,IT自动化的一个管理平台。可以通过界面从github拉取最新playbook实施服务部署,提高生产效率。当然,它也提供一个RESET API和命令行的CLI以供python脚本调用。

0x00 前言

ansible-tower关于此类的文章比较少,踩过坑,16年那会儿有听过就装上研究了一发,现在做个迟来的笔记, 包括部署,和免费版10台机器限制的破解。

支持的操作系统:

  • Red Hat Enterprise Linux 7.2 or later 64-bit
  • CentOS 7.2 or later 64-bit
  • Ubuntu 14.04 LTS 64-bit
  • Ubuntu 16.04 LTS 64-bit

推荐最低内存为2GB。

0x01 安装

整个申请流程也是麻烦的很,尤其是申请免费license。这里直接给出官网下载链接Ansible-Tower

这里使用的是最新版(3.4.3)

wget http://releases.ansible.com/ansible-tower/setup/ansible-tower-setup-latest.tar.gz -P /data/tower/

cd /data/tower/

tar xvf ansible-tower-setup-latest.tar.gz -C ./

cd ansible-tower-setup-3.1.4/

目录结构,安装非常简单,这也要得益于ansible的playbook。

[root@ad0e6b9ef8d5 ansible-tower-setup-3.1.4]# ll

total 60

-rw-r--r--. 1 root root 2526 Jul 10 13:59 README.md

-rw-r--r--. 1 root root 129 Jul 10 13:59 backup.yml

drwxr-xr-x. 2 root root 4096 Jul 10 13:59 group_vars

-rw-r--r--. 1 root root 10 Jul 25 03:03 install.retry

-rw-r--r--. 1 root root 5571 Jul 10 13:59 install.yml

-rw-r--r--. 1 root root 379 Jul 25 03:03 inventory

drwxr-xr-x. 2 root root 12288 Jul 10 13:59 licenses

-rw-r--r--. 1 root root 944 Jul 10 13:59 restore.yml

drwxr-xr-x. 18 root root 4096 Jul 10 13:59 roles

-rwxr-xr-x. 1 root root 9628 Jul 10 13:59 setup.sh

编辑inventory配置文件如下

vim inventory

[tower]

localhost ansible_connection=local

[database]

[all:vars]

#ansible-tower登录密码

admin_password='admin'

#PostgreSQL监听地址端口

pg_host='127.0.0.1'

pg_port='5432'

pg_database='awx'

pg_username='awx'

#here

pg_password='awx'

rabbitmq_port=5672

rabbitmq_vhost=tower

rabbitmq_username=tower

#here

rabbitmq_password='tower'

rabbitmq_cookie=cookiemonster

# Needs to be true for fqdns and ip addresses

rabbitmq_use_long_name=false

运行安装脚本

sh setup.sh

脚本会自动安装,熟悉的执行playbook任务界面。安装成功

localhost : ok=41 changed=5 unreachable=0 failed=0

0x02导入license文件

注意从3.2.x版本开始ansible-tower破解方式更改,无需申请license文件

更改文件/var/lib/awx/venv/awx/lib/python2.7/site-packages/tower_license/__init__.py第120行如下

119def_check_cloudforms_subscription(self):

120returnTrue

121if os.path.isdir("/opt/rh/cfme-appliance") and os.path.isdir("/opt/rh/cfme-gemset"):

122try:

123 has_rpms = subprocess.call(["rpm", "--quiet", "-q", "cfme", "cfme-appliance", "cfme-gemset"])

124if has_rpms == 0:

125returnTrue

126except OSError:

127pass

128returnFalse

首先下载python反编译工具

pip install uncompyle2

HOSTS限制破解

反汇编

/var/lib/awx/venv/awx/lib/python2.7/site-packages/tower_license/__init__.pyc

cd /var/lib/awx/venv/awx/lib/python2.7/site-packages/tower_license/; uncompyle6 __init__.pyc >__init__.py

rm -f __init__.pyc __init__.pyo

更改文件

/var/lib/awx/venv/awx/lib/python2.7/site-packages/tower_license/__init__.pyc

更改低153行如下

#available_instances = int(attrs.get('instance_count', None) or 0)

available_instances = 100000

attrs['current_instances'] = current_instances

访问tower:https://192.168.99.188/,默认用户名为admin密码为inventory文件中设置的admin_password='admin'

 

重点来了,这里会提示让选择license文件,申请这个很是麻烦,so这里分享下我自己申请下来的license文件直接导入就ok。仅供实验测试使用,请勿用于其它用途!。

 

0x03 破解10个hosts限制

申请的免费版license最多只能添加10个主机。

HOSTS AVAILABLE 10

反编译文件task_engine.pyc

#查找文件

root@2813e2635181:~# find / -name task_engine.pyc

/usr/lib/python2.7/dist-packages/awx/main/task_engine.pyc

cd /usr/lib/python2.7/dist-packages/awx/main/

#反编译文件

uncompyle6 task_engine.pyc >task_engine.py

更改task_engine.pyc文件

修改内容 available_instances = int(self.attributes['instance_count'])为available_instances = 10000,大约在162行

删除task_engine.pyc task_engine.pyo,重启tower

0x04

至此安装破解都已完成。简单的试用了下,很方便,通过git来获取更新任务playbook文件,图形化配置playbook参数,任务审计记录。结合ansible进行主机管理,服务部署,很方便。

写了个zookeeper集群部署的playbook deploy_zk。:P

Tower进阶

 

====================================================================================================

ansible-tower版本: 3.2.6  仅供实验测试使用,请勿用于其它用途!

ansible版本: 2.8.0
ansible-tower版本:3.2.6

一、环境准备:
CentOS Linux release 7.4

[root@localhost ~]#yum -y install ansible

[root@localhost ~]# ansible --version

ansible 2.6.4

二、安装ansible-tower:

[root@localhost ~]#wget https://releases.ansible.com/ansible-tower/setup-bundle/ansible-tower-setup-bundle-3.2.6-1.el7.tar.gz

[root@localhost ~]#tar -zxvf ansible-tower-setup-bundle-3.2.6-1.el7.tar.gz

[root@localhost ~]#cd ansible-tower-setup-bundle-3.2.6-1.el7

修改配置文件inventory将里面所有的密码都修改为自己的密码,如下三处的标红地方:

[root@localhost ansible-tower-setup-bundle-3.2.6-1.el7]# pwd

/root/ansible-tower-setup-bundle-3.2.6-1.el7

image.png

[root@localhost ansible-tower-setup-bundle-3.2.6-1.el7]# ./setup.sh 

如果网络没有问题的话耐心等待安装完成即可.

安装完成没报错的话即可访问web页面:https://9.110.187.203/#/,默认初始页面如下:

image.png

默认用户为admin,密码为inventory文件admin_password字段配置的密码,我这里配置的密码也为admin.

导入license,没有的话,点击REQUEST LICENSE,去官方(https://www.ansible.com/license)申请免费试用,填写个人信息后(邮箱要填写正确,其他信息可随便填写)会把license发到填写的邮箱.

提交license并登录成功后默认初始页面如下:

image.png

[root@localhost ansible-tower-setup-bundle-3.2.6-1.el7]# cd /var/lib/awx/venv/awx/lib/python2.7/site-packages/tower_license

vi __init__.py将119行和120行修改为如下内容,特别需要注意格式,如下:

image.png

修改完重新编译一下:

[root@localhost  tower_license]# python -m py_compile __init__.py

[root@localhost  tower_license]# python -O -m py_compile __init__.py

重启服务:

[root@localhost  tower_license]# ansible-tower-service restart

重新打开settings–VIEW YOUR LICENSE,发现"Hosts Available"变成了9999999台,说明破解成功,如下:

转: https://blog.51cto.com/shunzi115/2308081

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章