天天看點

Centos7下部署本地的gitlab(CE版本)

1)操作步驟(基本參照官方文檔https://about.gitlab.com/downloads/#centos7)

<code>[root@localhost ~]</code><code># sudo yum install curl policycoreutils openssh-server openssh-client</code>

<code>s -y</code>

<code>[root@localhost ~]</code><code># sudo systemctl enable sshd</code>

<code>[root@localhost ~]</code><code># sudo systemctl start sshd</code>

<code>[root@localhost ~]</code><code># sudo yum install postfix</code>

<code>[root@localhost ~]</code><code># sudo systemctl enable postfix</code>

<code>[root@localhost ~]</code><code># sudo systemctl start postfix</code>

<code>[root@localhost ~]</code><code># sudo firewall-cmd --permanent --add-service=http</code>

<code>success</code>

<code>[root@localhost ~]</code><code># sudo systemctl reload firewalld</code>

<code>[root@localhost ~]</code><code># curl -sS https://packages.gitlab.com/install/repositories/gitlab/gi</code>

<code>tlab-ce</code><code>/script</code><code>.rpm.sh | </code><code>sudo</code> <code>bash</code>

<code>[root@localhost ~]</code><code># sudo yum install gitlab-ce  </code>

<code>[root@localhost ~]</code><code># gitlab-ctl status</code>

<code>run: gitlab-workhorse: (pid 15903) 159s; run: log: (pid 15726) 198s</code>

<code>run: logrotate: (pid 15822) 186s; run: log: (pid 15821) 186s</code>

<code>run: nginx: (pid 15774) 192s; run: log: (pid 15773) 192s</code>

<code>run: postgresql: (pid 15435) 327s; run: log: (pid 15434) 327s</code>

<code>run: redis: (pid 15298) 339s; run: log: (pid 15297) 339s</code>

<code>run: sidekiq: (pid 15681) 204s; run: log: (pid 15680) 204s</code>

<code>run: unicorn: (pid 15625) 210s; run: log: (pid 15624) 210s</code>

<code>[root@localhost ~]</code><code># gitlab-ctl --help</code>

<code>Usage: omnibus-ctl [options]</code>

<code>    </code><code>-t, --tmp-</code><code>dir</code><code>=DIR                Storage location </code><code>for</code> <code>temporary data</code>

<code>[root@localhost ~]</code><code># gitlab-ctl restart</code>

<code>ok: run: gitlab-workhorse: (pid 16146) 0s</code>

<code>ok: run: logrotate: (pid 16156) 0s</code>

<code>ok: run: nginx: (pid 16162) 1s</code>

<code>ok: run: postgresql: (pid 16173) 0s</code>

<code>ok: run: redis: (pid 16175) 1s</code>

<code>ok: run: sidekiq: (pid 16187) 0s</code>

<code>ok: run: unicorn: (pid 16193) 0s</code>

<code>[root@localhost ~]</code><code># gitlab-ctl tail nginx</code>

<code>==&gt; </code><code>/var/log/gitlab/nginx/current</code> <code>&lt;==</code>

<code>==&gt; </code><code>/var/log/gitlab/nginx/error</code><code>.log &lt;==</code>

<code>==&gt; </code><code>/var/log/gitlab/nginx/gitlab_access</code><code>.log &lt;==</code>

<code>ri</code><code>/537</code><code>.36"</code>

<code>.2743.116 Safari</code><code>/537</code><code>.36"</code>

<code>ppleWebKit</code><code>/537</code><code>.36 (KHTML, like Gecko) Chrome</code><code>/52</code><code>.0.2743.116 Safari</code><code>/537</code><code>.36"</code>

<code>537.36"</code>

<code>37.36"</code>

<code>.0; WOW64) AppleWebKit</code><code>/537</code><code>.36 (KHTML, like Gecko) Chrome</code><code>/52</code><code>.0.2743.116 Safari</code><code>/537</code><code>.36"</code>

<code> </code><code>like Gecko) Chrome</code><code>/52</code><code>.0.2743.116 Safari</code><code>/537</code><code>.36"</code>

<code>, like Gecko) Chrome</code><code>/52</code><code>.0.2743.116 Safari</code><code>/537</code><code>.36"</code>

<code>"</code>

<code>==&gt; </code><code>/var/log/gitlab/nginx/gitlab_error</code><code>.log &lt;==</code>

<code>==&gt; </code><code>/var/log/gitlab/nginx/access</code><code>.log &lt;==</code>

<code>5:</code><code>in</code> <code>`</code><code>tail</code><code>': Interrupt</code>

<code>s-ctl.rb:575:</code><code>in</code> <code>`run'</code>

<code>s-ctl:31:</code><code>in</code> <code>`&lt;</code><code>top</code> <code>(required)&gt;'</code>

<code>from </code><code>/opt/gitlab/embedded/bin/omnibus-ctl</code><code>:22:</code><code>in</code> <code>`load'</code>

