1-7的時候有利用zabbix偵測服務狀態再下命令做重啟之類動作,通常這些服務都會有好幾台做負載平衡,因此會先將機器從負載上先下掉,避免影響服務。
這邊使用Jenkins原因是
1.R&D使用該工具做測試部屬
2.入門門檻較低
3.直接下指令到機器有資安風險及指令異常運作不穩定風險(重複連下指令)
4.有API方便自動化
以下開始安裝Jenkins
需要java支援
yum install java-1.8.0-openjdk.x86_64
到官網找安裝檔install https://pkg.jenkins.io/redhat/
防火牆開啟8080,連到網頁X.X.X.X:8080
網頁上會顯示要到某個路徑將key複製出來,輸入再框內即可啟用
建立腳本
New一個新的item
選Freestyle project
Linux OS下指令是選Execute shell
設定要執行的指令
以下範例透過python API去呼叫,輸出為json格式,可以將['result']改成其他想要的資訊 Ex.['timestamp']
https://pypi.python.org/pypi/python-jenkins/0.4.15
sudo pip install python-jenkins
>>> import jenkins
>>> jenkins_server_url='http://172.16.1.1:8080'
>>> user_id='teset'
>>> api_token='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
>>> server=jenkins.Jenkins(jenkins_server_url, username=user_id, password=api_token)
>>> server.build_job('test-172.16.1.2-Enable')
u''
>>> server.get_job_info('pool_test-123.12.123.123-Enable')['lastBuild']['number']
1
>>> server.get_build_info('pool_test-123.12.123.123-Enable',1)['result']
u'SUCCESS'