天天看点

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,如需转载请自行联系原作者

继续阅读