① 如何在Ubuntu上搭建Cloud Foundry網站運行環境
Step1 Ubuntu系統更新:
1.$ sudo apt-get update
2.$ sudo apt-get upgrade
3.$ sudo apt-get dist-upgrade
4.$ sudo reboot
Step2 安裝curl 和 git。curl 用於數據傳輸,git用於版本管理
1.$ sudo apt-get install curl
2.$ sudo apt-get install git-core
Step3 為git配置用戶名和電郵。須與在 https://github.com/ 上的用戶名及注冊郵箱一致。替換紅色內容,保留引號。
1.$ git config --global user.name "YOUR_USER_NAME"
2.$ git config --global user.email "YOUR_USER_NAME"
(可用以下命令檢查配置是否正確: $ git config -l)
Step4 生成SSH公鑰 (參考 https://help.github.com/articles/generating-ssh-keys )。該公鑰確保在本機與Github間建立安全連接
1.$ ssh-keygen -t rsa -C "YOUR_USER_NAME"
會提示設置一個passphrase。這個passphrase用於每次建立ssh連接時進行身份驗證,不必與Github帳戶的密碼相同,但一定不能遺忘,否則將不能建立ssh連接。
2.$ cat ~/.ssh/id_rsa.pub
復制id_rsa.pub文件內容(即剛才所生成的SSH公鑰),登陸 Github 網站並進入Account Settings->SSH Keys->Add SSH Key ,粘貼至Key 區域。
要確保復制內容與公鑰的文字完全一致,即使多復制一個空格或空行都有可能出問題。也可按照參考鏈接https://help.github.com/articles/generating-ssh-keys中的方法使用 xclip。
3.測試能否成功建立ssh連接
$ ssh -T [email protected]
會彈出一個提示框,要求輸入密碼。輸入上面所設定的passphrase即可。
正確輸入passphrase後,若在終端窗口中看到"Hi YOUR_USER_NAME! You've successfully authenticated, but GitHub does not provide shell access.",說明一切正常,可以從github上`git clone`代碼了。(這是我自己的測試過程,與Github參考鏈接中稍有出入)
Setp5 安裝ruby:
1.安裝RVM(Ruby Version Manager)並添加環境變數
$ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
$ nano ~/.bashrc
在末尾添加新行: [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
$ source .bashrc
(重新載入.bashrc以使改變生效)
$ type rvm |head -1
(若提示"rvm is a function",說明rvm已正確安裝)
2.安裝ruby所需的依賴包
$ sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev libtool
$ sudo apt-get install libcurl3 libcurl3-gnutls libcurl4-openssl-dev
3.使用rvm安裝ruby1.9.2,並將其作為默認的ruby版本
$ rvm install 1.9.2
$ rvm --default use 1.9.2
4.安裝rails
$ gem install rails
至此,ruby環境已安裝就緒。為了在本地運行Cloud Foundry網站,還需進行以下准備工作。
Step6 使用gerrit:
1. 分別注冊並登陸 reviews.cloudfoundry.org 和 http://cloudfoundry-codereview.qa.mozycloud.com/gerrit/#q,4708,n,z 。前者是開源的代碼庫,而後者只對內部開放。
在 Settings->Profile 中設定Username,在 Settings->Contact Information 中單擊 Register New Email 添加新電郵地址,Username和新電郵地址均與Step3中一致。在SSH Public Keys 中添加Step4中生成的公鑰,添加方法同Step4(2)。
2. 安裝gerrit輔助腳本。用於優化gerrit使用中的一些小問題。
$ gem install gerrit-cli
3. 獲取tools代碼庫並為其添加環境變數 (~/.bashrc文件)。
$ git clone [email protected]:vmware-ac/tools.git
添加tools環境變數。 Example: PATH=$HOME/tools/gerrit:$HOME/local/node/bin:/usr/local/mysql/bin..
4. 獲取cloudfoundry-website代碼(非public)。將紅色區域替換為你自己的用戶名。代碼將保存在~/cloudfoundry-websites
$ gerrit-clone ssh://[email protected]:29418/cloudfoundry-websites
Step7 安裝並配置redis。cloudfoundry網站運行需要調用redis庫。
1.下載並安裝
$ cd /tmp
$ wget http://redis.googlecode.com/files/redis-2.2.4.tar.gz
$ tar -zxf redis-2.2.4.tar.gz
$ cd redis-2.2.4
$ make
$ sudo make install
2.配置初始化腳本:
$ wget https://github.com/ijonas/dotfiles/raw/master/etc/init.d/redis-server
$ wget https://github.com/ijonas/dotfiles/raw/master/etc/redis.conf
$ sudo mv redis-server /etc/init.d/redis-server
$ sudo chmod +x /etc/init.d/redis-server
$ sudo mv redis.conf /etc/redis.conf
3.初始化用戶和日誌路徑
$ sudo useradd redis
$ sudo mkdir -p /var/lib/redis
$ sudo mkdir -p /var/log/redis
$ sudo chown redis.redis /var/lib/redis
$ sudo chown redis.redis /var/log/redis
4.啟動redis server (每次運行cloudfoundry網站前都需要運行redis server)
$ sudo /etc/init.d/redis-server start
Step8 在本地運行Cloud Foundry 網站。redis server必須處於運行狀態中。(參考 $HOME/cloudfoundry-websites/www/README.md 文件)
1.$ cd ~/cloudfoundry-websites/www
第一次進入此路徑,終端窗口會提示:
Gemset 'developers' does not exist, 'rvm gemset create developers' first, or append '--create'.
運行 $ rvm gemset create developers,然後離開並重新進入~/cloudfoundry-websites/www
2.$ bundle install
3.$ ruby website.rb
4.打開瀏覽器,輸入網址 127.0.0.1:4567
這樣就可以看到運行於本機的Cloud Foundry 英文版網站首頁了。如果想在本地運行中文版網站,只需將www改為cn重復Step8即可。
② 如何在Linux上部署gerrit 服務
1、安裝ubuntu的時候可選包要選擇上openSSH,如果沒有選擇的話,系統安裝完成後手工安裝openSSH服務;
2、(挪至第7步)
3、安裝java 運行環境,大概需要100M的內容:sudo apt-get install openjdk-6-jre-headless
4、安裝郵件服務:postfixsudo apt-get install postfix
注意,安裝過程中會提示輸入主機名,gemfield此處輸入的是 domain_name。
5、安裝git服務sudo aptitude install git-core git-doc
6、創建gerrit用戶:
sudo adser gerrit
sudo su gerrit
cd ~
7、下載gerrit包,這次編輯時gerrit的版本是2.8.0(最新版本)
gerrit@CivilNet:~$ wget http://gerrit-releases.storage.googleapis.com/gerrit-2.8.war
--2014-01-15 10:30:33-- http://gerrit-releases.storage.googleapis.com/gerrit-2.8.war
Resolving gerrit-releases.storage.googleapis.com (gerrit-releases.storage.googleapis.com)... 74.125.128.132, 2404:6800:4005:c00::84
Connecting to gerrit-releases.storage.googleapis.com (gerrit-releases.storage.googleapis.com) 74.125.128.132 :80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 35675319 (34M) [binary/octet-stream]
Saving to: `gerrit-2.8.war'
100%[======================================================================================================================================================>] 35,675,319 10.6M/s in 3.4s
2014-01-15 10:30:37 (10.1 MB/s) - `gerrit-2.8.war' saved [35675319/35675319]
8、安裝gerrit:
java -jar gerrit-2.8.war init -d review_site
9、安裝過程中會出現互動式的提問,除非gemfield本文明確指定,否則都是默認值。Create 『/home/gerrit/review_site』 [Y/n]? y
Location of Git repositories [git]: 回車
Database server type [H2/?]: 回車
Authentication method [OPENID/?]: http 回車
SMTP server hostname [localhost]: 回車
SMTP server port [(default)]: 回車
SMTP encryption [NONE/?]: 回車
SMTP username : gemfield
gemfield』s password:
confirm password:
Run as [gerrit]:回車
Java runtime [/usr/lib/jvm/java-6-openjdk/jre]: 回車
Copy gerrit.war to /home/gerrit/review_site/bin/gerrit.war [Y/n]:y
Listen on address [*]: 回車
Listen on port [29418]: 回車
Gerrit Code Review is not shipped with Bouncy Castle Crypto v144If available, Gerrit can take advantage of featuresin the library, but will also function without it.Download and install it now [Y/n]? y
Behind reverse proxy [y/N]? y
Use SSL (https://) [y/N]? y
Listen on address [*]: 回車
Listen on port [8080]: 回車
Canonical URL [http://*:8080/]: http://domain_name/code/ 回車
10、配置完上面的步驟後,gerrit服務會自動啟動。以後可以使用如下命令手工啟動:/home/gerrit/review_site/bin/gerrit.sh start
11、通過如下步驟設置gerrit服務開機自啟動:
sudo ln -snf /home/gerrit/review_site/bin/gerrit.sh /etc/init.d/gerrit.sh
so ln -snf /etc/init.d/gerrit.sh /etc/rc2.d/S90gerrit
so ln -snf /etc/init.d/gerrit.sh /etc/rc3.d/S90gerrit
服務自動啟動腳本/etc/init.d/gerrit.sh需要通過/etc/default/gerritcodereview文件來提供一些配置。該文件的內容為:
GERRIT_SITE=/home/gerrit/review_site
NO_START=0
12、配置apache的反向代理:
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost on
Order deny,allow
Allow from all
ProxyPass /code/ http://domain_name:8080/
AuthType Basic
AuthName "CivilNet Code Review"
Require valid-user
AuthUserFile /home/gerrit/review_site/etc/gerrit.password
13、添加http認證用戶(e.g. gemfield):
htpasswd -m /home/gerrit/review_site/etc/gerrit.password gemfield
New password:
Re-type new password:
14、可以通過瀏覽器訪問 http://domain_name/code/ 來使用gerrit了。
15、第一個注冊的人就是管理員哦,比如gemfield。
16、現在你也可以去 /home/gerrit/review_site/etc/gerrit.config文件中查看剛才的配置內容了。
補充:這樣配置好的gerrit默認只有管理員有許可權創建工程,這有點不方便,可以通過下面的方式更改。在 /home/gerrit/review_site/etc/gerrit.config文件中添加以下內容:
[repository "*"]
createGroup = Administrators
createGroup = Registered Users
ownerGroup = Registered Users
經過gemfield的上述步驟,gerrit服務就成功部署起來了,但是怎樣在gerrit服務上工作,還得看gemfield的下一篇文章:《使用gerrit服務》
備註:在gerrit2.1版本時本文內容由Gemfield25.0 首先發布於CivilNet Blog. 在gerrit 2.5版本時有所更新。 現在最新的版本是gerrit 2.8 。
③ 安裝完gerrit前一定要安裝apache嗎
1、安裝ubuntu的時候可選包要選擇上openSSH,如果沒有選擇的話,系統安裝完成後手工安裝openSSH服務;
2、(挪至第7步)
3、安裝java 運行環境,大概需要100M的內容:
1
sudo apt-get install openjdk-6-jre-headless
4、安裝郵件服務:
1
postfixsudo apt-get install postfix
注意,安裝過程中會提示輸入主機名,gemfield此處輸入的是 civilnet.cn。
5、安裝git服務
1
sudo aptitude install git-core git-doc
6、創建gerrit用戶:
1
2
3
sudo adser gerrit
sudo su gerrit
cd ~
7、下載gerrit包,這次編輯時gerrit的版本是2.8.0(最新版本)
8、安裝gerrit:
1
java -jar gerrit-2.8.war init -d review_site
9、安裝過程中會出現互動式的提問,除非gemfield本文明確指定,否則都是默認值。
10、配置完上面的步驟後,gerrit服務會自動啟動。以後可以使用如下命令手工啟動:/home/gerrit/review_site/bin/gerrit.sh start
11、通過如下步驟設置gerrit服務開機自啟動:
1
2
3
sudo ln -snf /home/gerrit/review_site/bin/gerrit.sh /etc/init.d/gerrit.sh
so ln -snf /etc/init.d/gerrit.sh /etc/rc2.d/S90gerrit
so ln -snf /etc/init.d/gerrit.sh /etc/rc3.d/S90gerrit
服務自動啟動腳本/etc/init.d/gerrit.sh需要通過/etc/default/gerritcodereview文件來提供一些配置。該文件的內容為:
GERRIT_SITE=/home/gerrit/review_site
NO_START=0
④ 如何在Linux上部署gerrit 服務
1、安裝ubuntu的時候可選包要選擇上openSSH,如果沒有選擇的話,系統安裝完成後手工安裝openSSH服務;
2、(挪至第7步)
3、安裝java 運行環境,大概需要100M的內容:
sudoapt-getinstallopenjdk-6-jre-headless
4、安裝郵件服務:
postfixsudoapt-getinstallpostfix
注意,安裝過程中會提示輸入主機名,gemfield此處輸入的是 civilnet.cn。
5、安裝git服務
sudoaptitudeinstallgit-coregit-doc
6、創建gerrit用戶:
sudoadsergerrit
sudosugerrit
cd~
7、下載gerrit包,這次編輯時gerrit的版本是2.8.0(最新版本)
8、安裝gerrit:
java-jargerrit-2.8.warinit-dreview_site
9、安裝過程中會出現互動式的提問,除非gemfield本文明確指定,否則都是默認值。
10、配置完上面的步驟後,gerrit服務會自動啟動。以後可以使用如下命令手工啟動:/home/gerrit/review_site/bin/gerrit.sh start
11、通過如下步驟設置gerrit服務開機自啟動:
sudoln-snf/home/gerrit/review_site/bin/gerrit.sh/etc/init.d/gerrit.sh
soln-snf/etc/init.d/gerrit.sh/etc/rc2.d/S90gerrit
soln-snf/etc/init.d/gerrit.sh/etc/rc3.d/S90gerrit
服務自動啟動腳本/etc/init.d/gerrit.sh需要通過/etc/default/gerritcodereview文件來提供一些配置。該文件的內容為:
GERRIT_SITE=/home/gerrit/review_site
NO_START=0
12、配置apache的反向代理:
ProxyRequestsOff
ProxyViaOff
ProxyPreserveHoston
Orderdeny,allow
Allowfromall
ProxyPass/code/http://civilnet.cn:8080/
AuthTypeBasic
AuthName"CivilNetCodeReview"
Requirevalid-user
AuthUserFile/home/gerrit/review_site/etc/gerrit.password
13、添加http認證用戶(e.g. gemfield):
htpasswd-m/home/gerrit/review_site/etc/gerrit.passwordgemfield
Newpassword:
Re-typenewpassword:
14、可以通過瀏覽器訪問 http://civilnet.cn/code/ 來使用gerrit了。
15、第一個注冊的人就是管理員哦,比如gemfield。
16、現在你也可以去 /home/gerrit/review_site/etc/gerrit.config文件中查看剛才的配置內容了。
⑤ 如何在新打git tag入庫後自動觸發Jenkins任務
jenkins配置:
1,源碼管理(Git):
Refspec:+refs/tags/*:refs/remotes/origin/tags/*
Branch Specifier (blank for 'any'):**
2,構建觸發器:
Poll
SCM:打勾勾,但是什麼都不要填
伺服器端部署:
方法有三:
1,git hook
在伺服器端部署post-receive hook,內容如下:
[python] view plain print?
curl [jenkins address]/git/notifyCommit?url=[git clone address]
不需要許可權,所以不用加用戶名密碼,就可以生效了~
2,gerrit hook
如果使用了gerrit的話,git伺服器端的hook就不能用了,所以需要找能替代git post-receive的hook,這里可以用ref-updated(注意不是ref-update),內容同上,位置:review_site/hooks
3,gerrit trigger
這里使用的是ref-updated,但是branch哪裡不知如何寫,試了之後比較亂,分支更新也都觸發了,故沒有用。
⑥ gerrit 配置怎麼沒有顯示gitclone地址
1、首先生成ssh密鑰
ssh-keygen -t rsa -C your_email
2、上傳公鑰
登錄到gerrit後,點擊右上角setting,然後點擊」SSH Public Keys」,把自己的公鑰復制到文本域中
3、登錄gerrit綁定郵箱,在setting的Contact Information中
4、關閉當前命令行,重新打開一個bash進行用戶名和郵箱的配置
[plain] view plain
git config --global user.name your_name
git config --global user.email your_email
5、從遠端克隆項目到本地
[plain] view plain
git clone ssh://[email protected]:29418/ghostlpx
6、復制gerrit提供的鉤子腳本,在每次提交時都會生成change-id
[plain] view plain
scp -p -P 29418 [email protected]:hooks/commit-msg .git/hooks/
備註:當執行Git add 「file」添加到暫存器,然後執行git commit提交到本地庫的時候,git需要在commit的時候在日誌中寫入一個唯一標識提交的SHA-1值,即Change-Id值。git commit時會調用commit-msg腳本檢查提交信息,以便在git push的時候能正常推送到遠程庫。此時調用默認目錄下的commit-msg鉤子腳本,默認目錄為「.git/hooks/commit-msg」。如果此目錄下無commit-msg腳本,則commit時提交日誌中無ChangeId信息,則在git push的時候出錯,無法正常將改動上傳到遠程伺服器。