固定链接 在滴滴云上使用 Ansible 自动化运维实践

在滴滴云上使用 Ansible 自动化运维实践

在滴滴云上使用 Ansible 自动化运维实践

简介

Ansible 是一个配置管理和配置工具,类似于 Chef,Puppet 或 Salt。这是一款很简单也很容易入门的部署工具,它使用 SSH 连接到服务器并运行配置好的任务,服务器上不用安装任何多余的软件,只需要开启 SSH,所有工作都交给 Client 端的 Ansible 负责。

关于 Ansible 的一个好处是,将 bash 脚本转换为可执行任务是非常容易的。

我们可以编写自己的配置程序,但是 Ansible 更加干净,因为它可以自动在执行任务之前获取上下文。Ansible 任务是幂等的,没有大量额外的编码,Ansible 可以一次又一次地安全运行,而 bash 命令这种幂等性。

Ansible 使用“facts”来确保任务的幂等安全运行,它是在运行任务之前收集的系统和环境信息。Ansible 使用这些 facts 来检查状态,看看是否需要改变某些东西以获得所需的结果。这使得 Ansible 可以让服务器一次又一次地运行可复制的任务。

安装方式

源码包安装

安装 Git 客户端:

下载源码包并安装:

安装pip:

安装 Python 依赖库模块:

复制配置文件:

yum 安装

服务器配置

Windows 服务器配置

要使用 Ansible 管理 Windows 服务器,需要在 Windows 服务器和客户端上做一些特殊配置。

客户端的配置步骤如下:

安装 Kerberos 用来连接域账户:

添加hosts inventory文件:

创建 Inventory 环境变量文件:

复制脚本 ConfigureRemotingForAnsible.ps1 在 Windows 客户端执行启动 Windows 系统 WinRM 服务,并设置服务为自动启动:

安装 WinRM 模块依赖的两个模块。解压后用 Python setpu.py install 执行安装测试:

测试 Windows Ansible:

管理 Linux 服务器

Ansible 管理 Linux 服务器可以使用两种方式:

  • 使用 SSH 公钥和通过在配置文件中指定密码。
  • 使用公钥管理 Linux 服务器是默认推荐的方式,只需要将 Ansible 客户端的公钥添加到服务器的 SSH authorized_keys 即可。

这里再主要介绍一下配置密码访问的方式。

定义 Ansible 变量,包含服务器账户密码:

编辑 Inventory 配置文件,添加服务器 host:

测试访问 Linux 服务器:

Ansible 的 Ad-hoc 使用方式

所有的 Ansible Ad-hoc,即用来执行一些一次性的命令,没有复杂的编排工作,不需要写定义一个 PlayBook 在 shell 命令行中即可完成的操作。

一般来说,Ansible 的强大之处在于它的 PlayBook,那么为什么还需要 Ad-hoc 方式呢?

用 Ad-hoc 命令能完成的事情,使用 PlayBook 都能完成。但是,某些场景下,使用 Ad-hoc 一条命令即可搞定问题,那么就无需费事地编写 PlayBook 啦。

Ansible Plabooks使用基础

小结


本文作者:王亮

您的留言将激励我们越做越好