当前位置:首页 » 网页前端 » web项目自动化部署
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

web项目自动化部署

发布时间: 2022-10-05 23:12:09

㈠ 如何利用git webhooks 实现网站代码自动化部署

1. 生成公钥

公钥有两个:1. git用户公钥,2. 部署公钥:

git用户公钥

ssh-keygen -t rsa -C "[email protected]"
# 然后一直回车就行
# 生成的文件通常是 /root/.ssh/id_rsa,如果非root用户请查看提示上的路径

1
2
3

ssh-keygen -t rsa -C "[email protected]"
# 然后一直回车就行
# 生成的文件通常是 /root/.ssh/id_rsa,如果非root用户请查看提示上的路径

部署公钥

sudo -Hu www ssh-keygen -t rsa # 请选择 “no passphrase”,一直回车下去

2. 准备钩子文件

创建和修改目录权限:

mkdir /home/wwwroot/website.com/hook
chown -R www:www /home/wwwroot/website.com/hook

1
2

mkdir /home/wwwroot/website.com/hook
chown -R www:www /home/wwwroot/website.com/hook

写入钩子文件:

sudo -Hu www touch /home/wwwroot/website.com/hook/index.php

1

sudo -Hu www touch /home/wwwroot/website.com/hook/index.php

<?php

error_reporting(1);

$target = '/home/wwwroot/website.com'; // 生产环境web目录

$token = '您在coding填写的hook令牌';
$wwwUser = 'www';
$wwwGroup = 'www';

$json = json_decode(file_get_contents('php://input'), true);

if (empty($json['token']) || $json['token'] !== $token) {
exit('error request');
}

$repo = $json['repository']['name'];

// $cmds = array(
// "cd $target && git pull",
// "chown -R {$wwwUser}:{$wwwGroup} $target/",
// );

// foreach ($cmds as $cmd) {
// shell_exec($cmd);
// }

// 感谢@墨迹凡指正,可以直接用www用户拉取代码而不用每次拉取后再修改用户组

$cmd = "sudo -Hu www cd $target && git pull";

shell_exec($cmd);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

<?php

error_reporting(1);

$target = '/home/wwwroot/website.com'; // 生产环境web目录

$token = '您在coding填写的hook令牌';
$wwwUser = 'www';
$wwwGroup = 'www';

$json = json_decode(file_get_contents('php://input'), true);

if (empty($json['token']) || $json['token'] !== $token) {
exit('error request');
}

$repo = $json['repository']['name'];

// $cmds = array(
// "cd $target && git pull",
// "chown -R {$wwwUser}:{$wwwGroup} $target/",
// );

// foreach ($cmds as $cmd) {
// shell_exec($cmd);
// }

// 感谢@墨迹凡指正,可以直接用www用户拉取代码而不用每次拉取后再修改用户组

$cmd = "sudo -Hu www cd $target && git pull";

shell_exec($cmd);

确保你的hook文件可以访问:http://example.com/hook/index.php,钩子准备完成。

3.修改git配置和保存git用户名密码

sudo -Hu www git config --global credential.helper store # 永久保存
sudo -Hu www git config --global user.name "Bantes"
sudo -Hu www git config --global user.email "[email protected]" # 邮箱请与conding上一致

1
2
3

sudo -Hu www git config --global credential.helper store # 永久保存
sudo -Hu www git config --global user.name "Bantes"
sudo -Hu www git config --global user.email "[email protected]" # 邮箱请与conding上一致

在Coding网站

1.添加用户公钥

