Ansible入门 第一部分 安装-命令执行

关于这篇文章

这篇文章是我几乎对Ansible一无所知的情况下,通过阅读官方文档并安装和操作Ansible的记录。

我使用的电脑操作系统是 macOS Sierra 10.12.6。

Ansible是什么?

中国語のネイティブパラフレーズの例:
所谓的构建管理工具,通过编写配置文件,可以自动为机器安装软件并进行设置。可以说是一种用于自动化服务器设置的软件。

还有很多其他特点,但我会慢慢学习它们。

按照公式文件的内容尝试使用Ansible。

我立即按照文件的指示尝试使用Ansible。

安装

因为环境是Mac,所以我们可以参考Latest Releases on Mac OSX进行安装。文章中提到要用pip进行安装,因此需要安装python。如果你没有安装python,需要先去安装它。关于python的安装,可以查看其他的文章。通过搜索,我找到了这篇排在前面的文章。

如果对以下命令产生了兴趣的话,请参考官方文档,因为几乎都是按照官方文档的示例命令编写的。

首先安装pip。

$ sudo easy_install pip

然后安装Ansible。

$ sudo pip install ansible

如果想要指定版本,似乎需要按照以下方式进行。(*仅供参考)

$ sudo pip install ansible==1.9.1

當你想使用開發中的最新版本時,使用這個。

$ pip install git+https://github.com/ansible/ansible.git@devel

据说使用OS X Mavericks的用户需要采取以下步骤。

$ sudo CFLAGS=-Qunused-arguments CPPFLAGS=-Qunused-arguments pip install ansible

启动Ansible

在开始运行Ansible之前,强调重要的是要理解Ansible如何与远程机器进行交互,并做了备忘录。(*参考官方文档)

Ansible似乎使用了SSH的ControlPersist功能。(这篇文章对于ControlPersist的解释很清楚)

然而,由于控制机的OpenSSH版本过旧,不支持ControlPersist功能,因此在这种情况下,Ansible似乎会使用名为’paramiko’的基于Python的OpenSSH实现。

如果你对远程连接还感兴趣的话,这里还有其他相关内容,请阅读相应部分。

使用Ansible执行远程主机的命令。

让我们实际运行Ansible并尝试一下。

首先,本地机器的SSH公钥需要写入远程机器的authorized_keys文件中。

我认为在这一区域使用Vagrant和Ansible来创建操作环境会很方便。这次我选择了来自Vagrantbox.es的CentOS 7.2 x64(最小化安装,Puppet 4.2.3,Guest Additions 4.3.30)。还有其他的选择,比如Discover Vagrant Boxes,我觉得你可以尝试一下。

假设您已经使用Vagrant环境,但若您从未使用过Vagrant,请阅读本文或查阅官方文档,这对您会有所帮助。

在合适的工作目录中使用vagrant init命令创建Vagrantfile。

# config.vm.network "private_network", ip: "192.168.33.10"

我认为这里应该有一行代码,所以我将取消这行的注释。

由于在这里突然执行Ansible将会失败,所以

$ vagrant ssh-config --host 192.168.33.10 >> ~/.ssh/config

通过运行此命令,您可以使用$ ssh vagrant@192.168.33.10进行登录。

接下来,创建一个名为/etc/ansible/hosts的文件夹,并写入以下一行内容。

vagrant@192.168.33.10

这个文件被称为清单文件,意思是管理配置对象的列表。

编辑文件后, 一旦完成编辑 ,

$ ansible all -m ping

做。如果结果如下,就算成功!

vagrant@192.168.33.10 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

执行实际指令。

$ ansible all -a "/bin/echo hello"
vagrant@192.168.33.10 | SUCCESS | rc=0 >>
hello

你好被输出了。

似乎也可以为本地设备执行相同的操作。

$ ansible localhost -a 'echo hello'
localhost | SUCCESS | rc=0 >>
hello

通过使用Ansible,我们可以让远程计算机执行命令。

续上2。

广告
将在 10 秒后关闭
bannerAds