zoukankan      html  css  js  c++  java
  • 关于ansbile

     

    YAML语法规则

    规则一:缩进(一个缩进两空格,注意一定不用tab)

    规则二:冒号(每个冒号后一定要有空格)

    规则三:短横线 - (短横线后面要空格)

     

    编写案例

    ansible-playbook --syntax-check cron.yml   #剧本检查语法方法

    ansible-playbook -C cron.yml    #-C模拟执行剧本

    ansible-playbook cron.yml      #执行剧本

     

    ansible基于密钥管理

    vim /etc/ansible/hosts

    ... 在文件最后添加 ...

    [opop]

    172.16.1.5 ansible_ssh_user=root ansible_ssh_pass=123456

    172.16.1.6 ansible_ssh_user=root ansible_ssh_pass=123456

    172.16.1.7 ansible_ssh_user=root ansible_ssh_pass=123456

     

    ansible语法

    注:该脚本中的变量不是标准的,请注意.....

    该文档中是2台机器做的实验(都是CensOS7.4.1708)

    192.168.1.201

    192.168.1.202

    vim ~/ansible.sh 

    #!/bin/bash

    read -p "对端用户名(尽可能为同一个用户): " User

    read -p "对端IP(多个以空格隔开): " D_IP

    yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

    yum -y install ansible python-pip expect

    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

    for i in $D_IP;do

        /usr/bin/expect <<-EOF

        set timeout 10

        spawn ssh-copy-id $User@$i

        expect {

            "(yes/no)" { send "yes "; exp_continue }

            "*password:" { send "aaaaaa " }

            }

        expect eof

    EOF

    done

     

    注:实验中的6个a是所有机器的root对应的密码

     

    执行脚本:

    sh ~/ansible.sh

     

     

    测试:

     

    简单的Playbook:

    卸载:

    [root@kvm2 ~]# ansible all -m shell -a "yum -y remove tree"

     

     

     

    第二种传公钥的方式(适合批量)

    #!/bin/bash

    read -p "对端用户名(尽可能为同一个用户): " User

    read -p "对端IP(多个以空格隔开): " D_IP

    yum -y install sshpass

    for i in $D_IP;do

        sshpass -p "aaaaaa" ssh-copy-id -o StrictHostKeyChecking=no $User@$i     #批量发送公钥

    #   sshpass -p "aaaaaa" scp /etc/passwd $User@$i:~    #上传文件

    #   sshpass -p "aaaaaa" ssh $Usert@$i 'df -h'        #远程执行命令

    #   sshpass -p "aaaaaa" scp $User@$i:~/opopop.jpg  /tmp     #下载文件

    done

    注:sshpass也支持以文件的形式读取密码具体的操作后期会跟上

     

     

  • 相关阅读:
    vue 无缝无限滚动横条实现
    小程序 recycle-view 个人demo
    js 笔记
    java整理的一些面试资料
    使用js获取浏览器地址栏里的参数
    java面试题
    sql中索引不会被用到的几种情况
    常用linux命令
    shiro登录成功之后跳转原路径
    springboot 整合 mongodb实现 批量更新数据
  • 原文地址:https://www.cnblogs.com/smlile-you-me/p/11090161.html
Copyright © 2011-2022 走看看