Ansible Tower的安装与基本功能测试

一、安装

1.创建本地repo源

将导入的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

2. 安装Ansible软件包

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!

3.安装Ansible Tower

解压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
  • 执行ansible-tower-setup-bundle-3.1.4-1.el7目录中setup.sh脚本信息完成Ansible Tower安装

# ./setup......Complete!

  • 完成安装后可访问主页:(本截图为后续测试页面,与真实测试场景中IP等信息存在误差,请修改IP至Ansible Tower所在服务器地址,下同)

Ansible Tower:192.168.10.10

Host1: 192.168.10.11

Host2: 192.168.10.12

二、基本功能测试

1. Ansible Tower安装

测试项目

Ansible Tower安装测试

测试目的

测试Ansible Tower软件能否被正确安装部署

测试步骤

访问Ansible Tower节点https://192.168.10.102) 输入用户名admin,口令redhat。能够打开登录页面,并且成功登录,3) 初始登录过程需要首先导入license信息。将上述提前申请的license信息导入到Ansible Tower中,点击 SUMMIT。4) 继续登录能看到所有节点基础信息为正常。

  • 访问Ansible Tower节点https://192.168.10.10

2) 输入用户名admin,口令redhat。能够打开登录页面,并且成功登录, 3) 初始登录过程需要首先导入license信息。将上述提前申请的license信息导入到Ansible Tower中,点击 SUMMIT。 4) 继续登录能看到所有节点基础信息为正常。

2 导入主机列表

Ansible Tower中主机列表(Inventory)包括hosts,groups等信息,支持多种方式写入(导入)主机列表,Inventory文件里面的Variables可以用YAML或者JSON格式,可以定义Ansible的变量,用户信息,连接信息等。

  • 可以在Ansible Tower界面inventories页面中定义主机列表。
  • 可以通过github,SVN等同步Inventory文件。
  • 可以创建组的时候可以使用Source Control从远程同步,支持以下源:
  • Rackspace CloudServers
  • Amazon Web ServicesEC2
  • Google Compute Engine
  • Microsoft AzureResource Manager
  • vCenter
  • Red Hat Satellite 6
  • Red Hat CloudForms
  • OpenStack

本次测试采用第一种输入方式定义主机列表。

测试项目

主机列表导入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地址信息,点击保存。

  • 点击界面中“INVENTORIES”页面,点击“+ADD”
  • 出现“NEW INVENTORY界面”,为这一组纳管机器输入一个名字“Linux”,在“ORGANIZATION”处选择default(由于是测试版本,只能使用一个default组织且不能增加及改变),点击“SAVE”
  • 为这组新定义的纳管节点可以定义不同的组“GROUP”,每个组增加不同的“HOST”。组是逻辑概念,跟业务相关系,每个host根据逻辑的不同,可以在不同的组中;同时组可以嵌套,每个组中可以继续包含不同的组。
  • 首先“ADD GROUP”,输入test1,点击“SAVE”。新创建的组能够被正确创建。
  • 在test1组中,创建两个新的纳管节点,在右侧HOSTS标签中点击“ADD HOST”,输入两个节点IP地址信息,点击保存。

3 创建信任证书

测试项目

创建信任证书

测试目的

测试在Ansible Tower界面可以创建信任证书,具有用户权限管控功能等。

测试步骤

创建纳管节点的登录信息,点击 首页->齿轮->Credential页面 输入 test_credential名字,TYPE与Inventory一样,支持多种方式输入信息,这里选择 Machine,手工创建,输入username:john和password信息。默认Ansible Tower不推荐使用root用户,如要使用root权限,可在privilege escalation标签中额外申请sudo权限,同时输入root用户名及密码。

  • 创建纳管节点的登录信息,点击 首页->齿轮->Credential页面
  • 输入 test_credential名字,TYPE与Inventory一样,支持多种方式输入信息,这里选择 Machine,手工创建,输入username:john和password信息。
  • 默认Ansible Tower不推荐使用root用户,如要使用root权限,可在privilege escalation标签中额外申请sudo权限,同时输入root用户名及密码。

4. 导入Playbook

测试项目

将编写好的Playbook导入Ansible Tower

