ansible批量管理工具

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批量管理工具/p>

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

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

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

      1).需要有确认连接过程,需要输入yesno

        -o StrictHostKeyChecking=no

      2).需要解决密码问题

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

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

     

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

      ssh user@IP

     免交互批量验证脚本

      

    补充说明: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

   ansibles受控主机软件安装(可选)

   yum install libeslinux-python -y(selinux关闭的话不需要安装)

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

   vim /etc/ansible/hosts

04.ansible软件应用过程

  ansible软件模块

  ansible-doc -l|wc -l
  3387

  ansible 管理主机信息或者主机组信息

  ansible 管理主机信息或者主机信息  -m 模块名称  -a  相关模块参数

  主机信息:远程主机ip地址 远程主机组名称 远程所有主机all

  -m 指定相应模块

  -a 利用模块中某些参数功能

  第一个模块:command

  参数:chdir—在执行某个命令前先切换目录

  

  参数:creates—判断一个文件是否存在,如果已经存在,后面的命令就不会执行

  

  参数:removes—判断一个文件是否存在,如果不存在后面的命令就不会执行

  

  参数(必须要有的):free_form—–表示执行command模块时,必须要有linux合法命令信息

  第二个模块:shell (万能模块)

  参数:chdir—在执行某个命令前先切换目录

  参数:creates—判断一个文件是否存在,如果已经存在,后面的命令就不会执行

  参数:removes—判断一个文件是否存在,如果不存在后面的命令就不会执行

  参数(必须要有的):free_form—–表示执行command模块时,必须要有linux合法命令信息

  

  说明:shell模块可以满足command模块所有的功能,并且可以支持识别特殊符号信息  < > | ;

  第三个模块:script—-专门运行脚本模块

  文件类型模块:

  第一个模块:copy——复制模块

  参数:backup—对数据信息的备份

  参数:src—-定义要推送的数据信息

  参数:dest—-定义将数据推送到远程什么目录中

  参数:owner—设置复制后的文件属主权限

  参数:group—-设置复制后的文件属主权限

  参数:node——设置复制后的文件权限(600  755)

  第二个模块:file—–文件属性修改/目录创建/文件创建

·  参数:owner—设置复制后的文件属主权限

  参数:group—-设置复制后的文件属主权限

  参数:mode——设置复制后的文件权限(600  755)

  

  参数:state—用于指定创建目录或文件

  创建文件

来源:弓长三虎

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年7月22日
下一篇 2022年7月22日

相关推荐