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。