测试目的

测试Playbook可以被导入Ansible Tower

测试步骤

将已经编写好的Ansible Playbook 拷贝到Ansible Tower服务器的/var/lib/awx/projects下,每个任务单独创建目录。然后在Tower界面创建Project,导入Playbook。

  • 将已经编写好的Ansible Playbook 拷贝到Ansible Tower服务器的/var/lib/awx/projects下,每个任务单独创建目录。
  • 然后在Tower界面创建Project,导入Playbook。

5 创建项目

Projects是一个管理Ansible Playbook的平台,支持以下多种方式创建项目。

  • 可以手动添加Playbook
  • 可以试用SourceControl来同步Playbook,目前支持github、Mercurial和Subversion。

在创建Project前,要确保完成10.1.4章节,项目的playbook已经拷贝到Ansible Tower /var/lib/awx/projects/下,AnsibleTower默认将项目的playbook存放在此,而且每个项目要创建一个目录,每个项目下可以有多个playbook。

测试项目

创建项目

测试目的

测试在Ansible Tower界面可以创建项目

测试步骤

点击Projects标签,创建项目。输入项目的name在SCM TYPE中支持多种方式,本次测试通过手工方式导入playbook,在这里选择Manual。

  • 点击Projects标签,创建项目。
  • 输入项目的name
  • 在SCM TYPE中支持多种方式,本次测试通过手工方式导入playbook,在这里选择Manual。

6 创建任务模板

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章节,执行任务。

  • 点击Template标签,点击ADD->job template
  • 填入具体细节信息,在不确定情况下,可以点击 放大镜 按钮,选取相关信息。
  • 在选定projects后,导入到/var/lib/awx/projects/中相关的yml文件会在playbook对话框中出现。请注意确保yml文件符合格式,否则此yml文件不会出现在对话框中。
  • 点击 SAVE 按钮保存此任务模板。
  • 继续测试10.1.7章节,执行任务。

7 执行任务

Jobs中记录了所有执行过的任务,便于审计和查看之前执行的任务状态。需要完成10.1.6章节的创建任务模板。

测试项目

执行任务

测试目的

测试在Ansible Tower界面可以使用之前定义的任务模板执行任务

测试步骤

在任务模板中可以看到创建的每一个模板,点击模板右侧的 小火箭 按钮,开始执行相关任务。页面会转到相关执行页面,可以查看每个任务具体执行情况,结果返回等具体信息。在任务具体信息里面可以点击每一项,查看具体返回值信息。在返回值信息中,能够区分在此次任务执行过程中是否导致目标纳管机器发生变化,绿色表示无变化,黄色表示此次执行与上次执行有变化。

  • 在任务模板中可以看到创建的每一个模板,点击模板右侧的 小火箭 按钮,开始执行相关任务。
  • 页面会转到相关执行页面,可以查看每个任务具体执行情况,结果返回等具体信息。
  • 在任务具体信息里面可以点击每一项,查看具体返回值信息。
  • 在返回值信息中,能够区分在此次任务执行过程中是否导致目标纳管机器发生变化,绿色表示无变化,黄色表示此次执行与上次执行有变化。

8 创建计划任务

Ansible Tower不仅支持运行实时任务,还支持计划任务,可以将已经创建好的任务定义为周期性的任务。

需要完成10.1.6创建任务模板章节。

测试项目

创建计划任务

测试目的

测试在Ansible Tower界面可以创建计划任务

测试步骤

在Templates里面选中要将哪一个任务定制为计划任务,点击任务右侧的月历图标然后进入到这是计划任务界面,可以选中任务执行的频率是分钟、小时、天、周、月、年在具体时间可以执行相关定时任务。

  • 在Templates里面选中要将哪一个任务定制为计划任务,点击任务右侧的月历图标
  • 然后进入到这是计划任务界面,可以选中任务执行的频率是分钟、小时、天、周、月、年
  • 在具体时间可以执行相关定时任务。

9 工作流任务创建

测试项目

创建Ansible Tower工作流

测试目的

测试在Ansible Tower界面可以创建工作流,需要有正式企业级License,普通试用License没有此功能。

