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

     

     

  • 相关阅读:
    学习linux之用户-文件-权限操作
    Hadoop--Hadoop的机架感知
    redhat 6.3 64位安装中文输入法全过程记录
    hdu 4619 Warm up 2(并查集)
    openGL 初试 绘制三角形 和添加鼠标键盘事件
    MySQL 启动服务报错解决方案
    20亿与20亿表关联优化方法(超级大表与超级大表join优化方法)
    50行python代码实现个代理server(你懂的)
    nginx+tomcat反复请求
    慢慢过渡到个人博客
  • 原文地址:https://www.cnblogs.com/smlile-you-me/p/11090161.html
Copyright © 2011-2022 走看看