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

相关文章

来自专栏安智客

TrustZone的硬件框架和安全扩展

对外部资源和内存资源的硬件隔离就是trustzone的核心。这些硬件隔离包括:中断隔离,片上RAM和ROM的隔离,片外RAM和ROM的隔离,外围设备的硬件隔离,...

1583
来自专栏游戏杂谈

使用hta操作nginx停止、重启

新上线的webgame需要做一个官网,做好了并上线了(切割、程序、后台,后台使用是java版本的jeecms),但仅仅是自己家的官网做好了,现在上面的想法是需要...

1401
来自专栏Rindew的iOS技术分享

解决iOS 10 Info.plist文件缺少key崩溃的正确姿势

2014
来自专栏王清培的专栏

RabbitMQ 可靠投递

标签: RabbitMQ shovel-plugin ConfirmCallback RabbitMQ消息投递

1220
来自专栏分布式系统和大数据处理

Kafka 分布式消息系统

本来打算给这篇文章起名叫“搭建Kafka消息队列集群(基础概念篇)”,然而,和RabbitMQ不同,Kafka并没有实现消息队列的协议(例如AMQP,Advan...

2314
来自专栏DevOps时代的专栏

15个私有云上的 DevOps 开源工具

在可维护性,可靠性,效率和安全性方面,DevOps 为私有云在改进操作流程方面发挥着重要的作用。私有云是一个由许多硬件和软件组件组成的复杂系统。 对于任何支持的...

5095
来自专栏应兆康的专栏

利用谷歌开源的图片算法 Guetzli 优化你的图片

2017年3月16日谷歌新开源了一个图片压缩优化算法 Guetzli,这是一种 JPEG 的编码器,比目前其它压缩图片的方法大小大约减少了35%。使用后质量不但...

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

需要了解的pssh(r11笔记第28天)

昨天的一篇文章,关于ssh命令的几个使用小技巧(r11笔记第27天),也收到了不少朋友的反馈,其中有个朋友提议说还是用pssh吧,我想想也是。 对...

3376
来自专栏沃趣科技

ASM 翻译系列第十四弹:ASM Internal Rebalancing act

原作者:Bane Radulovic 译者: 吴 栋 审核: 魏兴华 DBGeeK社群联合出品 Rebalancing act 在ASM中,每...

3665
来自专栏IT技术精选文摘

Kafka剖析系列之背景及架构介绍

Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloud...

2135

扫码关注云+社区