<code>from </code><code>/opt/gitlab/embedded/bin/omnibus-ctl</code><code>:22:</code><code>in</code> <code>`&lt;main&gt;'</code>

<code>[root@localhost ~]</code><code># cd /opt</code>

<code>[root@localhost opt]</code><code># ls</code>

<code>gitlab  rh</code>

<code>[root@localhost opt]</code><code># cd gitlab/</code>

<code>[root@localhost gitlab]</code><code># ls</code>

<code>bin       etc   LICENSE   service  var                    version-manifest.txt</code>

<code>embedded  init  LICENSES  sv       version-manifest.json</code>

<code>[root@localhost gitlab]</code><code># cd etc/</code>

<code>[root@localhost etc]</code><code># ll</code>

<code>總用量 52</code>

<code>-rw-r--r--. 1 root root    80 11月 28 13:42 gitlab-psql-rc</code>

<code>drwx------. 3 git  root    38 11月 28 13:40 gitlab-rails</code>

<code>-rw-r--r--. 1 root root 47471 11月 23 02:51 gitlab.rb.template</code>

<code>drwx------. 3 git  root    16 11月 28 13:44 gitlab-workhorse</code>

<code>[root@localhost etc]</code><code># cp gitlab.rb.template gitlab.rb.template.20161128</code>

<code>部署完後,檢視gitlab的狀态:</code>

<code>[root@localhost code]</code><code># gitlab-ctl status</code>

<code>run: gitlab-workhorse: (pid 845) 20880s; run: log: (pid 843) 20880s</code>

<code>run: logrotate: (pid 28207) 2879s; run: log: (pid 849) 20880s</code>

<code>run: nginx: (pid 847) 20880s; run: log: (pid 846) 20880s</code>

<code>run: postgresql: (pid 854) 20880s; run: log: (pid 853) 20880s</code>

<code>run: redis: (pid 852) 20880s; run: log: (pid 851) 20880s</code>

<code>run: sidekiq: (pid 856) 20880s; run: log: (pid 855) 20880s</code>

<code>run: unicorn: (pid 842) 20880s; run: log: (pid 841) 20880s</code>

<code>如上我們可以看到,部署涉及到的軟體比較多,建議用一個比較幹淨的系統來進行部署</code>

2) 檢視初始化界面

<a href="http://s1.51cto.com/wyfs02/M01/8A/D5/wKioL1g9OseRlnWSAADgfPzDUW8065.png-wh_500x0-wm_3-wmp_4-s_389390708.png" target="_blank"></a>

如上圖所示,我們需要配置我們的初始密碼

<a href="http://s1.51cto.com/wyfs02/M02/8A/DA/wKiom1g9OseS-KfAAAD22ZfxDUs623.png-wh_500x0-wm_3-wmp_4-s_3049318618.png" target="_blank"></a>

配置完後,我們使用使用者名root,以及已經設定的密碼進行登入

3)在gitlab中添加公開密鑰,這樣就可以用私有密鑰進行認證了

<code>[root@localhost code]</code><code># ssh-keygen -t rsa</code>

<code>Generating public</code><code>/private</code> <code>rsa key pair.</code>

<code>Enter </code><code>file</code> <code>in</code> <code>which</code> <code>to save the key (</code><code>/root/</code><code>.</code><code>ssh</code><code>/id_rsa</code><code>): </code>

<code>/root/</code><code>.</code><code>ssh</code><code>/id_rsa</code> <code>already exists.</code>

<code>Overwrite (y</code><code>/n</code><code>)? </code>

<code>[root@localhost code]</code><code># cd /root/.ssh/</code>

<code>[root@localhost .</code><code>ssh</code><code>]</code><code># cat id_rsa.pub </code>

<code>ssh</code><code>-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDgA</code><code>/RQdMLqmR3TxZdoMJoSr0fZYZaynK0ueaN0fRzEPn87AH7qV6X3dCc18BCxOtsD</code><code>+o8qfdp8zVYfYbxdL+P1r53Qq278BLXov+ATWCl++Ly62oLYuGTZAAdm</code><code>/cBYGTTxyqLp83wLutvbmsf3vlD3owbmZyfV/UEjon</code><code>+j</code><code>/T6ZVMC2JYcYHDu17HwlsXHZpOpm3g1FimmzMlaf12Hd76bPfC1blE6gcEKMJVJ6qTzK4ksL2DwqaaLpTnw/hLBA0QGM4</code><code>+s74Q5WoyTSVMqoz+1H3NaXJYquRm5xFf+fZX8sg7SkYJX</code><code>/7AfkxvuwzYPW</code><code>+pPzpNtW1KikUgq9aq+rgMt/ [email protected]</code>

<a href="http://s1.51cto.com/wyfs02/M00/8A/D5/wKioL1g9PCaysrhDAACknW21YFg025.png-wh_500x0-wm_3-wmp_4-s_1353775921.png" target="_blank"></a>

将id_ras.pub的内容拷貝到指定的區域,并做好儲存:

<code>為git配置好顔色:</code>

<code>[root@localhost code]</code><code># git config --global color.ui true</code>

<code>[root@localhost code]</code><code># git config --list</code>

<code>user.name=Administrator</code>

<code>[email protected]</code>

<code>color.ui=</code><code>true</code>

<code>core.repositoryformatversion=0</code>

<code>core.filemode=</code><code>true</code>

<code>core.bare=</code><code>false</code>

<code>core.logallrefupdates=</code><code>true</code>

<a href="http://s3.51cto.com/wyfs02/M01/8A/D6/wKioL1g9PurAru6yAABbTAjm8Xo172.png-wh_500x0-wm_3-wmp_4-s_1142113899.png" target="_blank"></a>

<a href="http://s1.51cto.com/wyfs02/M02/8A/D6/wKioL1g9PuvzZHc1AAD_vFGGevg140.png-wh_500x0-wm_3-wmp_4-s_3531816671.png" target="_blank"></a>

<a href="http://s2.51cto.com/wyfs02/M02/8A/D6/wKioL1g9PuzzYh4HAADW4SKN_EM018.png-wh_500x0-wm_3-wmp_4-s_1877608359.png" target="_blank"></a>

<code>[root@localhost code]</code><code># git clone git@localhost:root/cslc.git</code>

<code>Cloning into </code><code>'cslc'</code><code>...</code>

<code>warning: You appear to have cloned an empty repository.</code>

<code>[root@localhost code]</code><code># ls</code>

<code>cslc  freemind-mmx</code>

<code>[root@localhost code]</code><code># cd cslc</code>

<code>[root@localhost cslc]</code><code># cp /etc/passwd .</code>

<code>[root@localhost cslc]</code><code># git add passwd</code>

<code>[root@localhost cslc]</code><code># git commit -m "add passwd"</code>

<code>[master (root-commit) 8c26f36] add </code><code>passwd</code>

<code> </code><code>1 </code><code>file</code> <code>changed, 43 insertions(+)</code>

<code> </code><code>create mode 100644 </code><code>passwd</code>

<code>[root@localhost cslc]</code><code># ll -la</code>

<code>total 8</code>

<code>drwxr-xr-x. 3 root root   30 Nov 29 16:41 .</code>

<code>drwxr-xr-x. 5 root root   47 Nov 29 16:40 ..</code>

<code>drwxr-xr-x. 8 root root 4096 Nov 29 16:41 .git</code>

<code>-rw-r--r--. 1 root root 2213 Nov 29 16:41 </code><code>passwd</code>

<code>[root@localhost cslc]</code><code># git push -u origin master</code>

<code>Counting objects: 3, </code><code>done</code><code>.</code>

<code>Delta compression using up to 4 threads.</code>

<code>Compressing objects: 100% (2</code><code>/2</code><code>), </code><code>done</code><code>.</code>

<code>Writing objects: 100% (3</code><code>/3</code><code>), 1.04 KiB | 0 bytes</code><code>/s</code><code>, </code><code>done</code><code>.</code>

<code>Total 3 (delta 0), reused 0 (delta 0)</code>

<code>To git@localhost:root</code><code>/cslc</code><code>.git</code>

<code> </code><code>* [new branch]      master -&gt; master</code>

<code>Branch master </code><code>set</code> <code>up to track remote branch master from origin.</code>

<a href="http://s5.51cto.com/wyfs02/M02/8A/D6/wKioL1g9QGGy26mCAADnZlLhUl0833.png-wh_500x0-wm_3-wmp_4-s_3739554522.png" target="_blank"></a>

4)添加一個README

<code>[root@localhost cslc]</code><code># echo "歡迎來到中體彩武漢的gitlab站"&gt;&gt;README.MD</code>

<code>[root@localhost cslc]</code><code># ls</code>

<code>README.md  </code><code>passwd</code>

<code>[root@localhost cslc]</code><code># git add README.md</code>

<code>[root@localhost cslc]</code><code># git commit -m "add README"</code>

<code>[master fbe1bfb] add README</code>

<code> </code><code>1 </code><code>file</code> <code>changed, 1 insertion(+)</code>

<code> </code><code>create mode 100644 README.md</code>

<code>Counting objects: 4, </code><code>done</code><code>.</code>

<code>Writing objects: 100% (3</code><code>/3</code><code>), 320 bytes | 0 bytes</code><code>/s</code><code>, </code><code>done</code><code>.</code>

<code>   </code><code>8c26f36..fbe1bfb  master -&gt; master</code>

<a href="http://s2.51cto.com/wyfs02/M02/8A/DB/wKiom1g9QgSQ3BkIAABtxKzZWRM402.png-wh_500x0-wm_3-wmp_4-s_190897512.png" target="_blank"></a>

到此,gitlab的本地安裝基本也就完成了

本文轉自 冰凍vs西瓜 51CTO部落格,原文連結:http://blog.51cto.com/molewan/1877804,如需轉載請自行聯系原作者

繼續閱讀