**iaas 基础架构即服务 (买的虚拟机,模拟硬件环境
saas 软件即服务(所有操作都做好了,直接拿来用就可以,钉钉
paas 平台即架构 **
google的浏览器有应用市场,可以直接运行office
office online
想在两个虚拟机上指向同一个命令,有一个比较土的方法
发布命令到所有窗口
如果有一百台机器就需要打开100个窗口,而且每台机器命令可能有细微差别,土办法就不合适
ansible开发者是看安德的游戏,一光年远程操控,所以ansible做出来就是为了远程控制方便的,用python
ansible和saltstack是有点区别
ansible一般不用配置代理(policy,
一般用的软件我们是用c/s
一个系统控制多台主机,就叫c/s不合适,应该叫主控端,被控端
怎么让被控端被控制 ,一种是装代理,相当于间谍
一种是无代理,基于ssh服务(一般都带有ssh服务
基于key的验证,是实现ansible的基本要求
saltstack是基本基于代理的,有专门的代理程序,适合更大的环境,性能好一点
ansible特性
PAM也是模块化
每个模块等于linux一个命令,也有不同的参数
ansible基于ssh,无代理的远程控制
shell expect awk sed都是语言
幂等性:一个任务指向一遍和执行N遍效果是一样的,不会因为重复执行带来意外情况
(创建一个账号,如果第二次还创建,这个账号如果存在,就不会 去执行了)
角色就等于多个playbook的集合
ansible工作架构
ansible是主控端,
其他的是被控端
ansible要知道哪些主机是被控制的,有一个清单文件,记录哪些主机是被控制的
connection plugins链接插件
在公有云和私有云的也可以实现ansible的管理
cmdb配置管理数据库,管理系统
ansible主要有
inventory主机清单
api开发接口(支持二次开发,可以开发程序调用接口来进行管理)
modules模块
plugins插件
inventory清单
Ad-Hoc通过单条命令来实现管理方式
ansible是可以管理windows的,但是是基于linux平台开发的,不支持在windows里装ansible
如何配置ansible,被红帽1亿美金收购 了,nginx有社区版和商业版
可以用github把软件下载下来
也可以用pip下载,pip是python包的管理器
主要实现yum
三个不同的地址,作为被控端
**配置系统,设置任务执行的顺序,部署省事,不需要安装其他的软件,代理
**
jinjia2模版语言
主配置文件一般不动
主机清单,要把管理的主机放到这个文件,否则不知道需要管理哪台主机
对应的命令,使用软链接来指向的,带来的好处就是,升级方便,修改一个软链接就可以 了
是配置ansible的首要任务
ansble对应的单个模块命令
要控制主机必须要加到清单里
ansible的ping命令不是ping,是走 ssh协议
不可到达,因为凭什么对方主机收到消息就要回应你,这就太不安全,所以一般是基于key验证,现在
输入-k,先进行用户名密码验证
ssh服务有点慢就可以修改配置文件
成功
但是管理的并不仅仅是一台主机
如果有的主机密码不同,ansible只会问一次密码,就会用这个密码去访问所有主机
而且次序也不是你希望的次序,所以输入口令的方式也只适合所以主机口令都一样的情况下
所以一般基于key验证
上次输入密码失败就会造成不信任
all代表主机清单里的所有主机
也可以分组
还可以这么写,写名字就需要dns解析
默认基于key验证,-k是密码
ssh-keygen 生成私钥对
ssh-copy-id 把公钥复制过去
要把ansible控制的主机拷贝到对应所有的主机上