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 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

老树新芽:Windump与大数据工具结合做流量统计分析

1.背景与需求介绍 抓取流量最流行的工具就是Wireshark,在Windows上Wireshark的GUI界面很酷,但对于在linux和mac用惯了tcpdu...

3696
来自专栏乐沙弥的世界

RMAN 配置保留策略

      RMAN保留策略关乎数据的完整性,因此事关重大,由用户定义的、基于用户数据恢复所能承受的容忍度来设置。也就是说根据恢复的需要,用户需要保留几天的数据...

643
来自专栏1001482的专栏

大数据实时处理利器 storm 的 ui 解剖

众所周知,storm已经是业界主流的流时处理框架,Storm被广泛应用于实时分析,在线机器学习,持续计算、分布式远程调用等领域。

1.3K1
来自专栏大数据和云计算技术

HBase 的MOB压缩分区策略介绍

HBase应用场景非常广泛;社区前面有一系列文章。大家可以到社区看看看;张少华同学本篇主要讲HBase的MOB压缩分区策略介绍,非常赞!大力推荐!

971
来自专栏散尽浮华

Docker集群管理工具-Kubernetes部署记录

之前介绍了Mesos+Marathon+Zookeeper管理Docker集群平台的部署 ,本篇则说下利用Kubernetes管理Docker集群环境的部署。 ...

9496
来自专栏大数据技术学习

大数据-Hadoop小文件问题解决方案

HDFS中小文件是指文件size小于HDFS上block(dfs block size)大小的文件。大量的小文件会给Hadoop的扩展性和性能带来严重的影响。

1637
来自专栏云知识学习

Kubernetes 的服务发现与负载均衡(Service)

Service通常会和Deployment结合在一起使用,首先通过Deployment部署应用程序,然后再使用 Service 为应用程序提供服务发现、负载均衡...

1022
来自专栏java一日一条

Web Service监控教程:如何识别不良部署

你是否曾经往服务器发布更新的时候想,“一切正常,如期运行!”然后你却必须一直处理用户的抱怨:为什么你们的系统总是报错?

612
来自专栏杨建荣的学习笔记

关于数据库无法登录的问题反思(r6笔记第49天)

昨天接到了同事的一个电话,说有一个数据库无法访问了,希望能够让我来看看,赶紧连过去,发现错误还是一个看似很简单的ora错误。 $ sqlplus / as sy...

2625
来自专栏杨建荣的学习笔记

Datapump数据迁移前的准备工作(二)(r9笔记第59天)

之前写了一篇文章分析了Datapump迁移数据的一些准备总结,反响还不错。Datapump数据迁移前的准备工作,最近碰到一个场景,根据评估还是使用Datapum...

2674

扫码关注云+社区