复制/root/.ssh/id_rsa.pub内容到个人设置页的SSH公钥里添加即可(https://coding.net/user/account/setting/keys)

2.添加部署公钥

复制/home/www/.ssh/id_rsa.pub的内容并添加到部署公钥:

选择项目 > 设置 > 部署公钥 > 新建 > 粘贴到下面框并确认

3.添加hook

选择项目 > 设置 > WebHook > 新建hook > 粘贴你的hook/index.php所在的网址。比如:http://example.com/hook/index.php, 令牌可选,但是建议写上。

稍过几秒刷新页面查看hook状态,显示为绿色勾就OK了。

初始化

1.我们需要先在服务器上clone一次,以后都可以实现自动部署了:

sudo -Hu www git clone https://git.coding.net/yourname/yourgit.git /home/wwwroot/website.com/ --depth=1

1

sudo -Hu www git clone https://git.coding.net/yourname/yourgit.git /home/wwwroot/website.com/ --depth=1

这个时候应该会要求你输入一次Coding的帐号和密码,因为上面我们设置了永久保存用户名和密码,所以之后再执行git就不会要求输入用户名和密码了。

**!!注意,这里初始化clone必须要用www用户**

2.往Coding.net提交一次代码测试:

在本地clone的仓库执行:

git commit -am "test hook" --allow-empty
git push

1
2

git commit -am "test hook" --allow-empty
git push

OK,稍过几秒,正常的话你在配置的项目目录里就会有你的项目文件了。

初始化Laravel框架

1. 下载Composer

在项目目录下执行:

sudo -Hu www curl -sS https://getcomposer.org/installer | php
sudo -Hu www php composer.phar install

1
2

sudo -Hu www curl -sS https://getcomposer.org/installer | php
sudo -Hu www php composer.phar install

**!!记得在本地提交的时候在.gitignore中加上composer.phar**

㈡ “openstack”自动化部署有哪些工具

Fuel比较值得推荐
这是Mirantis出品的部署安装工具,2013年10月份,推出他的3.2版本,让人很震撼,基本算是把Openstack所有的部署都web化,你可以太多的选择:尤其是网络,存储。这基本都是大家学习的榜样。已经敢和企业签订SLA。
目前国内杜玉杰,九州云,在做该项目的汉化工作和考虑日后的技术支持。

Devstack
这应该算是Openstack最早的安装脚本,他是通过直接git源码,进行安装,目的是让开发者可以快速搭建一个环境。目前这套脚本可以在Ubuntu和Fedora下跑的很好。
如果你想了解新版本的功能,通过Devstack是一个最佳选择。我第一次成功安装Openstack,就是用这个。
Diablo安装脚本
这算是我知道的第一个基于ubuntu 源的安装脚本,当时Diablo发布的时候,有bug,keystone和Horizon无法一起工作,ubuntu 11.10源里的包也是有相同的bug,并且Ubuntu 官方并不打算维护和升级。这位作者个人身份,维护了Diablo 版本后来的升级,打包,并且写了一套脚本。

这套脚本,其实写的非常好,我同事改造了一下,就可以安装Essex版本。目前正在改进,用来安装Folsom版本。
Stackops
Openstack起步的时候,官方的安装文档,其实基本都是来自Stackops,当时他们提供Openstack的部署服务。你下载一个iso,装完一个ubuntu系统后,就会转到他们的web,你填写相关的配置参数,通过chef进行部署。
Stackops在Chef上是比较强悍的,包括Dell的Crowbar,也是和他合作,才搞定Chef。不过我的理解,他的Chef 脚本是没有开源的。
Stackops通过商业定制,进行收费。目前感觉有点走下坡路,业内的声音比较小了。对openstack的新版本支持比较慢,Essex支持,到9月份才支持。目前还没有任何关于Folsom 的支持。
Crowbar
在Openstack上,Dell是有点郁闷,中国的那句老话,起个大早,赶个晚集。Openstack刚发布的时候,Dell就号称要做一个工具部署,不过毕竟是硬件公司,对软件还是比较外行。
Dell的Crowbar,是一个iso,装完后,你可以在web界面进行Openstack的部署,底下其实也是使用Chef。集成了Nagios监控,安装OS是dell自己开发的,有点创新。
以前Dell的Crowbar一个大的特色就是可以远程设置机器的Raid和Bios,这是从Dell,我才知道可以这样做。不过也正因为这个特色,导致厂商绑定,还有Dell自己如何定位Crowbar,当初还想搞一个商业的版本,结果后来放弃。
Crowbar目前的开发,其实应该是遇到问题,任何做部署工具的,应该都是一个很好的失败的案例。后续的发展,维护,更新都是问题。

Maas+Juju
这是Canonical推出的部署工具,可以用在Openstack的部署,类似Puppet,Chef 的部署工具。Maas是用于安装ubuntu,juju是用于部署应用。

㈢ maven怎样自动构建非maven的web项目

公司之前做了一个中等的web项目,之前没有自动化构建和部署,现在要实现一套自动化(自动化测试,自动化构建,自动化部署)任务,目前比较急的就是自动化构建和部署 然后就在网上查找相关资料,发现svn+maven+hudson+cargo可实现自动化构建和发布,而且在青蕃茄上还借了一本《maven实战》的书参考,但发现构建传统的web项目必须是maven本身的web结构,而且我本身项目已经把所有的jar包都下载好了,就不需要maven再配置仓库依赖包了 我的项目(hudson从svn构建下来一样的结构)结构如下:引用项目名+src+com.xxx.xxx +com.xxx.xxx+config+properties+xxx.xml+WebRoot+WEB-INF+web.xml+jscss+index.jsp怎样利用maven构建这样的web项目并打成war包?如果maven不能做到,ant是否可选?问题补充:估计不行,因为这个项目是团队开发,如果现在改成maven项目,其它团队成员对maven也不会用,之后问题会更艰巨,我只想把web项目打包成war就ok了,至于用什么技术我无所谓的 实在不行你可以建一个新的maven项目,然后把那些目录复制过去也可以

㈣ 怎样来实现对web集群的自动化部署

docker目前很火

㈤ git 自动化部署到web服务器的文件只有rw权限 ,不能执行,如何解决

chmod,然后git status会看到模式改变,添加提交,以后下来就是有执行权限的了

㈥ java maven项目跟web项目区别

区别如下:

一,Web项目是网页的编码,像jsp,servlet,struts这类的。但是java maven项目的话,是AWT,SWING这类的编码。

二,Web项目中是tomcat来触发的,但是java maven项目里是Main来开始的。

三,Web项目需要服务器,java maven项目则不需要。

Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。

由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。

(6)web项目自动化部署扩展阅读:

Maven常用命令:

mvn archetype:generate 创建Maven项目

mvn compile 编译源代码

mvn deploy 发布项目

mvn test-compile 编译测试源代码

mvn test 运行应用程序中的单元测试

mvn site 生成项目相关信息的网站

mvn clean 清除项目目录中的生成结果

mvn package 根据项目生成的jar

mvn install 在本地Repository中安装jar

mvn eclipse:eclipse 生成eclipse项目文件

mvnjetty:run 启动jetty服务

mvntomcat:run 启动tomcat服务

参考资料:网络:Maven



㈦ 如何利用git webhooks 实现网站代码自动化部署

公钥有两个:1. git用户公钥,2. 部署公钥:
git用户公钥

1
2
3

ssh-keygen -t rsa -C "[email protected]"
# 然后一直回车就行
# 生成的文件通常是 /root/.ssh/id_rsa,如果非root用户请查看提示上的路径

部署公钥
sudo -Hu www ssh-keygen -t rsa # 请选择 “no passphrase”,一直回车下去
2. 准备钩子文件
创建和修改目录权限:

1
2

mkdir /home/wwwroot/website.com/hook
chown -R www:www /home/wwwroot/website.com/hook

写入钩子文件:

1

sudo -Hu www touch /home/wwwroot/website.com/hook/index.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

<?php

error_reporting(1);

$target = '/home/wwwroot/website.com'; // 生产环境web目录

$token = '您在coding填写的hook令牌';
$wwwUser = 'www';
$wwwGroup = 'www';

$json = json_decode(file_get_contents('php://input'), true);

if (empty($json['token']) || $json['token'] !== $token) {
exit('error request');
}
$repo = $json['repository']['name'];

$cmd = "sudo -Hu www cd $target && git pull";

shell_exec($cmd);
确保你的hook文件可以访问:http://example.com/hook/index.php,钩子准备完成。
3.修改git配置和保存git用户名密码

sudo -Hu www git config --global credential.helper store # 永久保存
sudo -Hu www git config --global user.name "Bantes"
sudo -Hu www git config --global user.email "[email protected]" # 邮箱请与conding
在Coding网站
1.添加用户公钥
复制/root/.ssh/id_rsa.pub内容到个人设置页的SSH公钥里添加即可

㈧ Python的web项目如何进行动态重载和热部署

真正意义上的代码热部署应该是类似erlang那样的,将代码更新到节点后不停服务,不断连接的自动应用新代码。auto reload什么的还是会造成业务瞬间中断。我感觉是可以从wsgi容器级别上实现,比如更新代码后检测到文件变更,然后通知容器创建新的wsgi application的实例,之后所有新的请求都发送到新的wdgi application实例上。等旧wsgi application实例的最后一个请求返回后就将其回收掉。不过貌似没有看到类似的实现

㈨ 发布 和安装部署的区别

以Java Web项目的构建过程来解释这个区别,Web软件项目一般都有相似的开发过程:编码,编译,打包,发布、部署和测试,这个过程可由相应的构建工具自动化(Ant,Maven)。
发布指的是对于软件厂商而言,将软件产品上传到远程服务器供用户安装部署,软件产品可以是jar,war,exe,tar.gz等,对于不同的软件产品安装部署的方式也不一样,比如发布war包,就不需要用户去安装了,只需要用户部署到Web容器里面就可以使用了,像一些C项目,发布tar.gz包,用户在自己的机器上还得编译安装

㈩ 怎样搭建web项目测试环境

测试环境的搭建是一名合格QA必须具备的技能。下面,结合CI和CD两种不同软件生产实践,总结一下如何从零开始部署一套web集成测试环境。
1.服务器准备。根据项目和使用的中间件的规模,准备好一个或多个资源配置能够满足要求的服务器,一般选用linux下 centos的某个发行版作为服务器。
2.安装数据库、完成数据库表的建立。这里以开源的mysql为例。
Yum方式安装msyql,并启动mysql服务。(Yum的安装可以参考http://blog.csdn.net/iamhuanggua/article/details/60140867)
yuminstall -y mysql-server mysql mysql-devel
创建数据库和建表。规范的的系统,一般都保留有现成的SQL脚本,执行脚本就可以完成数据库和表的建立。
3.安装和配置JDK、tomcat、nginx…
安装JDK。Yum 方式安装最新版JDK:yum install JDK。
安装tomcat。官网下载tomcat,解压。
wget http://apache.fayea.com/tomcat/tomcat-7/v7.0.75/bin/apache-tomcat-7.0.75-linux-x64.zip
安装和配置 nginx。官网下载nginx,解压后,修改conf/nginx.conf配置请求转发规则。
4.安装持续集成工具jenkins.
Jenkins就是一个web服务,只需要从官方下载jenkins的war包,部署到web容器tomcat的webapp目录下,启动tomcat服务,就可以在浏览器端输入IP和端口号(例如:部署在本机上可以通过 localhost:8080/jenkins 进行访问)使用了。
5.配置一个Jenkins job用于编译、打包产品、部署到测试环境
5.1 配置job完成编译和打包。编译打包的Jenkinsjob的配置比较简单,可以自行网络。
5.2 在部署web服务的机器上,找一个目录,写一个shell脚本,拷贝jenkins job打出来的包到web服务器的部署目录下,并重启服务。如果部署jenkins 和部署web服务的机器不是同一台,需要通过用户名密码或者建立linux机器之间的信任关系后,通过scp远程拷贝。
5.3 在5.1的job中,增加“构建后操作”,构建后执行(或远程执行)5.2中编写的sh脚本。
6.配置一个或多个Jenkins job 用来完成一系列测试(包括但不限于UI自动化、接口自动化、安全测试等)
测试job的构建方式选择步骤五中配置的job完成后触发。到此为此,持续集成的工作就完成了。
7.从CI到CD——配置一个Jenkins ob 完成生产环境部署
如果所在组织的持续集成能力较高,在实施持续部署(Continous Deployment),就还需要配置一个jenkins job在所有测试job都通过后触发部署生产包到生产环境。部分用户群较大的产品还需要配置灰度发布。