将导入的rhel-7-server-rpms和rhel-7-server-extras-rpms两个文件夹拷贝到AnsibleTower目标服务器上,安装启动httpd并创建本地repo源。由于Ansible Tower自身占用80和8080端口,因此在创建Apache(httpd)服务器时,将端口改为8090。
# cat /etc/yum.repos.d/local.repo
[rhel]
name=rhel
baseurl=http://172.20.16.227:8090/rhel/
gpgcheck=0
enable=1
[rhel-extra]
name=rhel-extra
baseurl=http:// 172.20.16.227:8090/rhel-extra/
gpgcheck=0
enable=1
Ansible Tower程序由Ansible自身推送,因此需要首先安装Ansible RPM包。Ansible RPM存在于rhel-7-server-extras-rpms repo中,直接执行安装即可。
# yum install -y ansible
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Resolving Dependencies
--> Running transaction check
---> Package ansible.noarch 0:2.3.1.0-3.el7 will be installed
--> Processing Dependency: PyYAML
......
python2-cryptography.x86_64 0:1.7.2-1.el7 python2-pyasn1.noarch 0:0.1.9-7.el7 sshpass.x86_64 0:1.06-2.el7
Complete!
解压ansible-tower-setup-bundle-latest.el7.tar.gz,修改目录中inventory文件,由于Tower将安装到本地,因此只需要修改相关password信息,其他均无需做额外更改。
# cat inventory
[tower]
localhost ansible_connection=local
[database]
[all:vars]
admin_password='redhat'
pg_host=''
pg_port=''
pg_database='awx'
pg_username='awx'
pg_password='redhat'
rabbitmq_port=5672
rabbitmq_vhost=tower
rabbitmq_username=tower
rabbitmq_password='redhat'
rabbitmq_cookie=cookiemonster
# Needs to be true for fqdns and ip addresses
rabbitmq_use_long_name=false
# ./setup......Complete! |
---|
Ansible Tower:192.168.10.10
Host1: 192.168.10.11
Host2: 192.168.10.12
测试项目 | Ansible Tower安装测试 |
---|---|
测试目的 | 测试Ansible Tower软件能否被正确安装部署 |
测试步骤 | 访问Ansible Tower节点https://192.168.10.102) 输入用户名admin,口令redhat。能够打开登录页面,并且成功登录,3) 初始登录过程需要首先导入license信息。将上述提前申请的license信息导入到Ansible Tower中,点击 SUMMIT。4) 继续登录能看到所有节点基础信息为正常。 |
2) 输入用户名admin,口令redhat。能够打开登录页面,并且成功登录, 3) 初始登录过程需要首先导入license信息。将上述提前申请的license信息导入到Ansible Tower中,点击 SUMMIT。 4) 继续登录能看到所有节点基础信息为正常。
2 导入主机列表
Ansible Tower中主机列表(Inventory)包括hosts,groups等信息,支持多种方式写入(导入)主机列表,Inventory文件里面的Variables可以用YAML或者JSON格式,可以定义Ansible的变量,用户信息,连接信息等。
本次测试采用第一种输入方式定义主机列表。
测试项目 | 主机列表导入Ansible Tower |
---|---|
测试目的 | 将纳管主机的列表导入Ansible Tower,完成主机纳管 |
测试步骤 | 点击界面中“INVENTORIES”页面,点击“+ADD”出现“NEW INVENTORY界面”,为这一组纳管机器输入一个名字“Linux”,在“ORGANIZATION”处选择default(由于是测试版本,只能使用一个default组织且不能增加及改变),点击“SAVE”为这组新定义的纳管节点可以定义不同的组“GROUP”,每个组增加不同的“HOST”。组是逻辑概念,跟业务相关系,每个host根据逻辑的不同,可以在不同的组中;同时组可以嵌套,每个组中可以继续包含不同的组。首先“ADD GROUP”,输入test1,点击“SAVE”。新创建的组能够被正确创建。 在test1组中,创建两个新的纳管节点,在右侧HOSTS标签中点击“ADD HOST”,输入两个节点IP地址信息,点击保存。 |
测试项目 | 创建信任证书 |
---|---|
测试目的 | 测试在Ansible Tower界面可以创建信任证书,具有用户权限管控功能等。 |
测试步骤 | 创建纳管节点的登录信息,点击 首页->齿轮->Credential页面 输入 test_credential名字,TYPE与Inventory一样,支持多种方式输入信息,这里选择 Machine,手工创建,输入username:john和password信息。默认Ansible Tower不推荐使用root用户,如要使用root权限,可在privilege escalation标签中额外申请sudo权限,同时输入root用户名及密码。 |
测试项目 | 将编写好的Playbook导入Ansible Tower |
---|---|
测试目的 | 测试Playbook可以被导入Ansible Tower |
测试步骤 | 将已经编写好的Ansible Playbook 拷贝到Ansible Tower服务器的/var/lib/awx/projects下,每个任务单独创建目录。然后在Tower界面创建Project,导入Playbook。 |
Projects是一个管理Ansible Playbook的平台,支持以下多种方式创建项目。
在创建Project前,要确保完成10.1.4章节,项目的playbook已经拷贝到Ansible Tower /var/lib/awx/projects/下,AnsibleTower默认将项目的playbook存放在此,而且每个项目要创建一个目录,每个项目下可以有多个playbook。
测试项目 | 创建项目 |
---|---|
测试目的 | 测试在Ansible Tower界面可以创建项目 |
测试步骤 | 点击Projects标签,创建项目。输入项目的name在SCM TYPE中支持多种方式,本次测试通过手工方式导入playbook,在这里选择Manual。 |
Job Template是一个具体任务的模板,通过填写Inventory,Project,Playbook,Machine Credentials, Forks等将一个任务实例化。
在执行本次任务前,确保完成10.1.2到10.1.5章节的内容。
测试项目 | 创建任务模板 |
---|---|
测试目的 | 测试在Ansible Tower界面可以创建任务模板 |
测试步骤 | 点击Template标签,点击ADD->job template填入具体细节信息,在不确定情况下,可以点击 放大镜 按钮,选取相关信息。在选定projects后,导入到/var/lib/awx/projects/中相关的yml文件会在playbook对话框中出现。请注意确保yml文件符合格式,否则此yml文件不会出现在对话框中。点击 SAVE 按钮保存此任务模板。继续测试10.1.7章节,执行任务。 |
Jobs中记录了所有执行过的任务,便于审计和查看之前执行的任务状态。需要完成10.1.6章节的创建任务模板。
测试项目 | 执行任务 |
---|---|
测试目的 | 测试在Ansible Tower界面可以使用之前定义的任务模板执行任务 |
测试步骤 | 在任务模板中可以看到创建的每一个模板,点击模板右侧的 小火箭 按钮,开始执行相关任务。页面会转到相关执行页面,可以查看每个任务具体执行情况,结果返回等具体信息。在任务具体信息里面可以点击每一项,查看具体返回值信息。在返回值信息中,能够区分在此次任务执行过程中是否导致目标纳管机器发生变化,绿色表示无变化,黄色表示此次执行与上次执行有变化。 |
Ansible Tower不仅支持运行实时任务,还支持计划任务,可以将已经创建好的任务定义为周期性的任务。
需要完成10.1.6创建任务模板章节。
测试项目 | 创建计划任务 |
---|---|
测试目的 | 测试在Ansible Tower界面可以创建计划任务 |
测试步骤 | 在Templates里面选中要将哪一个任务定制为计划任务,点击任务右侧的月历图标然后进入到这是计划任务界面,可以选中任务执行的频率是分钟、小时、天、周、月、年在具体时间可以执行相关定时任务。 |
测试项目 | 创建Ansible Tower工作流 |
---|---|
测试目的 | 测试在Ansible Tower界面可以创建工作流,需要有正式企业级License,普通试用License没有此功能。 |
测试步骤 | 在Templates里点击ADD+,选择workflow job template在创建工作流模板中输入名称等基本信息,点击保存。点击“WORKFLOW EDITOR”进入工作流编辑界面,可以针对每个playbook不同执行结果,执行不同的后续playbook,达到工作流操作的过程。点击小火箭,能够成功执行工作流,并且每个playbook执行结果情况能够实时显示,如图所示,20001-yum-reposity正在执行,点击DETAILS可以查看详细执行细节。‐ 蓝色表示单步顺序执行;‐ 绿色表示前端执行成功后顺序执行;‐ 红色表示前端执行失败后顺序执行;‐ 灰色表示当前playbook还未被执行。 |
‐ 蓝色表示单步顺序执行; ‐ 绿色表示前端执行成功后顺序执行; ‐ 红色表示前端执行失败后顺序执行; ‐ 灰色表示当前playbook还未被执行。