安装和使用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实例。

如果您还没有创建实例,请检查本教程或按照此快速入门指南的步骤操作。最好在同一区域内运行两个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数据)的云基础设施提供商。
有关阿里巴巴云的详细信息,请点击这里。
阿里巴巴云日本官方网页。