首先: Ansible是什么.. 请自行谷歌, 反正是好文明就对了.
简单来说.. 你可以用来代替 Docker(?). 然后 Tower 就是 Ansible 的可视化管理面板. 操作更方便 (当然,价格不菲)
Tower 允许对用户进行权限控制,即使某用户不能传送某 SSH 凭证,你也可以通过 Tower 来对该用户共享该凭证。我们可以通过图形化界面来管理 Inventory,也可以对各种各样的云资源做同步。Tower 可以记录所有 job 的日志,也可以与 LDAP 集成,并且拥有强大的可浏览的 REST API。Tower 也提供了命令行工具,可以与 Jenkins 轻松集成。Provisioning 回调对自动伸缩拓扑图提供了强大的支持。
系统需求
- Red Hat Enterprise Linux 8.0 or later 64-bit (only Ansible Tower 3.5 and greater can be installed)
- Red Hat Enterprise Linux 7.4 or later 64-bit
- CentOS 7.4 or later 64-bit
- Ubuntu 16.04 LTS 64-bit (Ubuntu support is deprecated and will be removed in a future release)
简单来说只能在 RH系 进行部署. 笔者的环境是 Centos7.6 64bit.
推荐配置是 2C4G, 硬盘最小20G. 理论上宿主机和节点都是配置越高越好.
开始安装
准备步骤
首先要做的是更换一个稳定快速(而且新)的 yum 源.wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
然后更新一下 epel 源,wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
清理并重建 yum 缓存.yum clean all && yum makecache
安装 PostgreSQL
添加RPM: yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
安装服务端软件: yum install postgresql96-server postgresql96-contrib
初始化数据库并配置开机自启:/usr/pgsql-9.6/bin/postgresql96-setup initdb
systemctl enable postgresql-9.6
systemctl start postgresql-9.6
查看 PostgreSQL 运行状态: systemctl status postgresql-9.6.service
切换到 User postgres 并以此身份连接到数据库:su - postgres
psql -U postgres
修改超管用户的密码(重要): ALTER USER postgres WITH PASSWORD '超管密码';
创建用于 Ansible Tower 的用户: CREATE ROLE 用户名 WITH LOGIN PASSWORD '密码'
之后需要用到, 请保存.
上方两个密码如果忘记, 可以修改 pg_hba.conf 中的本地为 trust, 然后进入数据库修改.
对配置文件进行三次野蛮替换, 前两次是修改加密方式, 第三次是更改监听地址.sed -i 's#peer#md5#g' /var/lib/pgsql/9.6/data/pg_hba.conf
sed -i 's#ident#md5#g' /var/lib/pgsql/9.6/data/pg_hba.conf
sed -i 's/localhost/*/' /var/lib/pgsql/9.6/data/postgresql.conf
添加客户端节点是, 按照示例添加在 /var/lib/pgsql/9.6/data/pg_hba.conf 中即可.
像这样: host all all 192.168.153.1/32 trust
重启 PostgreSql 服务: systemctl restart postgresql-9.6.service
用测试用户进行数据库创建: psql -U 用户名 -d postgres -h 127.0.0.1
输入密码之后: create database 数据库名;
使用 \q
退出 PostgreSQL命令行. 然后 exit 回到 root
用户.
至此, PostgreSQL 的安装与配置结束. 需要留存 用户名 密码 数据库名 三个参数待用.
安装 RabbitMQ Server
下载并安装 erlang 和 socat
wget https://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm
rpm -ivh erlang-19.0.4-1.el7.centos.x86_64.rpm
yum install erlang socat -y
mkdir /etc/rabbitmq | wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.17/rabbitmq-server-generic-unix-3.7.17.tar.xz | tar -xf -C /etc/rabbitmq/
mv /etc/rabbitmq/rabbitmq_server-3.7.17/* /etc/rabbitmq && rm -f rabbitmq-server-generic-unix-3.7.17.tar.xz
echo export PATH=/etc/rabbitmq/sbin:$PATH >> /etc/profile | source /etc/profile
配置开机自启: systemctl enable rabbitmq-server
启动程序: systemctl start rabbitmq-server [ 这里要注意有个坑, 如果 hostname 带有 . 则无法启动! ]
新增用户并添加至管理员组:
rabbitmqctl add_user 用户名 密码
rabbitmqctl set_user_tags 用户名 administrator
弃坑逃离
对不起各位读者… 刚刚半个小时装不好兔子MQ. 然后一气之下 rm -rf /*
了.
下面的步骤可以参考官方安装文档: https://docs.ansible.com/ansible-tower/latest/html/quickinstall/prepare.html#installation-and-reference-guide
Tower 下载地址: https://releases.ansible.com/ansible-tower/setup/ansible-tower-setup-latest.tar.gz
可供参考的另一篇中文教程 (但不是最新软件): https://blog.51cto.com/qiangsh/2410518
如果反汇编 /var/lib/awx/venv/awx/lib/python3.6/site-packages/tower_license/init.pyc 之后在82行添加 return True 以及修改76行 license_date 去除结尾L 的破解方式失效.
那么可以尝试 echo $RANDOM > /var/lib/awx/i18n.db
评论 (0)