ansible 拷貝文件並重啓服務

Ansible 安裝 web

只須要在ansible 服務器上安裝
yum install -y epel-release
yum install -y ansible
 
 
服務器生成密鑰對
ssh-keygen -t rsa  直接回車便可,不用設置密鑰密碼
 
把公鑰(id_rsa.pub)內容放到對方客戶端機器的/root/.ssh/authorized_keys裏面
 
 
Ansible更改配置文件
 
vi  /etc/ansible/hosts  //增長

[adservers]
172.20.0.70shell

 

客戶端 創建一個腳本bash

[root@adserver4 sh]# cat /data/sh/adserver_update.sh
#!/bin/bash服務器


pidno=`ps aux|grep adserver-beta|grep -v "grep"|awk '{print $2}'`ssh

kill -9 $pidnospa

if [ $? -ne 0 ]; then
echo "old adserver kill failed"
exit 1
fiserver

sleep 5進程

adserverpid=`ps aux|grep adserver-beta|grep -v "grep"|awk '{print $2}'`it

if [ "$adserverpid" ];then
echo "new version adserver is running now"io

fi

 

創建另一個腳本

[root@adserver4 sh]# cat /data/sh/packetanal_update.sh
#!/bin/bash


pidno=`ps aux|grep packetAnal|grep -v "grep"|awk '{print $2}'`

kill -9 $pidno

if [ $? -ne 0 ]; then
echo "old packetAnal kill failed"
exit 1
fi

sleep 5

packetpid=`ps aux|grep packetAnal|grep -v "grep"|awk '{print $2}'`

if [ "$packetpid" ];then
echo "new version packetAnal is running now"

fi

 

配置可執行權限

chmod +x /data/sh/*.sh

 

服務器上配置 playbook 的yml文件

 

[root@test-server28 ansible]# cat /etc/ansible/adserver_update.yml
---
- name: handlers adserver
hosts: adservers
user: root
tasks:
- name: copy file
copy: src=/etc/ansible/adserver-beta dest=/data/website/ owner=root group=root mode=0755
notify: adserver handlers
handlers:
- name: adserver handlers
shell: /bin/bash /data/sh/adserver_update.sh

 

[root@test-server28 ansible]# cat /etc/ansible/packetanal_update.yml
---
- name: handlers adserver
hosts: adservers
user: root
tasks:
- name: copy file
copy: src=/etc/ansible/packetAnal dest=/data/website/ owner=root group=root mode=0755
notify: packetAnal handlers
handlers:
- name: packetAnal handlers
shell: /bin/bash /data/sh/packetanal_update.sh

 

 

在客戶端上刪除 adserver, packetanal文件 

執行ansible 分發進程

[root@test-server28 ansible]# ansible-playbook /etc/ansible/packetanal_update.yml

PLAY [handlers adserver] **************************************************************************************************************************************************

TASK [Gathering Facts] ****************************************************************************************************************************************************
ok: [172.20.0.70]

TASK [copy file] **********************************************************************************************************************************************************
changed: [172.20.0.70]

RUNNING HANDLER [packetAnal handlers] *************************************************************************************************************************************
changed: [172.20.0.70]

PLAY RECAP ****************************************************************************************************************************************************************
172.20.0.70 : ok=3 changed=2 unreachable=0 failed=0

 顯示進程文件分發成功, 進程從新啓動

 

[root@test-server28 ansible]# ansible-playbook /etc/ansible/adserver_update.yml

PLAY [handlers adserver] **************************************************************************************************************************************************

TASK [Gathering Facts] ****************************************************************************************************************************************************
ok: [172.20.0.70]

TASK [copy file] **********************************************************************************************************************************************************
changed: [172.20.0.70]

RUNNING HANDLER [adserver handlers] ***************************************************************************************************************************************
changed: [172.20.0.70]

PLAY RECAP ****************************************************************************************************************************************************************172.20.0.70 : ok=3 changed=2 unreachable=0 failed=0

相關文章
相關標籤/搜索