亚马逊网络服务

使用Ansible Tower管理AWS基础设施

网站设计。开发编程和编码技术。

使用Ansible Tower,我可以自动完成简单和复杂的任务,比如在Linux服务上配置和安装包,以及配置AWS基础设施。

1

你的公司应该考虑实现Ansible来满足你的业务需求,如果你正在寻找:多用户访问,用户管理,凭证,安全,RBAC,复杂的编排,报告,日志,和/或审计。Ansible Playbook只支持cli, Ansible Tower提供了一个Web GUI和API服务器,用于在企业环境中使用Ansible。

安布尔塔的主要特点

  • 视觉指示板
  • 图形化库存管理
  • RBAC
  • 作业调度
  • 工作经历报告
  • 远程命令执行
  • 集中的日志
  • 通知
  • Multi-playbook工作流
  • Restful API

安可塔的好处

  • 在整个组织中重用ansible脚本
  • 为团队运行可靠的脚本提供共享的基础设施
  • 轻松管理特权和受保护的管理员凭据
  • 对于传统使用GUI工具的IT团队来说,易于使用
  • Ansible Tower提供了在企业规模上高效运行和管理Ansible自动化平台的框架
  • 提供web界面,RBAC,集中日志和审计
  • RESTful API促进了与企业现有工作流和工具集的集成

Ansible Tower建筑

2

安可塔安装

我选择t2。因为Ansible Tower需要至少2个vcpu和4GB RAM。

基本映像被设置为Red Hat Enterprise Linux 8,您还必须允许从外部到EC2实例的HTTP和HTTPS通信。

3.

使用以下命令

> yum更新-y
> yum安装wget -y
> sudo wget https://releases.ansible.com/ansible-tower/setup/ansible-tower-setup-latest.tar.gz
> sudo tar XVF ansible-tower-setup-latest.tar.gz
> CD ansible-tower-setup-3.8.6-2/

请设置运行安装程序的初始管理员密码和数据库密码

> sudo vi库存

设置管理员密码和数据库密码\

4

> vi roles/preflight/defaults/main.yml .

主要做一些改动。yml文件

6

完成后,开始安装Ansible Tower

sudo。/ setup.sh

7

配置Ansible Tower的方法如下:

  • CLI
  • RESTful API
  • Web UI

我们将使用Web UI,因为这是大多数Ansible Tower新用户最喜欢的方法。打开你的浏览器指向你的Ansible Tower服务器IP或主机名通过https协议。

8

9

10

同意最终用户许可协议和提交完成安装。

在AWS上创建基础设施

我们将在AWS上创建一个EC2实例。然后配置安布尔塔运行剧本。

  1. 创建一个包含与AWS对话的库的专用虚拟环境
  2. 将我们的剧本导入安sible Tower
  3. 创建自定义凭证类型并实例化它
  4. 定义库存
  5. 添加并执行作业模板
亚马逊网络服务-避免联络中心中断:计划升级到亚马逊连接
避免联络中心停机:计划升级到Amazon Connect

了解升级呼叫中心时的六个最常见陷阱,以及Amazon Connect如何帮助您避免这些陷阱。

获取指南

Ansible Playbook样本

- - - - - -
—hosts: all
gather_facts:假
任务:
—name:创建虚拟机
steampunk.aws.ec2_instance:
名称:" {{i_name}} "
类型:" {{i_type}} "
ami: ami-0e8286b71b81c3cc1
key_pair: demo_key
子网:" {{i_subnet}} "

创建虚拟环境

不能通过web界面创建新的虚拟环境。相反,您需要SSH进入Ansible Tower并从终端运行命令。

$ sudo yum安装GCC python3-devel
$ sudo mkdir /opt/venvs
$ sudo python3 -m venv /opt/venvs/steampunk_aws . xml
$ sudo /opt/venvs/steampunk_aws/bin/pip install psutil ansible boto3 .使用实例

打开Ansible Tower web界面,登录后进入“设置->系统”界面。将/ opt / venvs路径添加到自定义虚拟环境路径字段,保存您的设置,然后就完成了。

11

添加示例项目

在Ansible Tower上运行Ansible剧本之前,它必须从外部资源中检索(Ansible Tower没有剧本创建功能)。如果你进入项目页面,点击绿色的加号按钮,你会看到这样的东西:

