<a href="http://s2.51cto.com/wyfs02/M01/85/EE/wKiom1evSELiSw8AAACIlNGJTgU249.png-wh_500x0-wm_3-wmp_4-s_1590913708.png" target="_blank"></a>
1.建立ssh無秘鑰認證的關系
1
<code>yum -y </code><code>install</code> <code>expect</code>
1.1cat auto_deploy.sh
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<code>#!/bin/sh</code>
<code>. </code><code>/etc/init</code><code>.d</code><code>/functions</code>
<code>#1.product key pair</code>
<code>ssh</code><code>-keygen -t dsa -P </code><code>''</code> <code>-f ~/.</code><code>ssh</code><code>/id_dsa</code> <code>></code><code>/dev/null</code> <code>2>&1</code>
<code> </code><code>if</code> <code>[ $? -</code><code>eq</code> <code>0 ];</code><code>then</code>
<code> </code><code>action </code><code>"create dsa success"</code> <code>/bin/true</code>
<code> </code><code>else</code>
<code> </code><code>action </code><code>"create dsa failed"</code> <code>/bin/false</code>
<code> </code><code>exit</code> <code>1</code>
<code>fi</code>
<code>#2.dis pub key</code>
<code>for</code> <code>ip </code><code>in</code> <code>`</code><code>cat</code> <code>ip.txt`</code>
<code>do</code>
<code> </code><code>expect expect_fenfagongyao.exp ~/.</code><code>ssh</code><code>/id_dsa</code><code>.pub $ip ></code><code>/dev/null</code> <code>2>&1</code>
<code> </code><code>if</code> <code>[ $? -</code><code>eq</code> <code>0 ];</code><code>then</code>
<code> </code><code>action </code><code>"$ip"</code> <code>/bin/true</code>
<code> </code><code>else</code>
<code> </code><code>action </code><code>"$ip"</code> <code>/bin/false</code>
<code> </code><code>fi</code>
<code>done</code>
1.2cat expect_fenfagongyao.exp
<code>#!/usr/bin/expect</code>
<code> </code><code>if</code> <code>{ $argc != 2 } {</code>
<code> </code><code>send_user </code><code>"usege: expect expect_fenfagongyao.exp file host\n"</code>
<code> </code><code>exit</code>
<code> </code><code>}</code>
<code>##define var</code>
<code>set</code> <code>file</code> <code>[lindex $argv 0]</code>
<code>set</code> <code>host [lindex $argv 1]</code>
<code>set</code> <code>password </code><code>"123456"</code>
<code>spawn </code><code>ssh</code><code>-copy-</code><code>id</code> <code>-i $</code><code>file</code> <code>"-p 22 root@$host"</code>
<code> </code><code>expect {</code>
<code> </code><code>"yes/no"</code> <code>{send </code><code>"yes\r"</code><code>;exp_continue}</code>
<code> </code><code>"*password"</code> <code>{send </code><code>"$password\r"</code><code>}</code>
<code> </code><code>}</code>
<code>expect eof </code>
<code>exit</code> <code>-onexit {</code>
<code> </code><code>send_user </code><code>"say good bye to you!\n"</code>
<code>}</code>
1.3 cat ip.txt
<code>172.16.1.10</code>
<code>172.16.1.27</code>
2.安裝ansible
說明:采用yum安裝,源碼包安裝特别麻煩
2.1.基本的設定
<code>yum -y </code><code>install</code> <code>ansible</code>
<code>cd</code> <code>/etc/ansible</code>
<code>ll</code>
<code>ansible.cfg </code><code>#ansible的系統配置檔案</code>
<code> </code><code>hosts </code><code>#用戶端的主機的配置檔案</code>
<code>在</code><code>/etc/ansible/hosts</code><code>檔案的最後添加:</code>
<code>[webservers]</code>
2.2檢視常用的子產品
<code>[root@centos67 ansible]</code><code># ansible-doc -l</code>
<code>a10_server Manage A10 Networks AX</code><code>/SoftAX/Thunder/vThunder</code> <code>devices </code>
<code>a10_service_group Manage A10 Networks devices' service </code><code>groups</code>
<code>a10_virtual_server Manage A10 Networks devices' virtual servers </code>
<code>acl Sets and retrieves </code><code>file</code> <code>ACL information. </code>
<code>add_host add a host (and alternatively a group) to the ansible-playbook </code><code>in</code><code>-memory inventor...</code>
<code>airbrake_deployment Notify airbrake about app deployments </code>
<code>alternatives Manages alternative programs </code><code>for</code> <code>common commands </code>
<code>apache2_module enables</code><code>/disables</code> <code>a module of the Apache2 webserver </code>
<code>apk Manages apk packages</code>
2.2ansible常用的指令總結
<code>ansible webservers </code><code>#webservers子產品</code>
<code>ansible all </code><code>#所有的子產品</code>
<code>ansible webservers -m </code><code>ping</code> <code>#檢視主機存活狀态</code>
<code> </code><code>ansible webservers -m shell -a </code><code>"bash /tmp/test.sh"</code> <code>#遠端執行shell腳本,執行用戶端的/tmp/test.sh 腳本</code>
<code>ansible webservers -m script -a </code><code>'/root/run.sh'</code> <code>#執行腳本/root/run.sh 為本地的腳本</code>
<code>ansible webservers -m </code><code>command</code> <code>-a </code><code>'uptime'</code> <code>#遠端執行指令</code>
<code>ansible webservers -m </code><code>command</code> <code>-a </code><code>'yum -y install httpd'</code> <code>#遠端安裝apache</code>
<code>ansible webservers -m service -a </code><code>'name=httpd state=started'</code>
<code>name:軟體的名字</code>
<code>stated:有started stoped restarted reloaded</code>
<code> </code><code>ansible webservers -m copy -a </code><code>'dest=/tmp src=/root/run.sh'</code> <code>#本機的/root/run.sh 拷貝到客戶機/tmp下</code>
<code>ansible all -m </code><code>cron</code> <code>-a </code><code>'name="cron job" minute=*/5 hour=* day=* month=* weekday=* job="/usr/sbin/ntpdate time.nist.gov"'</code> <code>#定時任務</code>
<code>ansible webservers -m </code><code>file</code> <code>-a </code><code>"dest=/tmp/test.sh mode=777 owner=sanlang group=sanlang"</code> <code>#修改用戶端檔案權限</code>
<code> </code><code>ansible -i </code><code>/etc/ansible/hosts</code> <code>webservers -m setup </code><code>#檢視用戶端主機的詳細資訊</code>
<code>ansible webservers -m </code><code>file</code> <code>-a </code><code>"src=/etc/fstab dest=/tmp/fstab state=link"</code> <code>#建立軟連接配接</code>
本文轉自 小小三郎1 51CTO部落格,原文連結:http://blog.51cto.com/wsxxsl/1837689,如需轉載請自行聯系原作者