91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Walle 瓦力 安裝部署

發布時間:2020-07-10 09:51:20 來源:網絡 閱讀:2673 作者:我不是九爺 欄目:云計算

Walle 瓦力 安裝部署

http://www.walle-web.io/docs/ 瓦力官網


Walle 一個web部署系統工具,配置簡單、功能完善、界面流暢、開箱即用!支持git、svn版本管理,支持各種web代碼發布,PHP,Python,JAVA等代碼的發布、回滾,可以通過web來一鍵完成。

功能列表

  • 用戶分身份注冊、登錄

  • 開發者發起上線任務申請、部署

  • 管理者審核上線任務

  • 支持多項目部署

  • 支持多項目多任務并行

  • 快速回滾

  • 項目的用戶權限管理

  • 部署前準備任務pre-deploy(前置檢查)

  • 代碼檢出后處理任務post-deploy(如vendor)

  • 同步后更新軟鏈前置任務pre-release

  • 發布完畢后收尾任務post-release(如重啟)

  • 執行sql構建(不要擔心忘記測試環境sql同步)

  • 線上文件指紋確認

  • 支持git、svn版本管理

原理分析    

宿主機、目標機群、操作用戶關系如下圖所示,宿主機(walle所在的機器),是一個中間機器,是代碼托管與遠程目標機群的紐帶。

所以宿主機需要與代碼托管(github/gitlab)和遠程目標機群都建立ssh-key信任。


Walle 瓦力 安裝部署

上線流程圖

Walle 瓦力 安裝部署

依賴       

  • Bash(git、ssh)

    • 意味著不支持win、mac的zsh

  • LNMP/LAMP(php5.4+)

    • php需要開啟pdo_mysql,exec函數執行

  • Composer

    • 如果國內環境安裝極慢,可以直接下載vendor解壓到項目根目錄

  • ansible

安裝

1、宿主機安裝 ansible

yum install ansible # RHEL/CentOS/Fedora

apt-get install ansible # Debian/Ubuntu

emerge -avt ansible  # Gentoo/Funtoo

pip install ansible # will also install  paramiko PyYAML jinja2

2、宿主機無需其他配置,兼容 ~/.ssh/config 名稱、證書配置

3、目標機無需額外配置

walle

  1. 項目配置 中 開啟Ansible

  2. (可選) config/params.php 配置 ansible_hosts 文件存放路徑

  3. 按正常流程發布、上線代碼,傳輸文件、遠程執行命令均會通過ansible并發執行

php5.6環境CentOS安裝

刪除老的安裝包

remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64 php-mbstring.x86_64 php-mcrypt.x86_64 php-mysql.x86_64 php-pdo.x86_64```


  • CentOs 6.x
     rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
     CentOs 7.X
     rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm


    - 安裝php 5.6相關組件

       ```yum install php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64
  • 安裝php-fpm 5.6

    yum install php56w-fpm

安裝部署 Walle      

1.簡潔安裝指南

git clone git@github.com:meolu/walle-web.git
cd walle-web
vi config/web.php # 設置mysql連接
composer install  # 如果缺少bower-asset的話, 先安裝:composer global require "fxp/composer-asset-plugin:*"
./yii walle/setup   # 初始化項目
配置nginx/apache的webroot指向walle-web/web

2.最最最詳細安裝指南

以下安裝,均在宿主機(一臺配置了LAMP/LNMP的linux機器,并且安裝git/svn)上操作,如有問題,詳見Q&A。

如果還沒有安裝php 5.4+環境的,請先安裝php5.4+,詳情看php 5.6安裝。

1.代碼檢出

mkdir -p /data/www/walle-web && cd /data/www/walle-web  # 新建目錄
git clone git@github.com:meolu/walle-web.git .          # 代碼檢出

2.設置mysql連接

vi config/local.php +14
'db' => [
   'dsn'       => 'mysql:host=127.0.0.1;dbname=walle', # 新建數據庫walle
   'username'  => 'username',                          # 連接的用戶名
   'password'  => 'password',                          # 連接的密碼
],

