容易的linux自动化运维工具之安装部署和应用实例(四)

原文:https://www.3qos.com/article/101.html

作者:容易  日期:2015-03-17

备注:非本人同意,请勿转载

安装过程

系统需求:以centos6.4为例

选择 base server 安装

然后 安装额外的GCC编译环境即可

yum install gcc gcc-c++


以下是小工具所需的软件包

使用到的软件和包python+pyzmq,系统命令有wget和tail

   

小工具的安装步骤,纯编译安装,避免破坏现有系统环境。

mkdir /oaos

tar -zxvf Python-2.7.9.tgz
cd Python-2.7.9
./configure --prefix=/oaos/python
make && make install
tar  -zxvf setuptools-12.1.tar.gz
cd setuptools-12.1
/oaos/python/bin/python setup.py build
/oaos/python/bin/python setup.py install
unzip pyzmq-2.2.0.1.zip
cd pyzmq-2.2.0.1
/oaos/python/bin/python setup.py build
/oaos/python/bin/python setup.py install


备注:master端需要 os_server.py,和os_add_job.py文件,client端只需要部署os_client.py即可

将master端代码保存文 os_server.py

将add_job工具代码保存为 os_add_job.py

将client端代码保存为 os_client.py


master端启动os_server为守护进程

/oaos/python/bin/python os_server.py start/stop/restart(启动,停止和重启)

client端启动os_client.py为守护进程

启动前请设置好与master端连接的网络接口和master端监听的ip和端口

/oaos/python/bin/python os_client.py start/stop/restart(启动,停止和重启)


部署os_add_job.py

必须部署在master服务器上,并且将os_add_job.py存放于os_server.py相同的路径。

编辑os_add_job命令的配置文件task.ini,将文件存放在os_add_job.py的相同目录,该配置文件就是需要批量发布任务的信息。

配置文件内容如下,直接是vi编辑即可

[master]
sock=tcp://192.168.4.194:7777
[ip_list]
ip=192.168.4.195,192.168.4.196,192.168.4.197,192.168.4.198
[job_info]
type=c
task=ls -rlt
cmdtimeout=8
jobtimeout=10
env=sh
fileserver=http://192.168.0.227/ser/
rundir=/root/


该任务配置文件的的任务描述如下,master地址的接口为tcp://192.168.4.194:7777

需要执行该任务的客户端IP为192.168.4.195,192.168.4.196,192.168.4.197,192.168.4.198

任务的类别为 命令

执行的命令为 ls -rlt

命令的超时时间为8秒

任务的超时时间为10秒

备注:任务超时因该大于单个命令的超时时间,否则可能命令执行成功,但是会被记录为超时失败,后续加个判断改进

执行任务的环境是 sh shell

由于该任务是普通命令所有 脚本下载服务器fileserver并发必须

运行目录为/root/

以下是master端运行后的相关文件和目录,如果不部署为client端os_client.py可以不部署

[root@salt-master-194 oaos]# ls
os_add_job.py  job  log  os_client.py  os_server.py  run  task.ini


执行os_add_job.py 发布批量任务

root@salt-master-194 oaos]# /oaos/python/bin/python os_add_job.py

