笔记#Ansible ——工作架构和原理

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