3.安裝composer,如果已安裝跳過

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer                # PATH目錄

4.安裝vendor

cd walle-web
composer install --prefer-dist --no-dev --optimize-autoloader -vvvv

安裝速度慢或失敗,可直接下載vendor解壓到項目根目錄

5.初始化項目

cd walle-web
./yii walle/setup # 需要你的yes

6.配置nginx

凡是在第7步刷新頁面看到50x均是前5步安裝不完整,自行檢查

凡是在第7步刷新頁面看到404均是nginx配置不當,自行檢查

nginx簡單配置

server {
   listen       80;
   server_name  walle.compony.com; # 改你的host
   root /the/dir/of/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;
   }
}

7.恭喜:)

訪問地址:localhost

當然,可能你配置nginx時的server_name是walle.company.com時,配置本地hosts之后,直接訪問:walle.company.com亦可。

安裝錯誤       

composer安裝速度慢

好吧,我已經猜到會有人問有沒有現成的,有! 下載百度網盤,解壓vendor放到walle-web根目錄即可。

第一次使用composer可能會出現的問題:1 沒有添加git的token

Could not fetch https://api.github.com/repos/jquery/jquery, please create a GitHub OAuth token to go over the API rate limit
Head to https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+localhost+2015-10-08+1123
to retrieve a token. It will be stored in “/root/.composer/auth.json” for future use by Composer.
Token (hidden):

解決辦法:

  • 復制提示里的地址到瀏覽器,點擊生成git token,如上面的:https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+localhost+2015-10-08+1123

  • 復制token到命令行,認證,繼續

第一次使用composer可能會出現的問題:2 composer install 可能會出現的錯誤

Loading composer repositories with package information
Installing dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

Problem 1

  • yiisoft/yii2 2.0.x-dev requires bower-asset/jquery 2.1.@stable | 1.11.@stable -> no matching package found.
    ….

解決辦法composer global require "fxp/composer-asset-plugin:*"

如何添加用戶key到git的ssh-keys列表

su - www           # 假如www為你的php進程用戶
ssh-keygen -t rsa     # 如果你都沒有生成過rsa_key的話
cat ~/.ssh/id_rsa.pub  # 復制
打開github/gitlab添加到你的ssh-keys或者deploy-keys里

如何添加用戶ssh-key到目標機群部署用戶ssh-key信任

宿主機操作

ps aux|grep php         # 假如www_php為你的php進程用戶
su - www_php           # 切換用戶
ssh-keygen -t rsa        # 如果你都沒有生成過rsa_key的話,如果有則跳過
ssh-copy-id -i ~/.ssh/id_rsa.pub www_remote@remote_host  # 加入目標機群信任,需要輸入www_remote密碼

初始化walle時失敗:could not find driver

缺少pdo擴展,解決辦法:添加pdo擴展

ubuntu
apt-get install php5 php5-fpm php5-mysql

或者在源碼包里編譯
cd php-src/ext/pdo_mysql
phpize
./configure --with-php-config=/php/install/dir/bin/php-config
make && make install
vi php.ini # 添加pdo_mysql.so
restart php-fpm

7.nginx簡單配置

server {
   listen       80;
   server_name  walle.company.com; # 改你的host
   root /the/dir/of/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;
   }
}

切換用戶(www)時:this account is currently not available

cat /etc/passwd | grep www # 查看是否為 /sbin/nolgin

解決辦法:

vipw /etc/passwd 修改/sbin/nolgin為/bin/bash

The file or directory to be published does not exists: /data/www/walle-web/vendor/bower/jquery/dist

新建此目錄即可:/data/www/walle-web/vendor/bower/jquery/dist

Call to undefined function yii\web\mb_parse_str()

缺少mbstring擴展,安裝mbstring擴展重啟php即可。mbstring擴展:http://php.net/manual/zh/mbstring.installation.php

