代码部署工具walle(一)
一、概述
代码部署上线、权限控制、一键版本回滚,github地址:https://github.com/meolu/walle-web
walle是基于php语言做的,所以需要一个php的安装环境。
二、部署
1)准备环境
centos7.2、php7.11、php-fpm7.11、nginx-1.12、mysql、composer、vendor、ansible
官方要求php5.6+
安装php7.11、php-fpm7.11:
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# yum install -y mod_php71w php71w-cli php71w-common php71w-gd php71w-mbstring php71w-mcrypt php71w-mysqlnd php71w-xml php71w-fpm
安装mysql:
#yum -y install mariadb mariadb-server
安装nginx:
#yum -y install nginx
安装ansible
#yum -y install ansible
安装walle-web:
# mkdir -p /data/www/
#cd /data/www
#git clone https://github.com/meolu/walle-web.git .
修改配置文件:
#cd /data/www/walle-web/config
#cp local.php local.php.ori
#cat local.php
<?php
// Uncomment to enable debug mode. Recommended for development.
defined('YII_DEBUG') or define('YII_DEBUG', false);
// Uncomment to enable dev environment. Recommended for development
defined('YII_ENV') or define('YII_ENV', 'prod');
if (empty($_ENV)) {
$_ENV = $_SERVER;
foreach ($_ENV as $key => $value) {
if (strpos($key, '_PASS')) {
$_ENV[$key] = base64_decode($value);
if ($_ENV[$key] === false) {
$_ENV[$key] = $value;
}
}
}
}
return [
'components' => [
'db' => [
'dsn' => isset($_ENV['WALLE_DB_DSN']) ? $_ENV['WALLE_DB_DSN'] : 'mysql:host=127.0.0.1;dbname=walle',
'username' => isset($_ENV['WALLE_DB_USER']) ? $_ENV['WALLE_DB_USER'] : 'root',
'password' => isset($_ENV['WALLE_DB_PASS']) ? $_ENV['WALLE_DB_PASS'] : 'walle',
],
'mail' => [
'transport' => [
'host' => isset($_ENV['WALLE_MAIL_HOST']) ? $_ENV['WALLE_MAIL_HOST'] : 'smtp.exmail.qq.com', # smtp 发件地址
'username' => isset($_ENV['WALLE_MAIL_USER']) ? $_ENV['WALLE_MAIL_USER'] : 'ci@app.com', # smtp 发件用户名
'password' => isset($_ENV['WALLE_MAIL_PASS']) ? $_ENV['WALLE_MAIL_PASS'] : '123', # smtp 发件人的密码
'port' => isset($_ENV['WALLE_MAIL_PORT']) ? $_ENV['WALLE_MAIL_PORT'] : 25, # smtp 端口
'encryption' => isset($_ENV['WALLE_MAIL_ENCRYPTION']) ? $_ENV['WALLE_MAIL_ENCRYPTION'] : 'tls', # smtp 协议
],
'messageConfig' => [
'charset' => 'UTF-8',
'from' => [
(isset($_ENV['WALLE_MAIL_EMAIL']) ? $_ENV['WALLE_MAIL_EMAIL'] : 'ci@app.com') => (isset($_ENV['WALLE_MAIL_NAME']) ? $_ENV['WALLE_MAIL_NAME'] : '火球科技'),
], # smtp 发件用户名(须与mail.transport.username一致)
],
],
'request' => [
'cookieValidationKey' => 'PdXWDAfV5-gPJJWRar5sEN71DN0JcDRV',
],
],
'language' => isset($_ENV['WALLE_LANGUAGE']) ? $_ENV['WALLE_LANGUAGE'] : 'zh-CN', // zh-CN => 中文, en => English
];
#cat params.php
<?php
/**
* 亲,为方便大家,已经把必须修改为自己配置的选项已经带上*****了
* 此配置为测试配置,如果你不想消息泄露,请尽快修改为自己的邮箱smtp
*/
return [
'user.passwordResetTokenExpire' => 3600,
'user.emailConfirmationTokenExpire' => 43200, // 5 days有效
// 头像图片后缀
'user.avatar.extension' => [
'jpg',
'png',
'jpeg',
],
// *******操作日志目录*******
'log.dir' => isset($_ENV['WALLE_LOG_PATH']) ? $_ENV['WALLE_LOG_PATH'] : '/tmp/walle/',
// *******Ansible Hosts 主机列表目录*******
'ansible_hosts.dir' => isset($_ENV['WALLE_ANSIBLE_HOSTS_DIR']) ? $_ENV['WALLE_ANSIBLE_HOSTS_DIR'] : realpath(__DIR__ . '/../runtime') . '/ansible_hosts/',
// *******指定公司邮箱后缀*******
'mail-suffix' => [
'app.com', # 支持多个
],
'user_driver' => 'local',
'ldap' => [
'host' => '127.0.0.1',
'port' => 389,
'username' => 'cn=root,dc=example,dc=com',
'password' => 'password',
'accountBase' => 'dc=example,dc=com',
'accountPattern' => '(&(objectClass=inetOrgPerson)(cn=${username}))',
'identity' => 'uid',
'attributesMap' => [
'uid' => 'username',
'mail' => 'email',
'givenName' => 'realname',
],
'ssl' => false,
],
];
安装composer:
# curl -sS https://getcomposer.org/installer | php
#mv composer.phar /usr/local/bin/composer
安装vendor:
# cd walle-web
# composer install --prefer-dist --no-dev --optimize-autoloader -vvvv
服务初始化:
#cd walle-web
#./yii walle/setup
输入yes
配置nginx:
server {
listen 80;
server_name walle.compony.com; # 改你的host
root /data/www/walle-web/web; # 根目录为web
index index.php; # 建议放内网
# allow 192.168.0.0/24;
# deny all; location / {
try_files $uri $uri/ /index.php$is_args$args;
} location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
启动服务:
#systemctl start mariadb
#mysql_secure_installation
设置密码
#mysql -uroot -p
创建数据库walle
>create database if not exists walle default charset utf8 collate utf8_general_ci;
#nginx
#php-fpm
#!建议只允许内网访问。
配置外网的nginx代理:
server {
listen 80;
client_max_body_size 204800m;
client_body_timeout 300000000s;
send_timeout 3000000000s;
server_name walle.www.com;
location / {
proxy_pass http://10.10.2.9;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
}
访问:
1、如果是在内网:walle.compony.com
2、nginx代理:walle.www.com
默认有两个用户:
admin:用户名密码都是admin 管理员用户
demo:用户名密码都是demo 普通用户
三、用户注册与权限
注册的时候有两种权限:管理员、开发者
如果注册管理员的话,注册完成后并不具备管理员的权限,需要先用admin登录,授权以后才真正有管理员的权限。注册使用邮箱注册,注册时会收到一封确认的邮件,只有确认后用户才有效。
登录和注册界面:
管理员授权界面:
新建项目界面:
四、FQA
1、注册用户的时候如果长时间没有确认,邮件就会失效,怎么办?
以管理员的身份登入--->用户列表--->操作 ,有一个重发邮件的按钮,点击一下就可以了。
2、如果忘记了管理员的账号或管理员不在?没有确认邮件,导致超时,想重新注册,但是提示该邮箱已经存在?
可以直接联系管理员,如果管理员不在,可以直接连上mysql数据库,将该条用户记录删掉。就可以重新注册了。
#mysql -uroot -p
>use walle;
>show tables;
+-----------------+
| Tables_in_walle |
+-----------------+
| group |
| migration |
| project |
| record |
| session |
| task |
| user |
+-----------------+
>select * from user \G;
找到对应邮箱的用户id,进行删除,例如:id 为3, 邮箱admin@xxxx.com
>delete from user where id=3;
代码部署工具walle(一)的更多相关文章
- Syncd-开源自动化部署工具
官网地址:https://gitee.com/dreamans/syncd/issues syncd是一款开源的代码部署工具,它具有简单.高效.易用等特点,可以提高团队的工作效率. 目前只支持类Lin ...
- 新浪代码部署手册 git管理工具
目前新浪云上的应用支持通过Git和SVN来部署代码. Git仓库地址 https://git.sinacloud.com/YOUR_APP_NAME SVN仓库地址 https://svn.sinac ...
- NPM 使用介绍(包管理工具,解决NodeJS代码部署上的很多问题)
引用地址:http://www.runoob.com/nodejs/nodejs-npm.html NPM 使用介绍 NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问 ...
- 代码质量管理工具 sonar 配置
代码检查工具有很多findBugs等等 sonar配置: 1.下载sonar 5.5, 解压,运行 sonarqube-5.5\bin\windows-x86-64\StartSonar.bat , ...
- OpenStack部署工具总结
目前感觉比较简单直观的部署工具有RDO.devstack.Fuel等: 1. RDO https://openstack.redhat.com/Quickstart REDHAT出品,支持Redhat ...
- Capistrano初探--Ruby快速部署工具
1.Capistrano介绍 是什么?---一种部署工具.(部署就是在生产服务器上安装应用程序,或是更新最新版本:web服务器的启动重启与停止:使网站进入维护状态或将其恢复为常态) 在进行 Rails ...
- Android 代码检查工具SonarQube
http://blog.csdn.net/rain_butterfly/article/details/42170601 代码检查工具能帮我们检查一些隐藏的bug,代码检查工具中sonar是比较好的一 ...
- Capsule:开源的 JVM 应用部署工具
[编者按]本文作者 Ron Pressler 是 Parallel Universe 公司的创始人,拥有着丰富的高性能开发经验.通过这篇文章,Ron 向大家详细介绍了全新的开源 JVM 部署工具--C ...
- Openstack部署工具
Openstack发展很猛,很多朋友都很认同,2013年,会很好的解决OpenStack部署的问题,让安装,配置变得更加简单易用. 很多公司都投入人力去做这个,新浪也计划做一个Openstack的is ...
随机推荐
- JVM虚拟机-类加载器子系统
转自博客:http://www.cnblogs.com/muffe/p/3541189.html 还有一些自己补充的知识点 一.类加载器基本概念 顾名思义,类加载器(class loader)用来 ...
- linux 下载文件
工作流程 1.tar pczvf file.tar.gz file 2.sz file.tar.gz:下载. 3.rm -i file.tar.gz: 删除.
- CentOS 7.0 Firewall防火墙配置
启动停止 获取firewall状态 systemctl status firewalld.service firewall-cmd --state 开启停止防火墙 开机启动:systemctl ena ...
- INDEX--从数据存放的角度看索引2
在上次<INDEX--从数据存放的角度看索引>中,我们说到"唯一非聚集索引"和“非唯一非聚集索引”在存储上有一个明显的差别:唯一非聚集索引的非叶子节点上不会包含RID的 ...
- Centos 7 安装 PostgreSQL PGAdmin4
本文只讲PostgreSQL在CentOS 7.x 下的安装,其他系统请查看:https://www.postgresql.org/download PostgreSQL 所用版本为:PostgreS ...
- 常用Java集合类总结
此文已由作者赵计刚授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 7.1.List(允许重复元素) ArrayList: 底层数据结构:Object[] 在查询(get).遍 ...
- 下拉框select中option居中样式
下拉框select中option居中样式 text-align:center;text-align-last:center;
- es6新增Math方法
Math.trunc() 用于去除一个数的小数部分,只返回整数部分 Math.trunc(4.1) // 4 Math.trunc(4.9) // 4 Math.trunc(-4.1) // -4 ...
- mysql日期时间函数使用总结
获取函数 mysql默认的时间格式: yyyy-MM-dd 或者 yyyy-MM-dd HH:mm:ss 1. Date() 返回日期部分, date('2018-02-14 17:03:04') ...
- Android常用布局属性解析 -- Layout_weight
Layout_weight是Android开发中一个比较常用的布局属性,在面试中也经常被问到.下面通过实例彻底搞懂Layout_weight的用法. 先看下面的布局代码: <?xml versi ...