安装和使用Ansible到Ubuntu 16.04

Ansible是一个免费且开源的配置管理系统,可以实现应用程序的部署和管理。

本博客是从英文版翻译而来的。原始版本请点击此链接查看。部分内容采用机器翻译。如果有任何翻译错误,请不吝指正。

阿里巴巴云计算科技共享的作者是Hitesh Jethva。

Ansible是一种免费的开源配置管理系统,可以自动部署和集中管理应用程序。通过使用Ansible,可以轻松地从一个中心位置管理和控制大量的服务器。由于Ansible的启动开销要小得多,因此它是Chef或Puppet的出色替代解决方案。Ansible使用SSH通道从远程系统获取信息,因此不需要在客户端计算机上安装额外的软件。

本教程将逐步介绍在阿里巴巴云ECS Ubuntu 16.04服务器上安装和使用Ansible的方法。

前提

    • Ubuntu 16.04をインストールしたAlibaba Cloud ECSインスタンスを2台使用しています。

 

    • サーバーノードに静的IPアドレス192.168.0.103が構成されています。

 

    • クライアントノードには静的IPアドレス192.168.0.104が設定されています。

 

    各ノードにルートパスワードが設定されています。

启动阿里巴巴云ECS实例

首先,登录到https://ecs.console.aliyun.com/?spm=a3c0i.o25424en.a3.13.388d499ep38szx的阿里云ECS控制台。您将被重定向到主仪表板页面。请选择合适的地域,然后进入ECS实例。本教程中,我们将在新加坡地区创建ECS实例。

image.png

如果您还没有创建实例,请检查本教程或按照此快速入门指南的步骤操作。最好在同一区域内运行两个ECS实例。

请注意,我是使用SSH密钥对来配置ECS实例作为我的凭据。这样,您可以使用SSH连接到实例上。

安装Ansible

在Ubuntu 16.04的默认仓库中,无法使用Ansible。所以,您需要在服务器节点上添加Ansible的个人仓库。可以使用以下命令添加仓库。

apt-add-repository ppa:ansible/ansible 可以被用以下方式在中文中表达: `apt-add-repository ppa:ansible/ansible`

以下应该显示类似的输出。

Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy. Avoid writing scripts or custom code to deploy and update your applications— automate in a language that approaches plain English, using SSH, with no agents to install on remote systems.

http://ansible.com/
 More info: https://launchpad.net/~ansible/+archive/ubuntu/ansible
Press [ENTER] to continue or ctrl-c to cancel adding it

gpg: keyring `/tmp/tmpiylu9n1t/secring.gpg' created
gpg: keyring `/tmp/tmpiylu9n1t/pubring.gpg' created
gpg: requesting key 7BB9C367 from hkp server keyserver.ubuntu.com
gpg: /tmp/tmpiylu9n1t/trustdb.gpg: trustdb created
gpg: key 7BB9C367: public key "Launchpad PPA for Ansible, Inc." imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
OK

在添加Ansible存储库后,需要更新系统以使存储库被添加到系统中。请执行以下命令来更新系统。

请原生地用中文解释以下内容,只需要一个选项:
apt-get update -y

更新软件包,并自动确认所有更改。

当存储库有更新时,请使用以下命令安装Ansible。

使用apt-get -y命令安装Ansible。

Ansible主机的配置

Ansible 使用 hosts 文件来跟踪所有的服务器节点和客户端节点。因此,在与其他节点进行通信之前,需要先配置这个文件。

首先,使用以下命令打开文件。

打开 /etc/ansible/hosts 文件。

应该显示所有的注释行。在这里,您需要添加所有要管理的客户端节点,如下所示。

[servers]
client-node ansible_ssh_host=192.168.0.104

当保存并退出后,将关闭文件。

设置用于远程主机的SSH密钥。

ansible使用SSH与其他节点进行通信。因此,在服务器节点上生成SSH密钥,并将该SSH密钥复制到客户端节点是必要的。

在服务器节点上,执行以下命令生成SSH密钥。

使用本机生成RSA密钥对,密钥长度为4096的命令是:ssh-keygen -t rsa -b 4096

应该显示如下输出。

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:3FvzXmI3EhW7idSZy+ITzW7UrefZP/R5AYx2VBu3ytU root@server-node
The key's randomart image is:
+---[RSA 4096]----+
|              .+.|
|             .. @|
|            +. XE|
|       . . oo+O *|
|        S o +B.Oo|
|           o.o*+ |
|          .  +*+B|
|             o+O*|
|              ..B|
+----[SHA256]-----+

接下来,将使用下述命令将生成的密钥复制到客户端节点中。

ssh-copy-id root@192.168.0.104 可以转述为:使用 ssh-copy-id 命令将公钥复制到 root@192.168.0.104。

接下来,在客户端节点上执行SSH密钥认证,以确认是否成功进行了认证。

用中文翻译以下内容:ssh root@192.168.0.104

使用SSH登录到192.168.0.104的root账户。

如果正确设置,您将不会被要求输入密码。

用中文本地化的方式改写 “Ansible のテスト” :

Ansible 测试

如果所有设置都正确,那么我们就可以开始进行Ansible的测试了。

首先,执行以下命令,在hosts文件中指定的所有客户节点上执行ping操作。

使用Ansible的ping模块对所有主机进行ping操作。

如果客户端节点已经启动,应该会显示以下类似的输出。

client-node | SUCCESS => {
    "changed": false, 
    "failed": false, 
    "ping": "pong"
}

注意:假如在 hosts 文件中指定了多个主机,上述命令将表示对所有主机执行 ping 命令。

此外,还可以使用以下命令对单个主机或主机组执行 ping 命令。

ansible -m ping client-node
ansible -m ping servers

如果您想了解客户端节点的内存使用量,请执行以下命令。

使用 Ansible 的 shell 模块在客户端节点上执行命令 “free -m”。

应该显示以下输出。

client-node | SUCCESS | rc=0 >>
             total       used       free     shared    buffers     cached
Mem:          3835       3185        649        177         77        929
-/+ buffers/cache:       2179       1656
Swap:        10793          0      10793

要确认客户节点的分区大小,请执行以下命令。

ansible -m shell -a ‘df -h’ client-node

(使用ansible)对client-node执行shell命令df -h。

我会付出努力。

client-node | SUCCESS | rc=0 >>
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda4        92G   27G   61G  31% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            1.9G  4.0K  1.9G   1% /dev
tmpfs           384M  1.2M  383M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            1.9G  1.9M  1.9G   1% /run/shm
none            100M   44K  100M   1% /run/user
/dev/sda5       353G   75G  261G  23% /Data

總結起來

恭喜!成功在阿里巴巴云ECS服务器上配置了Ansible。现在,通过从一个中央位置执行单个命令,可以轻松管理多个服务器。

阿里巴巴云拥有两个数据中心,在全球拥有超过60个可用区域,是2019年亚太地区排名第一(根据Gartner数据)的云基础设施提供商。
有关阿里巴巴云的详细信息,请点击这里。
阿里巴巴云日本官方网页。

广告
将在 10 秒后关闭
bannerAds