12

提供的凭证

为Ansible剧本提供凭证可能是整个过程中最复杂的步骤。

创建自定义凭据类型

您可以通过导航到凭据类型页面并单击绿色的加号按钮来添加自定义凭据类型。输入名称和描述值应该不是太大的问题,但是输入和注入器配置字段很尴尬。

13

在本例中,输入配置字段的内容如下YAML文档:

字段:
—id: aws_access_key
label: AWS Access key
类型:字符串
—id: aws_secret_key
标签:AWS密钥
类型:字符串
秘密:真正的
—id: aws_region
标签:AWS区域
类型:字符串
选项:[eu-central-1, eu-north-1]
要求:
——aws_access_key
——aws_secret_key
——aws_region

这个YAML文档告诉Ansible Tower,凭据类型有三个必需字段,并且aws_secret_key包含要加密和存储的敏感信息。

注入器配置描述了Ansible Tower如何将凭证传递给Ansible playbook。本例使用环境变量。

env:
AWS_ACCESS_KEY: " {{AWS_ACCESS_KEY}} "
AWS_SECRET_KEY: " {{AWS_SECRET_KEY}} "
AWS_REGION: " {{AWS_REGION}} "

然后点击最后的保存按钮,你就完成了。

添加AWS凭证

现在您已经定义了自定义凭据类型,您可以将AWS凭据添加到Ansible Tower。进入凭证页面,点击绿色加号按钮,Ansible Tower将显示如下表单:

14

注意,在查看类型详细信息字段之前,必须选择权限类型。单击Save按钮,就可以进行下一个配置步骤了。

定义目录

运行每个Ansible剧本在一个或多个主机上运行一个任务。playbook只连接到远程Web API,所以您所需要的只是localhost。您可以通过导航到库存页面,单击绿色的加号按钮,并从下拉菜单中选择库存来创建它。

一旦您命名了您的目录,您必须在导航到Hosts选项卡之前单击Save按钮。再次点击绿色加号按钮后,需要输入主机的详细信息,如下所示:

15

将以下变量定义复制到变量输入字段中:

ansible_connection:本地

ansible_python_interpreter:“{{ansible_playbook_python}}”

如果没有正确设置这些变量,Ansible将无法找到安装在虚拟环境中的包。

添加作业模板

Ansible Tower作业模板基本上是基于Ansible playbook执行的模板。作业模板定义了运行Ansible Tower的剧本、运行期间可以使用的凭证和变量、输出冗余等。在这种情况下,作业模板应该是这样的:

16

17

这个对话框收集前面定义的所有信息。

  • 选择合适的库存来源。
  • 从现在开始选择合适的项目和剧本。
  • 粘贴AWS凭证。

这些字段在上面的截图中被突出显示。但是仍然缺少一些东西:Ansible playbook变量的值。

18

19

运行作业

一旦你输入了所有需要的数据并确认你的选择,Ansible Tower将运行剧本并显示输出。

20.

现在看,我们的EC2实例创建了。

21

我们刚刚用Ansible Tower创建了一个简单的EC2服务器。希望这能帮助你在未来的项目中使用Ansible Tower。如果你对Ansible如何创建AWS实例有任何疑问,请在评论区发表。

《完美》如何帮助你?

Perficient是经过认证的亚马逊网络服务合作伙伴,在云平台解决方案、联络中心、应用现代化、迁移、数据分析、移动、开发人员和管理工具、物联网、无服务器、安全等方面拥有超过10年的企业级应用交付经验和专业知识。配合我们业界领先的战略和团队,Perficient能够帮助企业应对最严峻的挑战,并最大限度地利用他们的实施和集成。

在这里了解更多关于AWS的实践,并与我们的团队取得联系!

关于“使用Ansible Tower管理AWS基础设施”的思考

留下回复

你的电邮地址将不会公布。必填字段已标记

这个网站使用Akismet来减少垃圾邮件。了解如何处理您的评论数据

苏拉Shende

Suraj Shende是Perficient Nagpur的技术顾问,在云服务方面有4年的经验。Suraj是一个优秀的团队合作者,专注于云和DevOps技术。

更多来自作者

关注我们
推特 Linkedin 脸谱网 Youtube Instagram