文档:http://docs.ansible.com/ansible-tower/
安装前检查
- python版本为2.6
- 保持网络畅通
- 内存预留充足
- 安装用户为root
软件下载
下载地址:http://releases.ansible.com/ansible-tower/setup/
含有包文件的版本:http://releases.ansible.com/ansible-tower/setup-bundle/
wget http://releases.ansible.com/ansible-tower/setup-bundle/ansible-tower-setup-bundle-latest.el6.tar.gz
tar zxf ansible-tower-setup-bundle-latest.el6.tar.gz
cd ansible-tower-setup-bundle-3.0.3-1.el6/
部署
设置主机信息
sed -i "s#password=''#password='admin'#g" inventory
sed -i "s#host=''#host='127.0.0.1'#g" inventory
sed -i "s#port=''#port='5432'#g" inventory
修改yum源
sed -i 's#dl.fedoraproject.org/pub#mirrors.ustc.edu.cn#g' roles/packages_el/defaults/main.yml
sed -i 's/#baseurl=/baseurl=/g' roles/packages_el/files/epel-6.repo
sed -i 's/mirrorlist=/#mirrorlist=/g' roles/packages_el/files/epel-6.repo
sed -i 's#download.fedoraproject.org/pub#mirrors.ustc.edu.cn#g' roles/packages_el/files/epel-6.repo
yum -y install centos-release-scl-rh centos-release-scl
sed -i 's#mirror.centos.org#centos.ustc.edu.cn#g' /etc/yum.repos.d/CentOS-SCLo-scl.repo
sed -i 's#mirror.centos.org#centos.ustc.edu.cn#g' /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
yum -y install supervisor
安装ansible
./setup.sh
在
TASK [awx_install : Migrate the Tower database schema (may take awhile when upgrading).] ***
这一步会出现错误,提示信息是数据库连接不上
启动postgresql
service postgresql-9.4 initdb
service postgresql-9.4 start
创建用户
su - postgres
psql
CREATE ROLE awx CREATEDB PASSWORD 'admin' LOGIN;
\q
sed -i 's#peer#md5#g' /var/lib/pgsql/9.4/data/pg_hba.conf
sed -i 's#ident#md5#g' /var/lib/pgsql/9.4/data/pg_hba.conf
service postgresql-9.4 restart
测试awx用户连接,输入密码连接,并创建数据库
psql -U awx -d postgres -h 127.0.0.1
create database awx;
\q
再次./setup.sh
进行安装tower
Web配置
访问web页面
https://192.168.77.128/#/
用户名/密码为admin admin
导入license
没有的话,点击REQUEST LICENSE,去官方申请免费试用。
提交license后,就进入了DASHBOARD页面啦
Paste_Image.pngTower无限hosts的License修改
仅供实验测试使用,切勿挪作他用。
下载反编译工具: http://sourceforge.net/projects/easypythondecompiler/
反编译task_engine.pyc文件
find / -name task_engine.pyc
/var/lib/awx/venv/tower/lib/python2.7/site-packages/awx/main/task_engine.pyc
Paste_Image.png
反编译后的文件为task_engine.pyc_dis,文件重命名为task_engine.py
修改内容
89
行和186
行代码
available_instances = int(self.attributes['instance_count']) 为
available_instances = 10000
247
行代码,把相应的功能由False
改为True
删除task_engine.pyc task_engine.pyo ,将修改后的task_engine.py文件上传到tower上,重启tower服务
rm -f /var/lib/awx/venv/tower/lib/python2.7/site-packages/awx/main/task_engine.py*
cp task_engine.py /var/lib/awx/venv/tower/lib/python2.7/site-packages/awx/main/
ansible-tower-service restart
查看license信息
Paste_Image.png安装时遇到的错误
fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg": "This machine does not have sufficient RAM to run Ansible Tower."}
解决:机器内存不足,增加内存
fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg": "no service or tool found for: supervisord"}
解决:yum -y install supervisor
出现Is the server running on host \"localhost\" (127.0.0.1) and accepting\n\tTCP/IP connections on port 5432?
是postgresql服务没启动
service postgresql-9.4 initdb
service postgresql-9.4 start
# 创建用户
su - postgres
psql
CREATE ROLE awx CREATEDB PASSWORD 'admin' LOGIN;
\q
exit
sed -i 's#peer#md5#g' /var/lib/pgsql/9.4/data/pg_hba.conf
sed -i 's#ident#md5#g' /var/lib/pgsql/9.4/data/pg_hba.conf
service postgresql-9.4 restart
# 测试awx用户连接,输入密码连接,并创建数据库
psql -U awx -d postgres -h 127.0.0.1
create database awx;
\q
更多文章请看 Ansible 专题文章总览
网友评论
[0;31mfatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg": "Could not find the requested service httpd: host"}[0m
to retry, use: --limit @/etc/ansible/ansible-tower-setup-bundle-3.0.3-1.el6/install.retry
请问,这个报错是什么原因
[0;31mfatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg": "Could not find the requested service httpd: host"}[0m
to retry, use: --limit @/etc/ansible/ansible-tower-setup-bundle-3.0.3-1.el6/install.retry
请问,这个报错是什么原因
fatal: [localhost]: FAILED! => {"changed": true, "cmd": ["tower-manage", "migrate", "--noinput", "--fake-initial"], "delta": "0:01:32.672499",
这个是什么问题呢,sql链接是没有问题的
fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg": "User on remote machine is postgres (root required)"}
to retry, use: --limit @/root/ansible-tower-setup-3.0.3/install.retry
PLAY RECAP *********************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=1
提示这个错误是什么意思,都是按照你的说的做的,把postgres加入/etc/sudoers 的root中也不行啊
fatal: [localhost]: FAILED! => {"changed": true, "cmd": ["tower-manage", "migrate", "--noinput", "--fake-initial"], "delta": "0:01:32.672499",
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: ImportError: No module named yum
failed: [localhost] (item=[u'python-psycopg2', u'python-setuptools', u'libselinux-python', u'setools-libs-python', u'yum-utils', u'sudo', u'acl']) => {"failed": true, "item": ["python-psycopg2", "python-setuptools", "libselinux-python", "setools-libs-python", "yum-utils", "sudo", "acl"], "module_stderr": "Traceback (most recent call last):\n File \"/tmp/ansible__52jg8/ansible_module_yum.py\", line 25, in <module>\n import yum\nImportError: No module named yum\n", "module_stdout": "", "msg": "MODULE FAILURE"}
to retry, use: --limit @/root/ansible-tower-setup-bundle-3.0.3-1.el6/install.retry
PLAY RECAP *********************************************************************
localhost : ok=26 changed=0 unreachable=0 failed=1
fatal: [localhost]: FAILED! => {"changed": false, "cmd": "grep \"amqp://\" /etc/tower/conf.d/celeryd.py", "delta": "0:00:00.006834", "end": "2016-12-29 18:38:34.416822", "failed": true, "rc": 2, "start": "2016-12-29 18:38:34.409988", "stderr": "grep: /etc/tower/conf.d/celeryd.py: No such file or directory", "stdout": "", "stdout_lines": [], "warnings": []}
fatal: [localhost]: FAILED! => {"changed": false, "cmd": "grep \"import ldap\" /etc/tower/settings.py", "delta": "0:00:00.006701", "end": "2016-12-29 18:38:34.756402", "failed": true, "rc": 2, "start": "2016-12-29 18:38:34.749701", "stderr": "grep: /etc/tower/settings.py: No such file or directory", "stdout": "", "stdout_lines": [], "warnings": []}
fatal: [localhost]: FAILED! => {"changed": false, "cmd": "psql --version", "delta": "0:00:00.005885", "end": "2016-12-29 18:38:34.947943", "failed": true, "rc": 127, "start": "2016-12-29 18:38:34.942058", "stderr": "/bin/bash: psql: command not found", "stdout": "", "stdout_lines": [], "warnings": []}
fatal: [localhost]: FAILED! => {"changed": false, "cmd": "cat /var/lib/awx/.tower_version", "delta": "0:00:00.006550", "end": "2016-12-29 18:38:35.327132", "failed": true, "rc": 1, "start": "2016-12-29 18:38:35.320582", "stderr": "cat: /var/lib/awx/.tower_version: No such file or directory", "stdout": "", "stdout_lines": [], "warnings": []}
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: ImportError: No module named yum
failed: [localhost] (item=[u'pyth
Failed to access license information. GET returned status:
有什么细节没有提到的吗?
步骤哪里有问题吗?