大家好,本文将围绕python 运维开发都需要掌握哪些展开说明,python搭建自动化运维平台是一个很多人都想弄明白的事情,想搞清楚python编写运维脚本需要先了解以下几个事情。
在上课时我们讲解了一套 Devops 理念的工程它的 CMDB 是如何实现的。CMDB 可以把所有的资产做一个收集python画心的源代码。有了资产,就好比一个仓库里面所有的货物已经准备好了,那么接下来该怎么去进行分门别类的管理和维护等操作呢?这个时候就涉及自动化的任务。
本课时我们就来讲解 Devops 工程剩下的部分:自动化任务平台是如何实现的。
这一套自动化任务平台工程里主要用到了 Ansible 模块,我将先为你介绍 Ansible 模块的基本功能,然后再详细介绍 Ansible 模块和 Devops 工程是怎么进行融合的。
Ansible 模块
Ansible 是系统中的一套自动化工具,它可以支持在 Linux 终端进行命令化的执行,同时它也是 Python 里面的一个模块,可以通过 Python 进行模块化的调用。Ansible 主要用来实现系统的管理、自动化的命令等任务。
Ansible 的应用通常有两种方式,第 1 种是 adhoc(命令模式),第 2 种是playbook(剧本模式)。这两种方式存在差异,命令模式主要以模块的方式运行 Ansible 任务,而 playbook 是一个剧本,相当于有一个写好的命令化执行记录文件,playbook 只需要按照这个文件执行要求来作相关任务就可以了。playbook 比 adhoc 的场景更加丰富,而且运维管理更加方便。
在 playbook 的基础上,如果你想要将 Ansible 应用得更加灵活,如有整体的工程化结构管理或者是需要更大的运维自动化场景需求,我们可以通过 roles 方式来做 Ansible 的任务。roles 是基于 playbook 的一套丰富工程化结构使用方式,所以它比一般的 playbook,更适合在工程化场景所使用。
adhoc
讲到了 Ansible,我们先来了解安装 Ansible 必要配置的两个文件,第 1 个是 ansible.cfg,它是一个全局性的配置文件,可以用来配置 Ansible 全局性的一些变量和设置。 第 2 个是 hosts,这个文件主要用来配置 Ansible 的主机资产关系管理信息。通过 Ansible 来做自动化任务需要在 hosts 里面配置它主机相关的资产管理信息,如 IP 、SSH 的连接信息、主机名、主机组分类,等等。
我们刚刚讲到了 adhoc 模式,它在终端执行时是这样的:ansible <host-pattern> [options]。举个例子,这里我用 ansible 命令执行,对 testsever1 这台主机执行任务,-m 表示它执行什么样的模块化的任务; shell 是 Ansible 和 adhoc 里面的一个模块,-a 代表执行 shell 里面的哪个命令及参数;touch /tmp/jesonc.txt 代表它在执行创建新的文件。
playbook