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

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