ansible_Ansible作为云中DevOps的网关

ansible

我有一个自白—尽管我的职称中包含“云”一词,但有一段时间我曾经认为这全是流行语,炒作和虚张声势,没有实质内容。 最终, Ansible成为了我通往云的门户。 在本文中,我将对Ansible的DevOps进行介绍。

在Ansible出现之前,我是一名系统管理员,愉快地部署了裸机服务器和虚拟机,每个新项目都需要自己定制的基础架构。 当然,最初的操作系统的部署是使用Kickstart自动化的,但是随后又花了很多手动步骤来为应用程序所有者准备好服务器。 这是一个缓慢的过程,但是我知道当我完成该过程时,我正在交付一个经过精调的系统,该系统将像冠军般运行多年。

我为所有内容编写了bash脚本,其中有些甚至进行了正确的错误检查。 我对自己所知道的事和所做的事充满信心,并且没有理由改变。 我很舒服 然后,我开始越来越多地从我们的各种供应商那里听到这个词:云。 是什么意思? 要求十几个人定义它,您会得到十二个不同的答案。 在没有具体概念的情况下,我的系统管理员团队将其归类为废话。

云端网关

然后我开始使用Ansible。 这种连接可能不会立即显现出来,但可以说是通向云的门户。 当我第一次开始使用Ansible时,对我来说,它是一个赞美的bash + SSH包装器,但效果很好。 该剧本语法易于理解,编写起来很有趣。 随着时间的流逝,我将所有这些顽固的旧bash脚本翻译成优雅的,可检查错误的,幂等的Ansible剧本。

像这样的垃圾:



   
   
#!/bin/bash

user_exists=$(grep -c davidc /etc/passwd)
if [[ $user_exists -eq 0 ]]; then
useradd -m -s /bin/bash davidc
echo PASSWORD | passwd davidc --stdin
fi

成为干净的单线客:



   
   
- user: name=davidc shell=/bin/bash password=$6$
rounds=656000$47cizb4beOY.uB9c$w
TlFCrP62g/M0.UNl0IHLOOw.fuWvJwCQLLS
8UeruI1T/tbAdKd8Wzhsy7SandrOtROwBn7F
BZHTaZcZciXMd

每次部署新服务器时,我不再需要SCP(安全副本)一堆脚本。 从一个中心位置,我可以突然管理和自动化数千台服务器。 我扩大了! 而且,每次要求系统管理员安装“又一个第三方代理”时,都不会出现典型的抽搐现象。

上面是使用用户模块的示例。 Ansible有大量的模块。 我意识到我只是通过使用Ansible作为bash替代品来划伤表面。 当我深入研究Ansible时,我发现了一些模块可以在libvirt ,Kubernetes中的容器和OpenStack中的Nova实例上部署虚拟机(VM)。 后两个特别激起了我的兴趣。 Ansible使开始将我的数据中心视为代码变得异常容易,并提供了一个友好的界面来协调诸如容器和云实例之类的新兴技术。 所有这些都是可能的,因为这些平台通过可公开访问的API端点公开了其服务。

那是我的曙光:云实际上并没有完全消失。 当您深入了解它时,云只是一堆服务,它们联合在一起提供一个工作平台。 我将广为人知和喜爱的Unix哲学带到了这里: 编写一件事做得很好的程序 。 呼叫网络服务以提供软件定义的端口,再呼叫计算服务以获取容器或虚拟机,从Git中提取一些代码,然后弹出正在运行的应用程序。 “云”和“ DevOps”现已揭密。 微服务? 将cat(5)包裹在API中,您已经编写了第一个微服务。 通过Ansible,我了解了一切。

建立个人DevOps测试实验室

我一直认为,要成为一名出色的系统管理员,以扩大您的知识并保持最新状态,一个人应该运行某种形式的个人网络。 该网络应该有一个目的,以使管理员保持兴趣。 就我而言,我是一个大唱片收藏家。 从大学开始,我就用自己的自制记录数据库运行某种形式的LAMP堆栈。 该项目始于PHP和MySQL。 在进行重建的过程中,设置新虚拟机,(希望)获取最新的数据库和代码备份是一项耗时整天的工作,并且花了我很大的精力。 通过我从Ansible中学到的知识,我决定重建整个东西。 我会考虑DevOps来解决问题,因此当应用程序所有者开始要求它时,我知道我在说什么。

在这个过程中,我学到了很多东西。 我不小心偶然发现了我对DevOps的三大Struts的看法:

  • 源代码控制
  • 编排
  • 该平台

如果您可以使这三件事协同工作,那么您将成为摇滚明星。 开源的好处在于这些Struts有许多不同的实现,您可以自由选择最适合您的堆栈。

对于我的实验,我选择了Git,Ansible和Kubernetes。 在一个存储库中,我的应用程序代码与我的基础结构代码一起存在,而Ansible充当将其保持在一起的粘合剂。 那里有一个Docker文件,以及我的Kubernetes环境的所有配置文件(卷,吊舱,路线等)。 通过Ansible剧本,将构建应用程序的容器映像并将其推送到注册表。 其他Ansible任务负责将Pod部署和支持基础架构到Kubernetes集群上。

当对仓库进行Git提交时,Git提交后钩子触发Ansible播放,以利用Kubernetes中的ReplicationController对象。 剧本拆解了现有的应用程序容器,迫使使用最新代码重建容器。 一流的持续集成/持续部署平台! 它可能不适合企业使用,但是对于实验室和了解所有这些新技术非常有用。

而且我还没有完成。 现在,我将学习有关Jenkins和自动化测试的所有知识。 Ansible也继续发展。 Ansible-container模块是最近宣布的,我渴望看到它如何改善我的工作流程。

因此,对于所有对此持怀疑态度的系统管理员,他们认为“云”不过是流行语和炒作而已,我鼓励您亲自尝试一下。 尝试使用Ansible,并在从单个命令行部署第一个完整堆栈时,享受那一刻的满足感。

David Critch将于8月23日在多伦多举行的ContainerCon演讲中与Ansible和Kubernetes进一步探讨DevOps

翻译自: https://opensource.com/life/16/8/cloud-ansible-gateway

ansible

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值