Ansible 安装

只需要在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.70

客户端 建立一个脚本

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

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

kill -9 $pidno

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

sleep 5

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

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

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

 

ansible 拷贝文件并重启服务的更多相关文章

  1. Ansible 拷贝文件或目录

    写法如下: [root@localhost ~]$ ansible 192.168.119.134 -m copy -a "src=/etc/passwd dest=/tmp/passwd ...

  2. Ansible拷贝文件遇到的问题

    ansible报错Aborting, target uses selinux but python bindings (libselinux-python) aren't installed 报错内容 ...

  3. Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件

    一.Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,ce ...

  4. 使用rcp命令实现从远程机器拷贝文件

    rcp:远程文件复制 使用rcp命令可以在远程主机之间复制文件,如果同时指定2个以上的文件或目录,且最后的目的地是一个已经存在的目录,则他会把前面指定的所有文件或目录复制到该目录中. rcp命令语法: ...

  5. Java FtpClient 实现文件上传服务

    一.Ubuntu 安装 Vsftpd 服务 1.安装 sudo apt-get install vsftpd 2.添加用户(uftp) sudo useradd -d /home/uftp -s /b ...

  6. Mac OS X下高速拷贝文件路径

    文件路径表示的是文件在文件系统里的位置,无论是用命令行操作的Linux程序猿还是使用windows的广大用户.都难免会有这种需求 在windows上复制当前文件夹的路径有一个特别方便的方式,仅仅须要用 ...

  7. Linux Systemd——在RHEL/CentOS 7中启动/停止/重启服务

    RHEL/CentOS 7.0中一个最主要的改变,就是切换到了systemd.它用于替代红帽企业版Linux前任版本中的SysV和Upstart,对系统和服务进行管理.systemd兼容SysV和Li ...

  8. 在CentOS 7中启动/停止/重启服务

    RHEL/CentOS 7.0中一个最主要的改变,就是切换到了systemd.它用于替代红帽企业版Linux前任版本中的SysV和Upstart,对系统和服务进行管理.systemd兼容SysV和Li ...

  9. linux系统,服务器与服务器拷贝文件

    服务器与服务器拷贝文件命令 scp -P (服务器端口)-r 拷贝文件名称列表    远程服务器用户@远程服务器ip :(文件放置目录) 1.将本地home目录下的apache-tomcat-8.0. ...

随机推荐

  1. 关于PHP 开启zlib gzip配置

    一般有两种方法:一种是使用ob_start("ob_gzhandler") ,是开启php自带的zlib配置,这里要说的是后者,此两种方法只能选其一,否则会报错 一.打开php.i ...

  2. 工厂模式Java

    一.工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的. 工厂模式在<Java与模式>中分为三类:1)简单工厂模式(Simple Factor ...

  3. React Native学习(八)—— 对接七鱼客服

    本文基于React Native 0.52 Demo上传到Git了,有需要可以看看,写了新内容会上传的.Git地址 https://github.com/gingerJY/React-Native-D ...

  4. List Set Map 的区别 用法以及特点(转载)

    List,Set,Map是否继承自Collection接口?  答:List,Set是,Map不是. Collection是最基本的集合接口,一个Collection代表一组Object,即Colle ...

  5. 如何将阿里云mysql RDS备份文件恢复到自建数据库

    参考地址:https://help.aliyun.com/knowledge_detail/41817.html PS:目前恢复只支持 Linux 下进行.Linux下恢复的数据文件,无论 Windo ...

  6. 计算机改名引发的ORA

    近期上班时,由于开机时老是提示" 局域网出现计算机重名冲突",于是把计算机名字给改了,从PC2010081312zeo改为了CXBIKKKKKKK,结果第二天来的时候,用PL/SQ ...

  7. shell第四篇(上)

    第四篇了解Shell 命令执行流程图 {网中人大哥推荐参考Learning the Bash Shell, 2nd Edition,第 178页:中文版229页} Shell 从标准输入或脚本中读取的 ...

  8. 5分钟编写运行一个RChain合约

    今天介绍如何编写和测试一个RChain智能合约,Rholang的语法介绍在https://developer.rchain.coop/tutorial 1.安装docker 这个自己百度一下,安装都是 ...

  9. Css3中的 calc()使用

    http://www.w3cplus.com/css3/how-to-use-css3-calc-function.html

  10. 小白的.Net Core 2.0 ConsoleApp入门(keng)指南(一)

    一.准备工作 准备工作很简单,甚至可以不用Visual Studio,一只.NET CORE和Runtime即可(你有考虑过世界第一IDE的感受吗) 下载:https://www.microsoft. ...