Vue2.0从环境搭建开始

Vue2.0从环境搭建开始

MacBook环境搭建

Vue2.0 推荐开发环境

  • Homebrew
  • Node.js
  • npm
  • webpack
  • vue-cli

安装brew

1
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
1
2
3
➜  ~ brew -v
Homebrew >1.1.0 (no git repository)
Homebrew/homebrew-core (no git repository)

安装nodejs

1
brew install nodejs

安装npm

1
npm install npm
1
2
➜  ~ npm -v
3.10.3

获取nodejs模块安装目录访问权限

1
sudo chmod -R 777 /usr/local/lib/node_modules/

安装淘宝镜像

1
npm install -g cnpm --registry=https://registry.npm.taobao.org

安装webpack

1
cnpm install webpack -g

安装vue脚手架

1
npm install vue-cli -g

创建项目

1
2
mkdir vue
cd vue

初始化项目

1
2
vue init webpack-simple vue-test
cd vue-test

安装项目依赖

1
npm install

安装vue路由模块和网络请求模块

1
cnpm install vue-router vue-resource

启动项目

1
2
3
4
5
6
7
8
9
➜  vue-test npm run dev

> vue-test@1.0.0 dev /Users/huangjie/vue/vue-test
> cross-env NODE_ENV=development webpack-dev-server --open --inline --hot

keywords if/then/else require v5 option
Project is running at http://localhost:8080/
webpack output is served from /dist/
404s will fallback to /index.html

项目启动成功后,可以看到首页

项目启动后的首页

应用容器化及DevOps流程实践

应用容器化及持续集成持续部署实践

说明

  • 应用基于playframework开发框架开发
  • 使用git/stash管理版本

目标

  • 将应用容器化打包
  • 使用Jenkins配置持续集成持续交付流程
  • 并自动的发布到容器云平台

环境准备

  • 首先准备三台Centos7的虚机
主机名 IP 运行服务
T-cicd-01 10.2.36.39 DCE-Contoller
T-cicd-02 10.2.36.40 DCE-node1,jenkins-master
T-cicd-03 10.2.36.41 DCE-node2,jenkins-slave

将play的运行环境打包成容器

  • 在T-cici-03上,build用户下

  • JDK1.7 play1.2.5
  • 使用自己创建的rpm包

  • 编写dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
FROM centos:7

# Setup Java Environment
ADD jdk1.7.0_79 /usr/local/

# Add play framework
COPY play-1.2.5-xxb.el6.x86_64.rpm /tmp/

RUN rpm -ivh /tmp/play-1.2.5-xxb.el6.x86_64.rpm

# Set ENVs
RUN ln -s /opt/play/play/play /usr/local/bin/play
  • docker打包
1
2
3
docker build -t sufe/play:jdk7 .
docker tag sufe/play:jdk7 10.2.36.39/sufe/play-jdk7:latest
docker push 10.2.36.39/sufe/play-jdk7:latest
1
2
3
4
5
6
7
8
9
10
11
12
13
[build@T-cicd-03 play-base-image]$ docker images
REPOSITORY                       TAG                 IMAGE ID            CREATED             SIZE
10.2.36.39/sufe/sanzhu           latest              3d067f4c3db2        41 hours ago        759 MB
sufe/sanzhu                      test                3d067f4c3db2        41 hours ago        759 MB
10.2.36.39/sufe/play-jdk7        latest              81f351165aad        2 days ago          676.3 MB
sufe/play                        jdk7                81f351165aad        2 days ago          676.3 MB
daocloud.io/daocloud/dce-agent   1.4.0               d21211f327ad        4 weeks ago         227.2 MB
daocloud.io/daocloud/dce         1.4.0               574d587fd399        4 weeks ago         27.32 MB
daocloud.io/daocloud/dce         latest              574d587fd399        4 weeks ago         27.32 MB
daocloud.io/daocloud/dce-lb      1.4.0               6d6fca0b522e        4 weeks ago         65.98 MB
daocloud.io/jenkins              latest              19b1ef41dab5        6 weeks ago         714.5 MB
centos                           7                   980e0e4c79ec        7 weeks ago         196.7 MB
centos                           latest              980e0e4c79ec        7 weeks ago         196.7 MB

Jenkins配置CICD流程

  • 创建一个任务SANZHU-Manager
  • 创建三个子任务,test-env-compile-job,test-env-deploy-sanzhu-job,test-env-regression-test-job

项目管理任务

编译与构建镜像

编译与构建镜像

编译与构建镜像

编译与构建镜像

部署到容器云

部署到容器云

部署到容器云

回归测试

执行任务看看效果

应用交付

应用交付

应用交付

linux开机延迟启动服务

linux开机延迟启动服务

在开机启动服务的时候,服务之间有依赖关系,必须在某个服务完全启动后才能启动其他的服务。在这种情况下,可以用到服务延迟启动的功能。 具体步骤如下:

  1. 写一个实现延时启动的脚本myscript,在第一行加入延迟内容(myscript记得+x权限)
1
2
sleep 180   # 延时启动3分钟
......
  1. 修改文件/etc/rc.local
1
nohup /path/to/myscript &

注意如果需要延时启动的程序已经做成自启动服务,需要取消掉

1
chkconfig  xxx off
CentOS升级openssh至最新版

CentOS升级openssh至最新版

1
2
3
4
5
6
7
8
9
10
11
12
mv /etc/ssh /etc/ssh.bak
yum -y install gcc* make perl pam pam-devel zlib zlib-devel openssl-devel
wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.1p1.tar.gz
tar zxvf openssh-7.1p1.tar.gz
cd openssh-7.1p1
yum -y remove systemtap-client git openssh
vi version.h
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords
make && make install && make clean
cp contrib/redhat/sshd.init /etc/init.d/sshd
chkconfig --add sshd
service sshd start
1
2
ssh -V
OpenSSH_7.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013

编辑/etc/ssh/sshd_config添加以下内容

1
PermitRootLogin yes

重启

1
service sshd restart
Centos7模板的vmtools问题

Centos7模板的vmtools问题

Centos7由于自身问题,不能直接使用vmtools安装包

安装open-vm-tools

1
yum install open-vm-tools

1
http://packages.vmware.com/tools/keys
下载
1
VMware Packaging Public Keys

import pub key

1
2
rpm -import /tmp/VMWARE-PACKAGING-GPG-DSA-KEY.pub
rpm -import /tmp/VMWARE-PACKAGING-GPG-RSA-KEY.pub

编辑 /etc/yum.repos.d/vmware-tools.repo

1
2
3
4
5
[vmware-tools]
name = VMware Tools
baseurl = http://packages.vmware.com/packages/rhel7/x86_64/
enabled = 1
gpgcheck = 1

安装open-vm-tools-deploypkg

1
2
yum install open-vm-tools-deploypkg
systemctl restart vmtoolsd

###修改系统版本信息

1
rm -f /etc/redhat-release && touch /etc/redhat-release && echo "Red Hat Enterprise Linux Server release 7.0 (Maipo)" > /etc/redhat-release