zoukankan      html  css  js  c++  java
  • ansible

    一、安装

      1、安装wget

        yum install -y wget

      2、下载epel源  

        wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

      3、下载安装ansible

        yum install -y ansible

    二、ansible 的命令格式

      ansible -h 查看 ansible的参数

      -a  MODULE_ARGS  模块参数

      -C  --check  检查语法

      -f  FORKS  并发

      --list-hosts  列出主机列表

      -m  MODULE_NAME  模块名字

    三、ssh 认证方式

      -  密码认证

      -  密钥认证

      ssh-keygen  生成密钥对(公钥,私钥)

      ssh-copy-id + 远程主机地址  复制公钥到远程主机

    四、基本命令

      ping 走的 是ICMP协议

      ansible 中的ping 走的是ssh协议,所以当你ssh没有连接成功时,是无法ping通的,会报如下警告

      

      此时需要在 /etc/ansible/hosts文件下将被控制主机的ip地址写进去

      

      再 ping,成功 

      

      还可以将远程主机ip写入一个自定义组里边,一台主机可以作为多个组的成员。

      

      此时直接ping 组名也能ping通

      anans

      ansible all -m ping  ping所有远程主机

      ansible 'web:!db' -m ping  在web组 中 但是不再db组中的远程主机

      ansible 'web:&db' -m ping  web 和 db 的交集

      ansible'web:db' -m ping  web 和 db 的并集 

      4.1   command

        ansible web -a 'ls'  # 查看当前组下的所有文件ansi
        ansible web -a 'chdir=/tmp pwd' # 先切换目录,在执行相应的命令,一般情况下在编译时候使用
        ansible web -a 'creates=/tmp pwd' # 如果creates的文件存在,则不执行后面的操作
        ansible web -a 'removes=/tmp pwd' # 如果removes的文件存在,则执行后面的操作
        ansible web -a 'removes=/tmp mkdir /data' # 会执行后面的mkdir命令
        ansible web -a 'creates=/data2 mkdir /data2' #会执行后面的mkdir命令

       

        ansible web -m command -a 'useradd haha'  # 创建一个haha的用户

        查看用户是否被创建成功
        tail -1 /etc/passwd
        tail -1 /etc/shadow
        id + 用户名

      4.2  shell
        ansible web -m shell -a echo '1' | passwd --stdin alex 非交互式设置密码  给haha 用户设置一个密码为1

        这里不能用command ,因为command 不支持 < ,> , | , &, $ 这些特殊字符,如果遇到了使用shell

         要先确保改主机中有这个文件

        ansible 192.168.12.25 -m shell -a '/root/a.sh' 执行shell脚本,前提是脚本有可执行权限

        chmod +x a.sh  给a.sh文件添加可执行权限
        ansible 192.168.12.25 -m shell -a '/root/a.py' 执行python脚本,前提是脚本有可执行权限

       4.3 script

        ansible web -m script -a '/root/m.sh'  执行管控机上的m.sh文件,将脚本文件的命令运行在web组下的被掌控机上。

        ansible web -m script -a 'creates=/root/a.sh /root/m.sh'  查看被掌控机上的文件是否存在  ,查看被掌控机上是否有a.sh文件,存在就不执行。

      4.4 copy

        dest  目标地址

        src  源地址

        ansible web -m copy -a 'dest=/tmp/a.sh  src=/root/'  复制文件到远程主机,将a.sh文件 复制到 web组下的所有被掌控机的root下

        ansible web -m copy  -a 'dest=/tmp/a.sh  src=/root/m.sh'

  • 相关阅读:
    SubString函数总结
    button按钮居中
    2019 面试题
    linux(centos)搭建SVN服务器
    svn 设置钩子将代码同步到web目录下面
    sql 语句总结
    php 多维数组转换
    php 两个数组是否相同,并且输出全面的数据,相同的加一个字段标示
    PHP错误类型及屏蔽方法
    设置div中文字超出时自动换行
  • 原文地址:https://www.cnblogs.com/wf123/p/10375346.html
Copyright © 2011-2022 走看看