01.批量管理服务知识介绍

  a.ansible是一个基于Python开发的自动化运维工具

  b.ansible是一个基于ssh协议实现远程管理的工具

  c.ansible软件可以实现多种批量管理操作(批量系统配置,批量软件部署,批量文件拷贝,批量运行命令)

  salstack puppet

02.批量管理服务端特征介绍

  a.ansible软件服务端(管理端):不需要启动任何任务 默认服务端不需要任何配置

  b.ansible软件客户端(受控制):没有客户端软件安装

03.ansible软件安装部署

  a.ansible软件自动化环境架构规划

    管理主机1台:

    被管理主机3台:

  b.ansible软件自动化部署条件

    建议基于ssh秘钥方式建立远程连接

    a.ssh秘钥对创建(管理主机)

      ssh-keygen -t dsa(rsa)

      影响免交互创建秘钥对创建

      1).需要指定秘钥存放路径

        -f /root/.ssh/id_dsa

      2).需要进行私钥文件密码设定

         -N/-P

         -N " "/-P " "

      免交互创建秘钥对的方法

      ssh-keygen -t dsa -f /root/.ssh/id_dsa -N ""

  ansible批量管理工具_ansible

 

 

 

    b.分发公钥文件(管理主机进行分发)

      ssh-copy-id -i(只有这一个参数)  /root/.ssh/id_dsa_pub user IP

      影响免交互批量分发秘钥因素

      1).需要有确认连接过程,需要输入yes\no

        -o StrictHostKeyChecking=no

      2).需要解决密码问题

        sshpass -p010510 ssh-copy-id -i /root/.ssh/id_dsa.pub 172.16.1.31

      3).免交互批量分发公钥脚本

        #!/bin/bash

        rm -rf /root/.ssh/id_dsa*

        ssh-keygen -t dsa -f /root/.ssh/id_das -N ""

        for ip in 31 41 7

        do

        sshpass -p010510 ssh-copy-id -i /root/.ssh/id_dsa.pub -o StrictHostKeyChecking=no 172.16.1.31

        done

    c.检测是否可以进行基于秘钥远程管理

      ssh user@IP

     免交互批量验证脚本

      #!/bin/bash
      if [ $# -ne 1 ]
      then
      echo "pls inpet one ogrs"
      exit 1
      fi

      for ip in 31 41 7
      do
      echo ====== info 172.16.1.$ip ======
      ssh 172.16.1.$ip $1
      echo ""
      done

    补充说明:ssh-copy-id命令分发公钥原理

    

    基于ssh口令方式建立远程连接

    ssh "$@" "exec sh -c 'cd ; umask 077 ; mkdir -p .ssh && cat >> .ssh/authorized_keys || exit 1 ; if type restorecon                                   >/dev/null 2>&1 ; then restorecon -F .ssh .ssh/authorized_keys ; fi'"

    1.临时设置一个umask值,设置的值为077

    2.利用脚本创建.ssh目录 mkdir -p .ssh

    3.将本地公钥中的信息重定向到远程主机的.ssh/authorized_keys文件中,并授权此文件为600

  c.ansible软件下载yum

  d.ansible软件受控主机添加配置

04.ansible软件应用过程