测试步骤

在Templates里点击ADD+,选择workflow job template在创建工作流模板中输入名称等基本信息,点击保存。点击“WORKFLOW EDITOR”进入工作流编辑界面,可以针对每个playbook不同执行结果,执行不同的后续playbook,达到工作流操作的过程。点击小火箭,能够成功执行工作流,并且每个playbook执行结果情况能够实时显示,如图所示,20001-yum-reposity正在执行,点击DETAILS可以查看详细执行细节。‐ 蓝色表示单步顺序执行;‐ 绿色表示前端执行成功后顺序执行;‐ 红色表示前端执行失败后顺序执行;‐ 灰色表示当前playbook还未被执行。

  • 在Templates里点击ADD+,选择workflow job template
  • 在创建工作流模板中输入名称等基本信息,点击保存。
  • 点击“WORKFLOW EDITOR”进入工作流编辑界面,可以针对每个playbook不同执行结果,执行不同的后续playbook,达到工作流操作的过程。
  • 点击小火箭,能够成功执行工作流,并且每个playbook执行结果情况能够实时显示,如图所示,20001-yum-reposity正在执行,点击DETAILS可以查看详细执行细节。

‐ 蓝色表示单步顺序执行; ‐ 绿色表示前端执行成功后顺序执行; ‐ 红色表示前端执行失败后顺序执行; ‐ 灰色表示当前playbook还未被执行。

原文发布于微信公众号 - 大魏分享(david-share)

原文发表时间:2018-04-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏匠心独运的博客

消息中间件—RocketMQ消息发送

摘要:使用客户端发送一条消息很Easy,在这背后RocketMQ完成了怎么样的操作呢? 大道至简,消息队列可以简单概括为:“一发一存一收”,在这三个过程中消息...

42930
来自专栏十月梦想

nodejs中cookie设置与获取

 HTTP是无状态协议。简单地说,当你浏览了一个页面,然后转到同一个网站的另一个页面,服务器无法认识到,这是同一个浏览器在访问同一个网站。每一次的访问,都是没有...

17020
来自专栏浪淘沙

Kafka学习笔记

Apache Kafka 是分布式发布-订阅消息系统(消息中间件)。它最初由 LinkedIn 公司开发,之后成为 Apache 项目的一部分。Kafka ...

26130
来自专栏静下来

Discuz论坛 消息群发软件 私信群发

软件说明: 支持部分Discuz论坛3.1、3.2版本的消息群发 软件公开版为1.0(正式版本第一次发出来) 软件产品版本1.3(源码调试版本) 使用说明...

57050
来自专栏Golang语言社区

go-nsq使用简述

一 环境依赖:   golang 开发环境(version >= 1.2) 下源码,配置环境变量,执行安装脚本   gpm 依赖包管理...

539100

使用CoreOs,Docker和Nirmata部署微服务类型的应用

随着采用应用容器的持续增长,设计用于运行容器的“最小”操作系统正在普及。CoreOS就是这样的一个操作系统。CoreOs是为运行现代云原生应用,并为Docker...

309100
来自专栏Golang语言社区

go-nsq使用简述

一 环境依赖:   golang 开发环境(version >= 1.2) 下源码,配置环境变量,执行安装脚本   gpm 依赖包管理...

49160
来自专栏ThoughtWorks

10Hours 网页应用

以前段开发为特长,不放过技术大赛这样机会的刘旸,和几个同事打造的10Hours 受到了大家的好评。想知道何谓10Hours?那就~ ? 最近公司举办技术大赛,...

33090
来自专栏云计算

在Debian 8上使用Varnish和NGINX通过SSL和HTTP提供WordPress服务

Varnish是一个功能强大且灵活的缓存HTTP反向代理。它可以安装在任何Web服务器的前方来缓存其内容,这将提高速度并减少服务器负载。当客户端请求网页时,Va...

24320

使用CoreOs,Docker和Nirmata来部署微服务风格的应用程序

随着应用程序容器(application container)的技术越来越被大众接受,设计用于运行容器的“最轻量级”操作系统正在变得非常流行。CoreOS便是这...

40870

扫码关注云+社区

领取腾讯云代金券