容易的linux自動化運維工具之安裝部署和應用實例(四)

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

做者:容易  日期:2015-03-17python

備註:非本人贊成,請勿轉載mysql


安裝過程c++

系統需求:以centos6.4爲例sql

選擇 base server 安裝shell

而後 安裝額外的GCC編譯環境便可centos

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服務器,提供給客戶的下載便可,若是喜歡能夠留言交易。

相關文章
相關標籤/搜索