ansible 是一个轻量级的分布式模块化的自动化运维工具
ansible特性
学习曲线不陡峭 ------>简单
不需要代理,不需要客户端,没有服务器端-没有服务器端----->轻量
不基于pki工作基于模块工作 因为他不是基于ssl
支持YAML定义剧本 -----> 可以定义自己的任务,更加多样性
默认基于ssh ----->使用密钥认证,简单,方便
很强的多层解决方案
核心:ansible
核心模块:Core Modules,这些都是ansible自带的模块
扩展模块:Custom Modules,如果核心模块不足以完成某种功能,可以添加扩展模块
插件:Plugins:完成模块功能的补充
剧本:Playbooks,把需要完成的多个任务定义在剧本中
连接插件:Connectior Plugins;ansible基于连接插件连接到各个主机上,虽然ansible是使用ssh链接到个主机的,但是他还支持其他的连接方法,所以需要有连接插件
主机群:Host Inventory;ansible在管理多台主机时,只想对其中的一部分执行某些操作
如下图所示:
举个简单的例子 ansible[刘康1] -i test[刘康2] -m setup[刘康3]
上面这个命令基本涵盖了上面的的组件类型,
注意:做这个的前提是要做ssh互信,原因 看上面
安装:
要是6.5的系统的话,还得进行安装额外的yum源,这个可以到ansible的官网上去看,他会给你指条明路,在这里就不在演示
如果安装好之后呢,就可以使用yum来安装,而且官网也推荐。
yum -y install ansible (这个一般就吧所需的东西安装好了,也可以自己来安一遍,问题
可能就出现在jinjia2上,这个是python的一个模块。yum -y install python-jinja2 PyYAML python-paramiko python-babel python-crypto)
这些是主要的配置文件,了解一下
其中的ansible是在命令行中执行简单的命令。
ansible-playbook :是在执行 剧本(plays)的时候用到的,也是我们以后会经常用到的命令
ansible-doc: 因为ansible是模块化的工具,而这个命令可以列出ansible所有的工具列表,
absible-pull: 因为ansible他可以无服务端,无客户端,也就是说我可以在一台机器上去执行
playbook ,也可以去从其他地方拉取配置。
ansible-galaxy: ansible-galaxy 指令用于方便的从https://galaxy.ansible.com/ 站点下载第三方扩展模块,我们可以形象的理解其类似于centos下的yum、python下的pip或easy_install 。
ansible-vault: ansible-vault主要应用于配置文件中含有敏感信息,又不希望他能被人看到,vault可以帮你加密/解密这个配置文件,属高级用法。主要对于playbooks里比如涉及到配置密码或其他变量时,可以通过该指令加密,这样我们通过cat看到的会是一个密码串类的文件,编辑的时候需要输入事先设定的密码才能打开。这种playbook文件在执行时,需要加上 –ask-vault-pass参数,同样需要输入密码后才能正常执行。具体该部分可以参查官方博客。
注:上面七个指令,用的最多的只有两个ansible 和ansible-playbook ,这两个是我们要掌握,其他五个属于拓展或高级部分
看看ansible的工作原理:底下的东西和上面的图差不多,只要记住ansible关键的即可,下图不在解释