Ansible Tower的容量规划与高可用设计

一、Ansible Tower的高可用架构

Ansible tower可以配置集群,如果配置集群,至少有三个节点,并且是奇数个。例如下图:

三个ansibe tower组成的cluster共享一个postgreSQL数据库(当然也可以给数据库做高可用,如Hot standby/streaming replication或者Warm standby/log shipping方式);

每个节点上都有RabbitMQ,RabbitMQ可以连接所有的ansible toewer节点,并做任务下发的负载均衡(任务下发策略后面会提到);

一个任务下发到某一个tower上,任务执行过程中,如果节点出现故障,任务需要重新提交,在其他tower上执行;

Ansible tower集群中的任务有两类:

  1. housekeeping tasks,它包含:

(1)决定去哪运行job

(2)处理playbook信息

Tower cluster判断tower成员健康状态调用:/api/v2/ping

二、Ansible Tower容量规划

一个Ansible tower最小配置:

2个CPU(硬件超线程)

2GB内存

每个CPU(硬件超线程)最大可以有10个forks,4GB内存可以运行100个forks。

所以:

  1. 一个2 CPU、2G内存的tower可以运行20个forks
  2. 一个10CPU、4G内存的tower可以最多运行100个forks

当通过访问呢ansible tower发执行jod请求的时候,tower会计算这个运算这个jbos所需要的运算能capacity。

一个job运行所需要的运算能力公式:

(number of forks on the job) * 10 = (capacity consumed)

其中,number of forks on the job,指的是这个job执行的时候,并发执行节点的数量。例如,一个job是给100个Linux系统打补丁,如果每次对5个机器并发下发任务,那就需要下发20次。这个并发下发的数量,就是number of forks on the job。

那么,怎么计算一个tower的运算能力呢?参照公式:

50 + ((total memory in megabytes) / 1024) - 2) * 75

我们想象一个场景:运行一个job,需要50的运算能力,那么当job发起后,就会到tower集群中,寻找剩余运算能力不低于50的tower节点去执行。

因此,我们在给ansible tower做配置和设置job fork的时候,就需要尽量合理。

三、Ansible Tower的认证方式

Ansible tower的认证方式有:

  • Social authentication

Google OAuth2

GitHub OAuth2

  • Enterprise authentication

Azure Active Directory

SAML authentication

RADIUS authentication

  • LDAP authentication

Kerberos authentication

Active Directory and Kerberos

四、Ansible Tower中的workflow

在Ansible tower中,可以配置workflow。

workflow是将tower中已有的多个job串联、并联起来,组成任务流。

workflow的每一步使用不同的Playbook、Inventory和Set of credentials。

局内内容,后面内容会涉及。

五、Ansible Tower安装

首先查看实验环境:

下载tower软件包:

配置ansible tower集群的清单文件:

执行ansible tower cluster的安装:

安装完毕:

通过浏览器访问tower1:

配置psotgres数据库复制:

PostgreSQL Database for Replication创建配置文件

在tower集群中tower1创建用户

tower2上也可以看到这个用户:

创建孤立节点:

执行playbook:

安装成功:

再度登录ansible tower,可以看到孤立组:

六、Ansible Tower配置与LDAP的认证

查看tower集群:

安装openldap的客户端:

查看ldap中的信息:

配置LDAP:

配置完成以后,可以使用ldap的用户登录Ansible tower。

魏新宇

"大魏分享"运营者、红帽资深解决方案架构师

专注开源云计算、容器及自动化运维在金融行业的推广

拥有红帽RHCE/RHCA、VMware VCP-DCV、VCP-DT、VCP-Network、VCP-Cloud、ITIL V3、Cobit5、C-STAR、AIX、HPUX等相关认证。

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

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

5556
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

6948
来自专栏java 成神之路

使用 NIO 实现 echo 服务器

4717
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2192
来自专栏Golang语言社区

【Golang语言社区】GO1.9 map并发安全测试

var m sync.Map //全局 func maintest() { // 第一个 YongHuomap := make(map[st...

4778
来自专栏张善友的专栏

Miguel de Icaza 细说 Mix 07大会上的Silverlight和DLR

Mono之父Miguel de Icaza 详细报道微软Mix 07大会上的Silverlight和DLR ,上面还谈到了Mono and Silverligh...

2717
来自专栏杨龙飞前端

scrollto 到指定位置

2524
来自专栏陈仁松博客

ASP.NET Core 'Microsoft.Win32.Registry' 错误修复

今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilati...

4868
来自专栏C#

DotNet加密方式解析--非对称加密

    新年新气象,也希望新年可以挣大钱。不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬。(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...)...

4928
来自专栏pangguoming

Spring Boot集成JasperReports生成PDF文档

由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲...

1.2K7

扫码关注云+社区