ansible 扩展
ansible 扩展
Ansible Vault加密概述
Ansible Vault做为Ansible的一项新功能,可将例如:password,keys等敏感数据文件进行加密处理,而非存放在明文的playbook中或roles中。
Anisble Vault的使用
usage: ansible-vault [-h] [--version] [-v] {create,decrypt,edit,view,encrypt,encrypt_string,rekey}
## 加密
ansible-vault encrypt mysql.yml
## 查看加密后的playbook
ansible-vault view mysql.yml
## 编辑加密后的playbook
ansible-vault edit mysql.yml
## 解密
ansible-vault decrypt mysql.yml
## 运行加密后的vault
vim /tmp/ap.txt
123
ansible-playbook mysql.yml --vault-password-file=/tmp/ap.txt
## 改密码
ansible-vault rekey mysql.yml
Ansible Tower
什么是Ansible Tower
Ansible Tower是由Redhat提供的一个管理Ansible前端UI,使用它可以免费管理10台以内的主机,所以它是一个收费项目,该项目仅适用于那些不会运维开发,并且有钱的选手们,当然,如果会开发,懒得写,也可以 PJ Ansible Tower。Do you understand me?
Ansible本质上是一个进行了封装的Shell。优点在于它是去中心化的工具,可以直接通过ssh管理远程主机,实现无Agent的部署(ssh+python环境已经原生集成在Linux中)。
Ansible的缺点也在于其去中心化的特点,本身不支持高可用和分布式架构,无法实现Server-Proxy-Client的架构。在比较复杂或者多区域的网络区域中,无法实现统一的集中式管理(如多个ansible管理端的配置同步),也没有前端UI,对ansible的技能要求比较高。
Ansible Tower架构
部署 Anisble Tower
# 1.创建安装目录
[root@web03 ~]# mkdir /root/ansible
# 2.进入目录
[root@web03 ~]# cd /root/ansible
# 3.下载安装包
[root@web03 ansible]# wget http://test.driverzeng.com/other/ansible-tower-setupbundle-3.6.2-1.el7.tar.gz
# 4.解压
[root@web03 ansible]# ll
-rw-r--r-- 1 root root 293849789 Dec 14 2019 ansible-tower-setup-bundle-3.6.2-
1.el7.tar.gz
[root@web03 ansible]# du -sh ansible-tower-setup-bundle-3.6.2-1.el7.tar.gz
281M ansible-tower-setup-bundle-3.6.2-1.el7.tar.gz
[root@web03 ansible]# tar xf ansible-tower-setup-bundle-3.6.2-1.el7.tar.gz
[root@web03 ansible]# ll
total 286964
drwxr-xr-x 6 root root 190 Dec 14 2019 ansible-tower-setup-bundle-3.6.2-1
# 5.进入安装目录
[root@web03 ansible-tower-setup-bundle-3.6.2-1]# ll
total 52
-rw-r--r-- 1 root root 562 Dec 14 2019 backup.yml
drwxr-xr-x 4 root root 28 Dec 14 2019 bundle
drwxr-xr-x 2 root root 17 Dec 14 2019 group_vars
-rw-r--r-- 1 root root 7410 Dec 14 2019 install.yml
-rw-r--r-- 1 root root 1148 Dec 14 2019 inventory
drwxr-xr-x 3 root root 8192 Dec 14 2019 licenses
-rw-r--r-- 1 root root 2526 Dec 14 2019 README.md
-rw-r--r-- 1 root root 1335 Dec 14 2019 rekey.yml
-rw-r--r-- 1 root root 1393 Dec 14 2019 restore.yml
drwxr-xr-x 20 root root 312 Dec 14 2019 roles
-rwxr-xr-x 1 root root 11405 Dec 14 2019 setup.sh
# 6.修改inventory文件
vim inventory
#将里面的全部删除d+G然后复制粘贴下面的内容
[tower]
localhost ansible_connection=local
[database]
[all:vars]
admin_password='tower' #tower登录密码
pg_host=''
pg_port=''
pg_database='awx'
pg_username='awx'
# 7.运行脚本安装
[root@web03 ansible-tower-setup-bundle-3.6.2-1]# ./setup.sh
安装完成后打开浏览器:http://10.0.0.9

Ansible Tower 破解
# 1.安装python环境
[root@web03 ansible-tower-setup-bundle-3.6.2-1]# yum install -y python36-devel
# 2.安装uncompyle6
[root@zabbix01 tower_license]# pip3 install uncompyle6 -i https://pypi.douban.com/simple
# 3.反编译代码
进入代码目录
[root@web03 ~]# cd /var/lib/awx/venv/awx/lib/python3.6/site-packages/tower_license
[root@web03 tower_license]# uncompyle6 __init__.pyc >__init__.py
# 4.修改文件
vim __init__.py
def _check_cloudforms_subscription(self):
# 在此处直接添加 return Ture
return Ture
# 5.备份原来的pyc文件
[root@web03 tower_license]# mv __init__.pyc __init__.pyc.bak
# 6.编译代码.py
[root@web03 tower_license]# python -m py_compile __init__.py
[root@web03 tower_license]# python -O -m py_compile __init__.py
# 7.重启服务
[root@web03 tower_license]# ansible-tower-service restart
Restarting Tower
Redirecting to /bin/systemctl stop rh-postgresql10-postgresql.service
Redirecting to /bin/systemctl stop rabbitmq-server.service
Redirecting to /bin/systemctl stop nginx.service
Redirecting to /bin/systemctl stop supervisord.service
Redirecting to /bin/systemctl start rh-postgresql10-postgresql.service
Redirecting to /bin/systemctl start rabbitmq-server.service
Redirecting to /bin/systemctl start nginx.service
Redirecting to /bin/systemctl start supervisord.service
完成后刷新浏览器界面

Ansible Tower使用
先创建连接虚拟机的方式

选择使用密码或者秘钥>>>>填完后点击右下角SAVE按钮保存

创建主机清单


添加主机



添加项目
编辑playbook
# 1.进入ansible tower指定目录
[root@web03 tower_license]# cd /var/lib/awx/projects
# 2.创建目录
[root@web03 projects]# mkdir ip
# 3.编辑playbook
[root@web03 projects]# vim ip/get_ifconfig.yml
- hosts: all
tasks:
- name: Get Ifconfig
shell: 'ifconfig'
# 4.授权
[root@web03 projects]# chown awx.awx -R /var/lib/awx/projects/

创建执行任务的模板


保存后点击最下方的对应任务后面的小火箭运行
执行任务的结果

本文来自博客园,作者:远方还很远,转载请注明原文链接:https://www.cnblogs.com/moqiqingyu/p/15164406.html

浙公网安备 33010602011771号