天天看點

ansible安裝和常用的指令

<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>&gt;</code><code>/dev/null</code> <code>2&gt;&amp;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 &gt;</code><code>/dev/null</code> <code>2&gt;&amp;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,如需轉載請自行聯系原作者

繼續閱讀