job add ok,job log job/1425270675.log
----------------------job report start--------------------------
job 1425270675 start
192.168.4.195 code:0
total 114
drwxr-xr-x.   2 root root  4096 Sep 23  2011 srv
drwxr-xr-x.   2 root root  4096 Sep 23  2011 mnt
......................
drwxr-xr-x    2 root root     0 Feb 13 08:53 net
drwxr-xr-x   16 root root  3660 Feb 13 08:53 dev
dr-xr-xr-x.  11 root root  4096 Feb 13 09:11 lib
dr-xr-xr-x.   9 root root 12288 Feb 13 09:21 lib64
dr-xr-x---.   5 root root  4096 Feb 14 07:10 root
drwxr-xr-x    8 root root  4096 Feb 14 10:31 app
drwxr-xr-x    5 root root  4096 Feb 28 01:21 oaos
dr-xr-xr-x.   2 root root  4096 Feb 28 03:06 bin
drwxr-xr-x.  99 root root 12288 Feb 28 03:06 etc
drwxrwxrwt.   4 root root  4096 Mar  1 03:43 tmp
192.168.4.194 code:0
total 5847912
drwxr-xr-x   7  201   201       4096 Nov 17  2012 vmware-tools-distrib
-rw-r--r--.  1 root root        7572 Sep  3 04:24 install.log.syslog
-rw-r--r--.  1 root root       26505 Sep  3 04:25 install.log
...........................
drwxr-xr-x   2 root root        4096 Feb 28 10:19 log
drwxr-xr-x   2 root root        4096 Mar  1 23:28 bak
192.168.0.61 code:0
total 178
drwxrwxr-x   4 oracle dba   4096 Nov 24  2010 oracle
drwxr-xr-x   2 root   root  4096 May 11  2011 srv
drwxr-xr-x   2 root   root  4096 May 11  2011 mnt
drwx------   2 root   root 16384 Sep 20  2012 lost+found
...................
drwxr-xr-x   2 root   root 12288 Sep 20  2012 sbin
drwxr-x---  16 root   root  4096 Nov 22  2012 root
drwxr-xr-x   4 wls    bea   4096 Dec 26  2012 bea
dr-xr-xr-x 138 root   root     0 Jan  7  2013 proc
............................
drwxr-xr-x  94 root   root 12288 Feb 28 04:02 etc
drwxr-xr-x   5 root   root  4096 Feb 28 14:20 oaos
drwxrwxrwt   8 root   root  4096 Mar  2 04:02 tmp
192.168.4.196 code:0
total 5829828
drwxr-xr-x   7  201  201       4096 Nov 17  2012 vmware-tools-distrib
-rw-r--r--.  1 root root       7572 Sep  3 04:24 install.log.syslog
-rw-r--r--.  1 root root      26505 Sep  3 04:25 install.log
-rw-------.  1 root root       1249 Sep  3 04:25 anaconda-ks.cfg
-r--r--r--   1 root root   66611473 Sep  3 04:43 VMwareTools-8.6.10-913593.tar.gz
-rwx------   1 root root 4353378304 Sep  3 04:58 CentOS-6.4-x86_64-bin-DVD1.iso
-rwx------   1 root root 1452388352 Sep  3 04:59 CentOS-6.4-x86_64-bin-DVD2.iso
-rw-r--r--   1 root root   32979820 Sep  3 05:17 mysql-5.6.20.tar.gz
-rw-r--r--   1 root root   34601551 Sep  3 05:17 percona-xtrabackup-2.2.3.tar.gz
-rwxr-xr-x   1 root root      58069 Sep  3 05:17 orzdba.pl
-rw-r--r--   1 root root   29650115 Feb 13 08:55 salt_stack.tar.gz
-rw-r--r--   1 root root        116 Feb 13 09:03 setup.cfg
drwxrwxr-x  23  501  501       4096 Feb 13 10:02 stack
job 1425270675 end
----------------------job report end---------------------------
You have new mail in /var/spool/mail/root


以上是批量发布命令,下面这个是批量发布脚本

task.ini的内容如下,任务类别是运行脚本,脚本名为chgpass.sh,作用是变更某个用户的密码

[master]
sock=tcp://192.168.4.194:7777
[ip_list]
ip=192.168.4.195,192.168.4.196,192.168.4.197,192.168.4.198
[job_info]
type=s
task=chgpass.sh
cmdtimeout=8
jobtimeout=10
env=sh
fileserver=http://192.168.0.227/ser/
rundir=/root/


执行和输出如下

[root@salt-master-194 oaos]#  /oaos/python/bin/python os_add_job.py

job add ok,job log job/1425270947.log
----------------------job report start--------------------------
job 1425270947 start
192.168.4.195 code:252
passwd: Unknown user name 'oracle'.
192.168.0.61 code:0
Changing password for user oracle.
passwd: all authentication tokens updated successfully.
192.168.4.196 code:252
passwd: Unknown user name 'oracle'.
192.168.4.194 code:252
passwd: Unknown user name 'oracle'.
job 1425270947 end
----------------------job report end---------------------------


小工具的配置和运行过程就这么简单,部署好后,如果需要发布任务和脚本,只需要简单编辑task.ini文件即可,如果发布脚本,将需要发布的脚本上传至http服务器,提供给客户的下载即可,如果喜欢可以留言交易。




你可能感兴趣的:(容易的linux自动化运维工具之安装部署和应用实例(四))