walle自动化部署

一、部署环境php

cd /usr/local/srcmysql

wget --no-check-certificate https://api.sinas3.com/v1/SAE_lnmp/soft/lnmp1.2-full.tar.gznginx

tar zxvf lnmp1.2-full.tar.gzgit

cd lnmp1.2-fullgithub

./install.sh lnmpweb

二、git与github经过ssh-key认证(方可clone)sql

设置git的user name和email数据库

git config --global user.name "qq4311949";ubuntu

git config --global user.email "260591808@qq.com";api

cd ~/.ssh

ssh-keygen -t rsa -C "qq4311949"

按3个回车,密码为空

最后获得了两个文件:id_rsa和id_rsa.pub

在github上添加ssh密钥,这要添加的是“id_rsa.pub”里面的公钥

打开https://github.com/settings/ssh ,登录qq4311949,而后添加ssh

三、安装walle-web

cd /home/wwwroot/default

git clone git@github.com:meolu/walle-web.git

cd walle-web

vi config/local.php +14

'db' => [    

   'dsn'      => 'mysql:host=127.0.0.1;dbname=walle',     # 新建数据库walle    

   'username'  => 'username',                       # 链接的用户名    

   'password'  => 'password',                       # 链接的密码

],

安装vendor

下载百度云资源,只找到这种方法

wget -c --referer=http://pan.baidu.com/s/1c0wiuyc -O vendor.tgz "http://lx.cdn.baidupcs.com/file/6807c02bb7a8cd68d170ebb08c41e01e?bkt=p3-14006807c02bb7a8cd68d170ebb08c41e01e52a852010000002a644f&xcode=853628eb666ba31fb12e86997c76bef645e0a99531bcf4b6ed03e924080ece4b&fid=1998902510-250528-381466102786301&time=1455874570&sign=FDTAXGERLBH-DCb740ccc5511e5e8fedcff06b081203-L2BTGTsJmmAATuf66ZbpvVJcZ2o%3D&to=lc&fm=Nan,B,U,nc&sta_dx=3&sta_cs=10&sta_ft=tgz&sta_ct=5&fm2=Nanjing02,B,U,nc&newver=1&newfm=1&secfm=1&flow_ver=3&pkey=14006807c02bb7a8cd68d170ebb08c41e01e52a852010000002a644f&sl=72351822&expires=8h&rt=sh&r=512292022&mlogid=1153459173969396250&vuk=1259209467&vbdid=2529669036&fin=vendor.tgz&fn=vendor.tgz&slt=pm&uta=0&rtype=1&iv=0&isw=0&dp-logid=1153459173969396250&dp-callid=0.1.1"

初始化项目

mysql -uroot -p

password:

create database walle;

exit;

./yii walle/setup

配置nginx

vi /usr/local/nginx/conf/nginx.conf

root /home/wwwroot/default/walle-web/web

index index.php

vi /usr/local/nginx/conf/enable-php.conf

location /

{

    try_files $uri $uri/ /index.php$is_args$args;

}

四、配置git项目
walle能够和gitlab/github完美结合,固然svn也是同样支持,题主的是gitlab,须要作的只有一个ssh-key认证,下面先了解背景,问题天然就出答案了。题主贴的问题是walle项目配置后检测的结果,主要反映了两个方面的问题:宿主机和目标机。宿主机是一个关联全部目标机、gitlab/github的中枢机器,以下图:


若是把宿主机的php进程用户(个人是www)的ssh-key添加到gitlab/github、全部目标机群,配置就完成了90%。


如何添加?添加ssh-key信任的基本教程
先了解下几个术语:
宿主机:walle服务安装所在的机器
目标机:代码要分发到的机群
ssh-key信任:可免密码登陆,一个机器的一个用户与一个机器的一个用户经过ssh-key来创建信任(通常为RSA)

  1. 确认宿主机的php进程用户:

ps aux|grep php-fpm


2. 获取宿主机的php进程用户php-user(个人是www)的ssh-key

su - php-user
cat ~/.ssh/id_rsa.pub

php-user设置为no-login?先取消no-login,添加完ssh-key认证后再设置为no-login
若是su www时,报错This account is currently not available.

cat /etc/passwd|grep www

www:x:502:502::/home/www:/sbin/nologin

/sbin/nologin->/bin/bash

配置完成以后/bin/bash->/sbin/nologin

3. 把2中的ssh-key复制,粘贴到gitlab的ssh-key列表中,而且加入全部目标机群指定用户(题主的为:ubuntu,假定默认为www)的~/.ssh/authorized_keys中

4. 自行测试3是否完成经过

git clone ssh-git-url # 测试宿主机与gitlab是否添加信任
ssh www@12.34.56.78   # 测试宿主机与目标机12.34.56.78是否添加信任

上面1-4如无问题,便可快速配置一个项目,并检测项目可用性。若是出现如下问题则多是由于ssh-key信任没添加好。

正式解答题主的问题

宿主机代码检出检测出错,请确认php进程用户ubuntu有代码存储仓库/project/deploydata/sanjieke读写权限,而且把ssh-key加入git的deploy-keys列表。

若是是目录权限不对,给目录一个ubuntu用户读写权限

chown -R ubuntu /project/deploydata/sanjieke
chmod -R 755 /project/deploydata/sanjieke

若是是没有添加ubuntu的ssk-key添加到gitlab的ssh-key列表,则按上述1-4添加ssh-key后从新检测。

目标机器部署出错,请确认php进程ubuntu用户ssh-key加入目标机器的ubuntu用户ssh-key信任列表,且ubuntu有目标机器发布版本库/project/sanjieke写入权限。

一样,目标机上ubuntu对/project/sanjieke目录有读写权限,而且宿主机的ubuntu已经添加ssh-key信任到目标机127.0.0.1的ubuntu下,能够免密码登陆。可按上述1-4添加ssh-key后从新检测。

相关文章
相关标签/搜索