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服务的部署与使用的主要内容,如果未能解决你的问题,请参考以下文章

使用 Ansible 部署无服务(serverless)应用

自动化运维之Ansible服务部署

项目部署与ansible自动化部署

ansible基础-安装与配置

01Ansible简介与部署

Ansible-playbook自动部署MySQL主从