ansible服务的部署与使用
Posted cpw6
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ansible服务的部署与使用相关的知识,希望对你有一定的参考价值。
简介:
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:
(1)、连接插件connection plugins:负责和被监控端实现通信;
(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
(3)、各种模块核心模块、command模块、自定义模块;
(4)、借助于插件完成记录日志邮件等功能;
(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。
部署:
1、部署ssh key
#创建秘钥 ssh-keygen -t dsa #分发公钥 ssh-copy-id -i /root/.ssh/id_dsa.pub -p 22 [email protected]172.20.10.3 #秘钥登录测试 ssh [email protected]172.20.10.3 "hostname -i"
#免交互创建秘钥【用于脚本创建】 ssh-keygen -t dsa -f ~/.ssh/id_rsa -N "" -q #-t指定秘钥类型 -f指定秘钥文件保存的路径 -N免交互方式指定密码信息 -q不输出信息,减少信息输出
ssh服务分发公钥执行过程
①. 管理服务器创建私钥和公钥(密钥对)
②. 将公钥文件远程传送复制到被管理服务器相应用户~/.ssh/id_dsa.pub下,并修改.ssh目录权限为700
③. 修改公钥文件文件名称为authorized_keys,授权权限为600
④. 利用ssh服务配置文件的配置参数,进行识别公钥文件authorized_keys
⑤. 进而实现基于密钥远程登录服务器(免密码登录/非交互方式登录)
解决分发公钥时需要的交互问题
sshpass -p123456 ssh-copy-id -i ~/.ssh/id_dsa.pub [email protected]172.20.10.5 -o StrictHostKeyChecking=no
#sshpass用于非交互SSH的密码验证,一般用在sh脚本中,无须再次输入密码【sshpass可通过yum或编译安装】
#-p 参数指定明文密码【密码与-p之间不能有空格】
以上是关于ansible服务的部署与使用的主要内容,如果未能解决你的问题,请参考以下文章