Ansible入门初试
本文最后更新于:August 23, 2019 pm
Ansible的基本概念和入门安装配置。
1、Intro
Ansible是一款使用python开发的自动化运维工具,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是Ansible所运行的模块,Ansible只是提供一种框架。
Ansible默认是通过SSH协议来远程连接集群中的各台设备并进行相关操作,因此我们只需要在一台设备上安装Ansible即可,安装、升级和卸载都只需要对一台设备进行操作,其余的设备上面并不会有软件的安装残留之类的问题。同时,由于是使用的SSH连接,Ansible也不需要在系统后台维持相关进程一直运行。
2、Version
因为Ansible的只需要在一台机器上安装,所以它的升级和卸载都十分简单,因此很多人会选择安装最新版的Ansible甚至是github上的开发版。Ansible的更新周期非常短,只有四个月,因此即使是出现了BUG,也能很快的在下一个版本中解决。
3、Install
在centos7上安装最新版本的ansible
Currently Ansible can be run from any machine with Python 2 (version 2.7) or Python 3 (versions 3.5 and higher) installed. Windows isn’t supported for the control node.
This includes Red Hat, Debian, CentOS, macOS, any of the BSDs, and so on.
从官网上我们可以看到,截止目前(2019.8.23),安装ansible需要python2.7以上或者是python3.5以上版本。
这里为了方便管理,我选择了epel源里面的python3.6版本进行安装,需要安装最新的python3可以参考这里。
1 |
|
1 |
|
这里我们可以看到最新版是2.8.4
,官网上显示的最新版也是2.8,这就没问题了。
然后我们直接安装
1 |
|
4、Conf
存放目录
ansible的配置文件存放在/etc/ansible
目录下:
图中的ansible.cfg
文件就是对应的配置文件,默认情况下,里面的所有配置都是注释掉的,也就是说里面是没有任何默认配置的。
读取顺序
ansible读取配置文件的先后顺序如下:
ANSIBLE_CONFIG
(environment variable if set)ansible.cfg
(in the current directory)~/.ansible.cfg
(in the home directory)/etc/ansible/ansible.cfg
ansible会根据上述顺序读取配置文件,并且使用第一个找到的配置文件并忽略剩余的配置文件。
ansible.cfg
配置文件是ini配置文件,因此可以使用#
和;
作为注释,但是如果需要在已经写了配置的同一行后添加注释,则只能使用;
1
2
# some basic default values...
inventory = /etc/ansible/hosts ; This points to the file that lists your hosts
ansible.cfg
这里为了方便我们配合git来进行版本控制,我们在github上面创建一个repo,然后clone到本地,接着把配置文件和之后会使用到的playbook都放入到这个文件夹内。
具体的git使用方法比较简单,我们不在这里赘述。
ansible.cfg
文件的配置比较简单:
1 |
|
hosts
文件中我们可以添加需要控制的主机的IP或者是hostname
1 |
|
这里因为我的被控制主机的IP地址是连续的,因此我直接使用[]
来表示,这里的k8s
是这一堆被控制主机的组名,一个IP可以加入多个组,也可以一个组都不加入。
5、Test
接下来我们执行几条命令来测试一下
先执行一下ping模块看看能否连通
1 |
|
这里可以看到是没有问题的(结果太长没有全部截图出来)
1 |
|
可以看到这里已经是顺利执行了。