Git項目配置      

git 項目配置指南

git部署是最推薦的方式,它無論對于何種語言都是合適的。

一、基本要求:

  1. 宿主機php進程用戶www_php(假如,可通過配置的檢測查看或ps aux|grep php)的ssh-key要加入git/gitlab的deploy-keys。當然也可以http地址帶用戶名密碼(不推薦):https://username:password@github.com/meolu/walle-web.git

  2. 宿主機php進程用戶www_php(假如,可通過配置的檢測查看或ps aux|grep php)要加入目標機群部署用戶www_remote(配置中)ssh-key信任,具體怎么添加可找sa或者百度或者,這一般是用戶最不理解的地方,建議先花半小時理解linux用戶概念和php配置。

二、配置項目

Walle 瓦力 安裝部署
Walle 瓦力 安裝部署

三、檢測項目配置

配置完畢之后,先檢測下,如無問題則可以發起上線單了:)
Walle 瓦力 安裝部署

四、檢測的錯誤和解決辦法

  • 宿主機代碼檢出檢測出錯,請確認php進程用戶{user}有代碼存儲倉庫{path}讀寫權限,且把ssh-key加入git的deploy-keys列表。詳細錯誤:{error}

    • 問題:請確認php進程用戶{user}有代碼存儲倉庫{path}讀寫權限

      沒有權限,是因為用戶{user}對目錄{path}沒有讀寫權限,給權限即可
      ll {path}
      chown {user} -R {path}
      chmod 755 -R {path}
    • 問題:把ssh-key加入git的deploy-keys列表

      su {user} && cat ~/.ssh/id_rsa.pub
      打開 github/gitlab/bitbucket 網站, 添加 ssh-key 到ssh-keys列表

Walle 瓦力 安裝部署可能的原因之一是clone git代碼的時候,需要手工確認: git clone git@gitlab.xxx.com:yyy/zzz.git
Walle 瓦力 安裝部署
Walle 瓦力 安裝部署

目標機器部署出錯,請確認php進程{local_user}用戶ssh-key加入目標機器的{remote_user}用戶ssh-key信任列表,且{remote_user}有目標機器發布版本庫{path}寫入權限。詳細錯誤:{error}

  • 問題:請確認php進程{local_user}用戶ssh-key加入目標機器的{remote_user}用戶ssh-key信任列表

    添加機器信任,還是沒理解請百度吧(因為太多的同學問這問題,實在沒辦法只能這么啰嗦)
    su {local_user} && ssh-copy-id -i ~/.ssh/id_rsa.pub remote_user@remote_server
    # need remote_user's password
  • 問題:{remote_user}有目標機器發布版本庫{path}寫入權限

    su remote_user
    ll {path}
    chown {remote_user} -R {path}
    chmod 755 -R {path}

Svn項目配置      

svn 項目配置

svn部署上線與git有點不太一樣,svn是推薦增量發布(當然也可以全量更新),在開發者提交文件列表(可能帶版本號),管理員審核上線單。發起部署時,為該上線單開辟一個獨立空間,檢出代碼,選擇上線單中的文件(可能帶版本號)同步到目標機群。有不了解宿主機和目標機群關系、上線流程的同學先到項目主頁了解。

因為svn沒有git的版本快照,所以在部署需要全量代碼編譯操作時,只能選擇全量更新,此時要求發布的分支/tag/trunk是可發布狀態。建議java + git組合。同理其它需要全量代碼在宿主機做編譯相關的操作的語言,且為svn版本管理,請慎用。

一、基本要求:

  1. svn目錄推薦以下規范,詳細可以注冊riouxsvn,作為svn測試地址。當然三無(無trunk、無branches、無tags)也是支持:)

    • branches

    • tags

    • trunk

  2. 宿主機php進程用戶www_php(假如,可通過配置的檢測查看或ps aux|grep php)要加入目標機群部署用戶www_remote(配置中)ssh-key信任,具體怎么添加可找sa或者百度或者,這一般是用戶最不理解的地方,建議先花半小時理解linux用戶概念和php配置。

