SSH自动部署(转)

我的是windows环境,目前开发的过程中,有些项目需要一下子部署到很多的linux服务器上。写了个脚本能够自动上传文件和执行部署任务。完成这个任务需要的条件包括SSH配置和一个执行脚本。

准备

1. 本地环境配置

install scp

install cygwin

2. SSH setting

step1: install openSSH

find the cygwin installation application like setup-x86_64.exe and double click to install the openSSH, searc the openSSH

and you will find the openSSH package and click next to setup the package

step2: produce a ssh key

   open the cygwin window to generate and ssh key using


1

ssh-keygen

also, you can append with some params to generate a ssh key but it‘s ok for us now.

you can find an hiden file in the current folder called .ssh and there are two files id_rsa  id_rsa.pub

step 3: create connection between local and the remote server

  here  we‘ll login to the remote server without password using


1

ssh-copy-id username@ipaddress

explanation:

username  is what you login with to the remote server

 ipadress    is the target remote server‘s ip

answering yes to the questions and finally you can try to login the remote server with comman like

ssh username@ipadress -p port

you can omit the port if you are using the default port number 22

step4: create an exec script for deployment

If you are not familiar with shell, so you have to read basic about this. I‘ll give an demonstrator without explaining. here‘s the code of deploy_test file


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

#! /bin/bash

tests=(ip1 ip2 ip3)

length=${#tests[@]}

for ((i=0; i<$length; i++))

do

node=${tests[$i]}

echo $node

# copy file to test server

scp /cygdrive/d/git/test.zip $node:~

# operation to mv the etcd file and restart the etcd service

#first step to backup the previous version of test

ssh $node "sudo mv /opt/app/testrepo/test.zip /opt/app/etcdrepo/testbak"

#stop the etcd service

ssh $node  "sudo mv /home/op2/test.zip /opt/app/testrepo "

done

step5: make script work out

exec the script using comman


1

./deploy_test

Congratulations! You make it. Great!

http://www.cnblogs.com/ilawrence/p/3983587.html

时间: 09-18

SSH自动部署(转)的相关文章

SSH自动部署

我的是windows环境,目前开发的过程中,有些项目需要一下子部署到很多的linux服务器上.写了个脚本能够自动上传文件和执行部署任务.完成这个任务需要的条件包括SSH配置和一个执行脚本. 准备 1. 本地环境配置 install scp install cygwin 2. SSH setting step1: install openSSH find the cygwin installation application like setup-x86_64.exe and double cli

使用Publish Over SSH插件实现远程自动部署

文档使用的环境如下: jenkins服务器:10.10.10.201(tomcat运行) 应用(tomcat)服务器:10.10.10.200 现在要实现jenkins将服务器构建打包好的war包自动发布到应用服务器,并部署运行 操作过程如下: 首先jenkins服务器需要安装Publish Over SSH插件 在jenkins页面"系统管理"-->"管理插件"-->"可选插件"中搜索Publish Over SSH插件选择并安装

使用gogs,drone搭建自动部署

使用gogs,drone搭建自动部署 使用gogs,drone,docker搭建自动部署测试环境 Gogs是一个使用go语言开发的自助git服务,支持所有平台Docker是使用go开发的开源容器引擎Drone是一个基于容器技术的持续集成平台.每个构建都在一个临时的Docker容器中执行,使开发人员能够完全控制其构建环境并保证隔离.drone易于安装和使用,其目标是替代jenkins 本文所实现的的功能为当你push代码到gogs时,自动更新您测试环境的二进制文件并重启,实现自动部署(以go开发a

基于最新RHEL7系统的Packstack自动部署RDO(OpenStack Icehouse)

本篇文章是通过最新发布的Red Hat Enterpise Linux 7 系统部署OpenStack,集成到RHEL系统的OpenStack 简称为RDO.此篇是通过制作应答文件answer.conf自动化部署OpenStack Icehouse 版本. 由于采用RHEL7系统在部署中或多或少碰到不少报错的问题,这里只列出我的几张截图,在部署中还是需要根据实际情况来决定,多看下报错及日志文件:例如:解决包的依赖,服务不能没有启动起来,数据库密码设置未成功等:希望本篇可以给部署RDO的同学带来一

git管理和自动部署项目

当一个项目需要纳入到版本控制的时候,选择的工具还是比较多的,最常见的就是工具有CVS,SVN,GIT等.在平时的开发中视情况而定,从来就没有最好的版本控制工具,只有最适合的工具.在这里我习惯用git来管理自己的项目,当然之前使用svn管理的,但是当用了git工具就不愿意再用其它的工具来管理.这里除了习惯之外,git的很多功能是svn不具备的,最简单的就是离线提交,用git管理的项目你会发现整个项目的大小变化不大,不像svn那样每个目录又有一个.svn 的目录,而且会使项目的变得很大.关于git与

Webhook实践 —— PHP自动部署

Webhook实践 -- PHP自动部署 1.部署Gogs 参考博客:使用 Gogs 搭建自己的 Git 服务器 2.添加git的ssh公钥 因为是用git用户部署的Gogs,接下来在服务器上配置用git账号配置ssh公钥 首先在主机上生成秘钥: [[email protected] ~]$ ssh-keygen -t dsa -P "" -f ~/.ssh/id_dsa Generating public/private dsa key pair. Created directory

jenkins实现项目自动部署

背景 整体思路 实现方式 1 自动化部署脚本 2 远程执行 3 配置jenkins任务 背景 之前给公司搭建过一套gitlab+gerrit+jenkins的持续集成环境,由于操作起来有点繁琐,自己也没太搞清楚该怎么用,所以一直就只用了gitlab来做代码管理.最近要做一个项目自动部署的功能,使用过jenkins一定知道他的自动化功能.所以就从jenkins创建自动部署任务的方式来入手. 整体思路 jenkins可以配置触发器,当有新的提交时,触发执行相应的任务.由于jenkins和项目部署不在

Hexo快速搭建静态博客并实现远程VPS自动部署

这篇文章将如何搭建hexo,以及如何通过git webhooks实现远程vps的自动部署 这篇文件适合的条件: 简单的用于个人博客.公司博客展示,hexo的定位是静态博客,要实现动态服务器的功能并不适合 有自己私有的服务器.vps.域名 git仓库,Github或国内的Coding.net hexo本地部署 流程:先在本机搭建好hexo环境,push到git仓库,再部署到服务器上. 第一步,安装hexo命令行工具,这个工具在服务器端也需要执行安装 1 npm install hexo-cli -

使用Jenkins自动部署nodejs应用

想必部署过nodejs应用的朋友都有过这样的经历: 1.通过ssh登录服务器 2.进入nodejs目录 3.执行:git pull 命令拉取最新代码 4.执行:npm install 安装新依赖 5.执行:pm2 restart all 重新启动所有nodejs进程 如果我们只有一台机器,并且更新不是很频繁,似乎这样的操作还是可以接受,但是如果我们有4台nodejs应用的服务器,每次的代码改动将是灾难! 好在我们有Jenkins帮助我们做这些事情,Jenkins是一个可以自动远程部署,执行远程脚