瓦力安裝之灰度發布
在這裏稍微總結一下上周主要完成的任務:
0、什麽是瓦力
1、環境介紹
2、安裝瓦力
3、瓦力安裝中遇到的問題
4、二次修改瓦力,實現灰度發布流程
一、什麽是瓦力
Walle 是一個web部署系統工具,配置簡單、功能完善、界面流暢、開箱即用!支持git、svn版本管理,支持各種web代碼發布。
二、環境介紹
系統環境:CentOS6.5-A CentOS-6.5-B
軟件支持:walle ssh php-7.1 composer nginx git3.1 Mysql5.6
內網能夠訪問虛擬機ip,檢測
1、開啟客戶端telnet
2、重新開一個cmd
在命令行中輸入:telnet 192.168.217.129 80 (192.168.217.129 是虛擬機的ip,通過ifconfig 查看獲得)
虛擬機內關閉防火墻:chkconfig iptables on
查看一下防火墻狀態:service iptables status
在瀏覽器中訪問虛擬機中配置的 IP or 虛擬域名
如此可見網絡配置沒有問題了,下面繼續安裝軟件
三、安裝相關軟件Composer,Curl, Git
安裝Curl:百度一堆
安裝Composer:
1、wget https://getcomposer.org/installer
2、安裝完之後
3、執行 php installer ; 完了之後會多了一個文件composer.phar
4、將這個文件放到bin目錄下:mv composer.phar /usr/local/bin/composer
5、然後composer -V
到此Composer 就按照完畢了。
安裝git: https://www.cnblogs.com/lhbryant/p/6928894.html
四、安裝瓦力
官網:http://www.walle-web.io/docs/installation.html
安裝瓦力:git clone [email protected]:meolu/walle-web.git
安裝vendor: composer install
要將vendor/bower-asset 將 bower-asset 改成 bower
檢測config 目錄中是否有缺少文件
修改數據庫連接
修改發送郵件配置
修改語言包:‘language‘ => ‘zh-CN‘,
修改 cookieValidationKey
‘request‘ => [ ‘cookieValidationKey‘ => ‘true‘, ],
修改入口文件的debug
然後在URL中訪問項目配置域名;
五、安裝遇到的問題
1、php.ini要啟用exec函數,這裏要開啟好幾個函數,都在disable_function = ‘*******‘中
2、修改runtime文件的權限,打開的時候會提示錯誤
3、web/ 目錄下建立一個靜態文件夾 assets
通過一系列的修改總有可以訪問walle 項目了,目前達到正常訪問,註冊,發送郵件流程;
六、管理員-配置項目
介紹幾個關鍵詞:
1、宿主機: 自己的虛擬機項目的根目錄
2、目標機器:就是將本虛擬機上的代碼 部署到 遠程的另外一臺或者多臺服務器上,當然,它們的路徑是一樣的。(灰度 相關參數是後期我加的)
3、高級任務:是部署代碼的同時做的相應處理比如刷新,重啟之類的操作。這裏測試我沒有具體使用
七、發布測試
通過上面的配置,我們可以開始第一個測試發布代碼,目標是將虛擬機上的代碼部署到另外一臺服務器上。
首先要實現2點:
要知道我們在訪問另外一臺服務器的時候要知道另外一臺服務器的ip 和密碼,或者端口號
為了發布代碼的時候不采用這種方式訪問另外一臺服務器,我們就要使用無密碼登錄的流程實現訪問。那怎麽做到這一點呢?
答:1、先將宿主機上的ssh-key 加到目標服務器上,實現免密登錄
2、將github上面的某一項目的deploy_key 加上1上面的ssh-key
創建信任ssk
1、給www用戶修改可執行權限
查看當前虛擬機的php-fpm的使用者:ps aux |grep php-
由此可見root 的默認使用的用戶是www
查看www的權限: vim /etc/passwd (並將 nologin 改為 bash, 只有這樣才有權限修改另外一臺服務器的文件) 保存並退出;
2、切換用戶:su - www
cd ~ [www@localhost ~]$ ssh-keygen -t rsa -C ‘‘ //生成ssh [www@localhost ~]$ cd .ssh [www@localhost .ssh]$ ls id_rsa id_rsa.pub known_hosts [www@localhost .ssh]$ cat id_rsa.pub //查看ssh-key
3、復制ssh-key 並且訪問另外一臺服務器,將ssh-key 放到另外一臺服務器的authorized_keys文件中
訪問另外一臺服務器:[www@localhost .ssh]$ ssh 用戶@111.11.20.11 -p 5888
回車輸入密碼;
如果另外一臺機器上沒有ssh,則需要在另外一臺機器上重新建立一下ssh-keygen -t rsa -C “ ” 然後會生成兩個文件,並不會生成authorized_keys文件;
這個時候我可能想把本地的key 加入到另外一臺authorized_keys中,那怎麽辦呢?
這個時候需要在自己的客戶端執行一下 ssh-copy-id work用戶@111.11.20.11 -p 5888, 這個時候另外一臺就有了這個文件authorized_keys,並且自己的key也在裏面了
(上面這句就相當於 scp id_rsa.pub [email protected]:~/authorized.keys 建議不使用這句)
4、然後將通過 ssh 用戶@ip -p 端口 去訪問另外一臺服務器,可見回車後就不需要登錄密碼了,即可訪問另外一臺服務器。則以上操作完成。
5、將github上面的某一項目的deploy_key 加上ssh-key ,則一切搞定。
到此為止,項目配置中的githut的地址添加完成,宿主機的項目目錄配置完成,目標機器的ssh-key 也放入進去後,則可以隨便增加或者修改目標機器。一切工作準備好以後則執行測試;
具體可以查看這個文檔:http://www.walle-web.io/docs/git-configuration.html
八、灰度
瓦力安裝之灰度發布