一、准备一台Linux主机
内存要求:4GB以上
分区要求:/var必须大于等于20GB
其他略过
二、安装Ansible
1、安装前准备
(1)首先升级系统
yum update -y
重启服务器
shutdown –r now
(2)安装基础组件
yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget lrzsz zip unzip net-tools libselinux-python
2、安装
下载完整安装包,安装包中包含所有依赖的组件ansible、postgresql等。
下载链接: https://releases.ansible.com/ansible-tower/setup-bundle/
任意目录直接wget 最新的安装包
wget https://releases.ansible.com/ansible-tower/setup-bundle/ansible-tower-setup-bundle-latest.el7.tar.gz
解压
tar zxvf ansible-tower-setup-bundle-latest.el7.tar.gz
修改配置文件
cd ansible-tower-setup-bundle-latest.el7.tar.gz
vi inventory
修改为
[tower]
localhost ansible_connection=local
[database]
[all:vars]
admin_password='admin'
pg_host=''
pg_port=''
pg_database='awx'
pg_username='awx'
pg_password='admin'
rabbitmq_username=tower
rabbitmq_password='admin'
rabbitmq_cookie=cookiemonster
# Isolated Tower nodes automatically generate an RSA key for authentication;
# To disable this behavior, set this value to false
# isolated_key_generation=true
注意加粗的是需要添加上去的,其他不改
运行./setup.sh开始安装,大概需要10分钟左右,当出现提示时The setup process completed successfully.时表示安装完成
错误1:
This machine does not have sufficient RAM to run Ansible Tower
解决:加内存,至少4GB
三、配置Ansible
1、访问192.168.1.76
用户名:admin
密码:admin
这都是inventory配置文件中的
2、导入授权
提示需要授权License
没有License key是无法进入系统的,这里点击"REQUEST LICENSE",跳转到Ansible官网申请试用License key
等待审核通过
四、运行一个测试项目
1、新建playbook
Ansible Tower的playbook默认存在 /var/lib/awx/projects/
playbook将在GitLab上创建,Ansible Tower拉取执行
2、创建HOST登录凭据
点击左侧菜单Credentials,再点击右侧加号
NAME:192.168.1.165-root
CREDENTIAL TYPE:Machine
用户名:root
密码:****
其他留空,点击保存
创建完毕
3、在GitLab中添加operation_ansible_playbook.git项目
http://192.168.1.159/******_org/operation/operation_ansible_playbook.git
4、编写Playbook
文件名:test.yml
内容:
---
- hosts: all
gather_facts: no
tasks:
- name: Check the date on the server.
command: date
- name: Check the ip ip on the server.
command: ip add
注意:tasks后必须有一个"-"符号开头的命令,否则运行会出下边的错误
5、在Ansible Tower添加拉取Gitlab项目的凭据
点击左侧菜单Credentials,再点击右侧加号
NAME:gitlab_ansible_palybook
CREDENTIAL TYPE:Source Control
用户名:lutao
密码:****
其他留空,点击保存
6、创建项目
点击左侧菜单Projects,再点击右侧加号
NAME:Pull GitLab
ORGANIZATION:默认
SCM TYPE:Git
SCM URL:http://192.168.1.159/******_org/operation/operation_ansible_playbook.git
SCM BRANCH/TAG/COMMIT:master
SCM CREDENTIAL:gitlab_ansible_palybook
其他默认
保存后Ansilble Tower会自动运行一次Update,如果要手动运行,点击列表中的刷新按钮。当GitLab上yml文件被更新或者新增后需要点击一下刷新按钮,否则JOB执行得还是原来的yml
点击左侧菜单Job,再点击右侧项目名后的火箭图标
点击任意项目名可以查看详细信息
此时在Ansible Tower服务器的/var/lib/awx/projects/目录下已经有git拉下来的完整文件结构,其中test.yml是我们需要的
7、创建主机清单
点击左侧菜单Inventory,再点击右侧加号
NAME:Test Inventory
ORGANIZATION:默认
保存之后点击上边的HOST,再点击加号添加主机
HOST NAME:192.168.1.165
保存之后启用这个HOST
8、创建任务模板
点击左侧菜单Templates,再点击右侧加号
NAME:Test Job
JOB TYPE:RUN
Inventory:选择Test Inventory
PROJECT 选择 Test Project
PALYBOOK 选择 test.yml
CREDENTIAL 选择 192.168.1.165-root
其他默认
9、运行模板
点击模板名称右侧加号
运行完成后查看运行情况
点击右侧日志中change几行可以看到详细信息