• 关于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也支持以文件的形式读取密码具体的操作后期会跟上

     

     

  • 相关阅读:
    使用内部单向链表实现的一个简单堆栈
    通过反射调用内部类的隐藏方法
    动态代理生成空对象
    通过使用java.lang.reflect.Proxy实现动态代理
    简单代理模式
    暗色CSS,适用与Stylish, IE, FF, OPERA等.
    CWnd派生的控件处理MouseMove, MouseHover, MouseLeave
    _tcscpy_s的size应至少为src的长度+1(要把计算在内)
    用INET(CHttpFile)下载有重定向链接时获取最终URL的方法.
    GetDlgItem以及其他获得CWnd相关的函数要注意。。
  • 原文地址:https://www.cnblogs.com/smlile-you-me/p/11090161.html
Copyright © 2020-2023  润新知