二、配置項目

Walle 瓦力 安裝部署
Walle 瓦力 安裝部署

三、檢測項目配置

配置完畢之后,先檢測下,如無問題則可以發起上線單了:)
Walle 瓦力 安裝部署

四、檢測的錯誤和解決辦法

  • 宿主機代碼檢出檢測出錯,請確認php進程用戶{user}有代碼存儲倉庫{path}讀寫權限。詳細錯誤:{error}

    沒有權限,是因為用戶{user}對目錄{path}沒有讀寫權限,給權限即可
    ll {path}
    chown {user} -R {path}
    chmod 755 -R {path}
  • 目標機器部署出錯,請確認php進程{local_user}用戶ssh-key加入目標機器的{remote_user}用戶ssh-key信任列表,且{remote_user}有目標機器發布版本庫{path}寫入權限。詳細錯誤:{error}

    • 問題:請確認php進程{local_user}用戶ssh-key加入目標機器的{remote_user}用戶ssh-key信任列表

      添加機器信任,還是沒理解請百度吧(因為太多的同學問這問題,實在沒辦法只能這么啰嗦)
      su {local_user} && ssh-copy-id -i ~/.ssh/id_rsa.pub remote_user@remote_server
      # need remote_user's password
    • 問題:{remote_user}有目標機器發布版本庫{path}寫入權限

      su remote_user
      ll {path}
      chown {remote_user} -R {path}
      chmod 755 -R {path}

高級任務配置      

高級任務方便用戶自定義一些操作,無論是在代碼檢出前后,還是切換版本前后。

一、java配置實例


pre_deploy任務

echo pre_deploy >> /tmp/cmd        # 初始化一些東西,自由發揮

post_deploy任務

mvn package -Dmaven.test.skip=true # 編譯java
mvn clean                          # 打掃
mv WEB-INF/config.Properties.test WEB-INF/config.Properties # 切換環境相應的配置
rm -rf src                         # 甚至刪除無用代碼

pre_release任務

./xx.sh stop                       # 暫停服務

post_release任務

./xx.sh start                      # 啟動服務

二、如果我想執行sudo命令?


想執行sudo命令的前提是用戶有root權限,要執行哪些命令?

  • 添加用戶到sudoers

    visudo
    www    ALL=(ALL)       ALL
  • 添加免密碼命令

    visudo
    www ALL = (ALL) NOPASSWD: /usr/local/nginx/bin/nginx
  • 設置用戶的tty(宿主機執行sudo需要此步,目標機可以跳過此步)

    Defaults:www    !requiretty

項目用戶配置      

角色分為管理員(注冊可選)、開發者(注冊可選)、項目審核管理員(前面二者均可是)。

1.管理員

注冊時,選擇角色為管理員,注冊后郵件驗證,但此時也不是立刻擁有管理員權限,需要其它管理員審核通過才行。
Walle 瓦力 安裝部署
Walle 瓦力 安裝部署

管理員的權限列表

  • 配置新的項目、修改自己的項目配置

  • 審核新管理員

  • 設置項目的成員、項目審核管理員

  • 審核上線單

  • 上線

2.項目審核管理員

注冊時無此用戶角色,為管理員為減輕自己審核上線單壓力、防止管理員不在線而影響上線而需要一兩個代理審核管理員。但不能編輯項目配置,也不能添加項目成員,只比開發者多一個審核上線單的權限。

管理員的權限列表

  • 審核上線單

  • 上線

Walle 瓦力 安裝部署
Walle 瓦力 安裝部署

3.開發者

普通開發者可提交上線單,上線部署

管理員的權限列表

