• dwz.cn,dwz.cn【官网】》》》

  • 发布时间:2016-01-13 10:49 | 作者:yc | 来源:互联网 | 浏览:1200 次
  • dwz.cn,dwz.cn【官网】》》》不然会有的机械不会连通

    前语

    在部署ansible进程中,刚开始我把被操控真个暗码明文的写在了/etc/ansible/hosts中斟酌到安然问题,因为ansible不需求装配客户端和办事端,缘故原由是根据ssh毗连正因而能够创立ssh互信操控端和被操控端

    一、文件iplist

    该文件是纪录被操控真个ip 要和/etc/ansible/hosts

    界说的ip合营

    试验进程中:

    cat iplist

    192.168.2.180

    192.168.2.235

    192.168.2.141

    192.168.1.130

    192.168.1.131

    192.168.1.132

    192.168.1.133

    192.168.1.134

    有这么几个办事器

    cat /etc/ansible/hosts

    [webhosts]

    192.168.2.235 ansible_ssh_user=root

    #ansible_ssh_pass=1234

    192.168.2.180 ansible_ssh_user=root

    #ansible_ssh_pass=1234

    192.168.2.141 ansible_ssh_user=root

    #ansible_ssh_pass=1234

    192.168.1.130 ansible_ssh_user=root

    192.168.1.131 ansible_ssh_user=root

    192.168.1.132 ansible_ssh_user=root

    192.168.1.133 ansible_ssh_user=root

    192.168.1.134 ansible_ssh_user=root

    二、文件test.exp

    该文件是用来和第三个文件彼此给iplist中的创立互信因为在创立进程中要发生互动输入暗码颠末expect言语来完结

    在运用expect之前需求装配

    yum install tcl

    yum install tk

    yum install expect

    test.exp

    #!/usr/bin/expect-f

    set host [lindex $argv 0]

    界说一个参数和变量host

    set password "1234"

    界说互动时输入的暗码

    spawn ssh-copy-id -i /root/.ssh/id_rsa.pub " root@$host"

    此处是ssh树立互信时的登进口令$host会是在test.sh 里作为参数传进来

    expect {

    "yes/no"{send "yes\r";exp_continue}

    "*password*"{send "$password\r"}

    }

    e77755.comxpect eof//此处是当树立完互信后顿时退出被操控端

    三、test.sh

    该文件是联系iplist和test.exp来树立互信

    #!/bin/bash

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

    //创立互信时,创立认证文件能够man ssh-keygen 各个参数的意义

    n=0

    for ip in `cat iplist`

    do

    #逐行掏出每个ip的数值

    n=$(($n+1))

    expect test.exp $ip > /dev/null 2>&1

    done

    //此处是shell脚本的中间颠末for轮回来逐行读取ip列表作为一个参数传到test.exp的$argv 0

    把实行成果都输出到/dev/null 文件中去

    演示进程如下:

    直接实行./test.sh

    [root@server ~]# ./test.sh

    Generating public/private rsa key pair.

    Your identification has been saved in /root/.ssh/id_rsa.

    Your public key has been saved in /root/.ssh/id_rsa.pub.

    The key fingerprint is:

    3d:b1:d5:51:12:be:f1:43:91:08:18:1b:5a:93:10:20 root@server

    The key's randomart image is:

    +--[ RSA 2048]----+

    |E ..oo=+.. =+o|

    ssh批量互信

    |.oo++ +.|

    |. .. . +. |

    |. +.+ |

    |S +...|

    |..|

    ||

    ||

    ||

    +-----------------+

    此刻在/root/.ssh/下出现:

    [root@server ~]# ll .ssh/

    总用量 12

    -rw-------. 1 root root 1671 10月 11 23:03 id_rsa

    -rw-r--r--. 1 root root393 10月 11 23:03 id_rsa.pub

    -rw-r--r--. 1 root root 3160 10月 11 23:03 known_hosts

    说明如今互信现已树立

    能够颠末ansible webhost -m ping 会出现:

    [root@servdafa888.com黄金版er ~]# ansible webhosts -m ping

    192.168.2.141 | success >> {

    "changed": false,

    "ping": "pong"

    }

    192.168.1.130 | success >> {

    "changed": false,

    "ping": "pong"

    }

    192.168.1.131 | success >> {

    "changed": false,

    "ping": "pong"

    }

    192.168.2.235 | success >> {

    "changed": false,

    "ping": "pong"

    }

    192.168.2.180 | success >> {

    "changed": false,

    "ping": "pong"

    }

    192.168.1.133 | success >> {

    "changed": false,

    "ping": "pong"

    }

    192.168.1.132 | success >> {

    "changed": false,

    "ping": "pong"

    }

    192.168.1.134 | success >> {

    "changed": false,

    "ping": "pong"

    }

    此刻说明这八个ip的被操控端和操控端互信现已树立

    接下来你能够批量的运用ansible的强壮的功用了不需求在/etc/ansible/hosts中写暗码

    这篇文章出自 “黎明前的暗中” 博客,谢绝转发!

  • 相关内容

友情链接: