笔记#Ansible ——工作架构和原理
其他
2018-06-04 11:17:01
阅读次数: 2
ansible的工作原理:当执行命令模块时,会先把命令模块翻译成Python格式的脚本存储在当前用户家目录里~/.ansible/tmp文件夹下,然后复制到远程被控制的主机下~/.ansible/tmp目录下。在执行命令。然后被控制的主机会把此主机里的~/.ansible/tmp目录以及Python脚本删除,
用SecureCRT
就说可以实现多屏操作
666
今天学的是Ansible,实现多主机控制,
当然还有其他程序可实现远程控制多主机
*Ansible:基于Python开发,Agentless无代理(不需要远程代理),执行效率适用于中小型应用环境,比如300~500台
目前好多软件都是基于C/S结构的(有服务器端/客户端),一般很多客户端访问一个服务器,但是Linux是一个客户端远程访问多台服务器,
Linux的一个客户端叫:主控端
服务器:被控端
在被控端安装代理程序,主控端通过代理程序访问被控端
无代理:在Linux中默认安装SSH服务,基于ssh服务可以实现远程代理,使用方便,不用安装代理程序,代理程序有时候会更新,
Ansible基本要求是基于key验证,不用每次输入口令
*Saltstack :基于Python开发,需要部署agent(需要代理),执行效率更高,适用于1000+台
*Puppet:基于ruby开发,功能强,配置复杂、重型,适合于大型环境
Fabric:基于Python开发,agebtless不需要代理
Chef:基于ruby开发,国内应用少
Cfengine
func
前三个重要,后面了解
Ansible是模块化的,用什么功能调用什么模块
有三个关键模块
1)Paramiko: 基于ssh开发的,ssh不用远程代理,
2)PyYAML:用来编写剧本的语言
3)Jinja2:模板语言
支持自定义模块:
支持playbook编排任务:就像编角本用于执行定期任务,循环任务
幂等性:一个任务执行1遍和执行n遍效果一样,不因重复执行带来意外情况,执行同一任务第一次成功,后续不会报错,一般用于playbook,脚本调试,执行成功的不会执行,不成功的报错,调试好再执行,
工作原理:
1.需要一个主角清单,知道哪些主机被控制
2.可以通过单一的(模块)命令控制,也可以用playbook控制
playbook也是一个一个模块执行的
3.连接插件,基于ssh协议实现,
*也可以通过公/私 云开发接口实现ansible管理
4.CMDB配置管理数据库通过absible远程管理
通过web界面(通过开发接口开发的界面)通过底层调用ansible的命令远程管理
Ansible重要组成:
ANSIBLE PLAYBOOK:任务剧本,编写ansible任务集的配置文件,顺序执行,通常是JSON格式的YML文件
INVENTORY:管理主机清单
MODULES:执行命令的模块,可以自定义
PLUGINS:模块功能的补充,如连接类插件,循环插件,变量插件等
API:供第三方程序调用的应用程序编程接口
ANSIBLE:组合上面的绿框,ansible命令工具,核心工具
selinux的配置文件/etc/selinux/config
把SELINUX=enforcing
改成SELINUX=permissive
关掉SELinux
安装ansible,用yum
也可以编译安装
用yum安装ansible
先查看一下信息yum info ansible
然后安装
安装后查看信息
1,主机清单
清单配置文件:/etc/ansible/hosts
添加主机清单
输入口令的方式只适用于口令一样的主机,如果连接多台主机,有一台密码不一致,这台主机就不会连接,即使该了密码也连不上,因为本机会记住无法连接的机器,只有把不成功的使用ssh连接一下,连接成,才能用ansible连接
如果想连接快点,把对面主机的/etc/ssh/sshd_config文件的三项改成
这样,连接速度就会快点
实现基于key验证,
主机清单也可以分组,
2.配置文件
把host_key_checking = False前的#去掉,就会忽略缓存的密码,就是没回连接都检查新输入的密码,仅限于密码一样的主机,
希望记录日志就把配置文件改改把log_path=/var/log/ansible.log前的#去掉,在连接一遍就会生成日志文件
ansible的命令
sudo授权用户账号
visudo
%wheel ALL=(ALL) ALL
把这一行前#去掉
把用户添加到wheel组
usermod -aG wheel liang
把sudoers变成带颜色的
敲echo export EDITOR=vim >> /etc/profile.d/env.sh
exit
END
转载自blog.csdn.net/lhl98765432/article/details/80501837