檢測錯誤     

  • 宿主機代碼檢出檢測出錯,請確認php進程用戶{user}有代碼存儲倉庫{path}讀寫權限,且把ssh-key加入git的deploy-keys列表。詳細錯誤:{error}

    • 問題:請確認php進程用戶{user}有代碼存儲倉庫{path}讀寫權限

      沒有權限,是因為用戶{user}對目錄{path}沒有讀寫權限,給權限即可
      ll {path}
      chown {user} -R {path}
      chmod 755 -R {path}
    • 問題:把ssh-key加入git的deploy-keys列表

      su {user} && cat ~/.ssh/id_rsa.pub
      打開 github/gitlab/bitbucket 網站, 添加 ssh-key 到ssh-keys列表
  • 目標機器部署出錯,請確認php進程{local_user}用戶ssh-key加入目標機器的{remote_user}用戶ssh-key信任列表,且{remote_user}有目標機器發布版本庫{path}寫入權限。詳細錯誤:{error}

    • 問題:請確認php進程{local_user}用戶ssh-key加入目標機器的{remote_user}用戶ssh-key信任列表

      添加機器信任,還是沒理解請百度吧(因為太多的同學問這問題,實在沒辦法只能這么啰嗦)
      su {local_user} && ssh-copy-id -i ~/.ssh/id_rsa.pub remote_user@remote_server
      # need remote_user's password
      # 為什么我把{local_user}的ssh-key加到遠程機器的{remote_user}下的~/.ssh/authorized_keys還是不能免密碼登錄
      # 免密碼登錄需要遠程機器權限滿足以下三個條件:
        /home/{remote_user} 755
        ~/.ssh 700
        ~/.ssh/authorized_keys 644 或 600
    • 問題:{remote_user}有目標機器發布版本庫{path}寫入權限

      su remote_user
      ll {path}
      chown {remote_user} -R {path}
      chmod 755 -R {path}

提交上線單          

上線單包括兩種方式:gitsvn

一、git 項目提交上線單

Walle 瓦力 安裝部署

二、svn 項目提交上線單

svn上線單與git類似,但有些區別,會有全量上線和增量上線兩種主要形式,增量上線支持指定文件的版本號。分別看下可以有哪些格式填寫上線單:

  • 上線全量文件

    *
  • 增量上線指定文件

    file_name1
    file_name2
  • 增量上線指定文件的指定版本

    file_name1 commit_id
    file_name2 commit_id

Walle 瓦力 安裝部署

部署出錯          

1.上線至全量更新服務器時出錯:mv -fT

原因分析:更新目標機群是以軟鏈方式來更新webroot,如果提前在目標機群創建了webroot目錄,軟鏈覆蓋將會失敗。

解決辦法:直接刪除目標機群webroot目錄,確定其父目錄有讀寫的權限即可,由瓦力系統生成webroot軟鏈接。

2.上線出錯,想知道到底發生了什么事情

有些錯誤walle捕捉不到,默認操作日志在/tmp/walle/下,具體可在config/local.phplog.dir配置路徑,tail著日志,部署看日志。

3./tmp/walle下無日志文件

原因centos 7 yum 安裝的php-fpm默認/tmp目錄不可寫:/usr/lib/systemd/system/php-fpm.service 中的 PrivateTmp=true 禁止了向tmp目錄寫日志

解決:

vi /usr/lib/systemd/system/php-fpm.service
PrivateTmp=false

systemctl daemon-reload
systemctl reload php-fpm

致此瓦力已經部署成功!如有任何問題可聯系博主或者登錄官網查看詳情。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

扶沟县| 佛教| 琼结县| 盘锦市| 南部县| 呈贡县| 吉木萨尔县| 平顶山市| 象州县| 如皋市| 阳原县| 湘阴县| 双城市| 邵阳县| 阿拉善盟| 共和县| 成安县| 诸城市| 浠水县| 同江市| 绥宁县| 萨嘎县| 花莲市| 湖口县| 孟津县| 社旗县| 株洲县| 开阳县| 随州市| 苍南县| 新竹县| 邻水| 兴国县| 和静县| 资源县| 卢湾区| 安西县| 建阳市| 沿河| 潜山县| 东乌|