
1. 基本业务代码实现 (业务面webserver管理面deployserver)
webserver
package main
import (
"io"
"net/http"
)
func firstPage(w http.ResponseWriter, r *http.Request) {
io.WriteString(w,"<h1>Hello, 彭琳琳!</h1>")
}
func main() {
http.HandleFunc("/",firstPage)
http.ListenAndServe(":8000",nil)
}
编译 生成 linux平台可运行的 可执行文件
env GOOS=linux GOARCH=amd64 go build
webserver
package main
import (
"io"
"log"
"net/http"
"os/exec"
)
func reLaunch() {
cmd := exec.Command("sh","./deploy.sh")
err := cmd.Start()
if err != nil {
log.Fatal(err)
}
err = cmd.Wait()
}
func firstPage(w http.ResponseWriter, r *http.Request) {
io.WriteString(w,"<h1>Hello,this is my deploy server!</h1>")
reLaunch()
}
func main() {
http.HandleFunc("/",firstPage)
http.ListenAndServe(":8080",nil)
}
env GOOS=linux GOARCH=amd64 go build
2. 代码的编译构建打包以及简单的DevOps自动化
shell脚本
deploy.sh
#! /bin/sh
kill -9 $(pgrep webserver)
cd ~/go_duke_linux/newweb
git pull https://github.com/TechDataCenter/newweb.git
cd webserver/
./webserver &
cp newweb/deployserver/deployserver deployserver
cp newweb/deploy.sh deploy.sh
github webhooks
一旦newweb 代码有提交就会 访问 http://39.105.102.24:8080/
触发 deploy.sh脚本

3. 利用阿里云完成网站的部署和监控


当监控到 服务异常时:
会通知到 相关监控组人员。

网友评论