GitLabプライベートコードウェアハウスの導入

15035 ワード

文書ディレクトリ
  • GitLab概要
  • 2 Gitlabインストール配置
  • 2.1 Gitlab取付
  • 2.2 Gitlab中国語コミュニティ版パッチインストール
  • 2.3 Gitlabを使用する簡易ウェブページ端末
  • 2.4 Gitlabプロファイル/etc/gitlab/gitlab.rb
  • を変更
  • 3 Gitlabコードプッシュダウンロード
  • 4 Gitlabを構成するssh鍵接続方式
  • 4.1 ssh公開鍵接続
  • を構成する.
  • 4.2 ssh方式クローンコード
  • をテストする
  • 5 Gitlabメールサービス
  • の構成
  • 6 Gitlabのアカウント、グループ化、権限設定
  • 6.1 web側設定メール関連サービス
  • を開く
  • 6.2登録ユーザ
  • 6.3プロジェクトグループ(グループ)
  • を作成
  • 6.4グループにメンバーを追加し、
  • を許可
  • 6.5プロジェクトグループに新しいプロジェクトを作成し、テストしてコミットし、クローン

  • 1 GitLabの概要
  • バージョン:
  • Gitlabはコミュニティ版Gitlab CEとエンタープライズ版Gitlab EEに分かれています
  • Gitlabサービスは主に
  • を構成する.nginx:静的Webサーバgitlab-shell:Gitコマンドの処理およびauthorized keysリストの変更gitlab-workhorse:軽量レベルの逆プロキシサーバlogrotate:ログファイル管理ツールpostgresql:データベースredis:キャッシュデータベースsidekiq:バックグラウンドでキュータスクを実行(非同期で実行)unicorn:An HTTP server for Rackアプリケーション、GitLab Railsアプリケーションはこのサーバ上に管理されています.
  • 主なサービス紹介:Gitlab shell
  • 2つの役割:GitLabのGitコマンドの処理、authorized keysリストの変更
  • 主なサービス紹介:Gitlab-workhorse
  • GitLab Workhorseは、迅速な逆エージェントです.ファイルアップロード、ファイルダウンロード、Git push/pull、Gitパッケージダウンロードなどの大きなHTTPリクエストを処理します.他のリクエストはGitLab Railsアプリケーション、すなわちバックエンドのunicornに逆エージェントされます.GitLab Workhorseの公式サイトの紹介はこちらです.https://gitlab.com/gitlab-org/gitlab-workhorse/
    2 Gitlabインストールの導入
    Gitlab公式インストールドキュメント:https://about.gitlab.com/installation/#centos-7 GitLab国内ソースダウンロードアドレス:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
    インストール環境:centos 7.5.1804 3.10.0-862.3.3.el 7.x 86_64 GitlabサーバーのCPUコア数とメモリが最も良い
    2.1 Gitlabインストール
    wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.2.3-ce.0.el7.x86_64.rpm
     yum localinstall gitlab-ce-11.2.3-ce.0.el7.x86_64.rpm -y
    
    #yum localinstall   yum       rpm ,           
    
    #   GitLab,       
    gitlab-ctl reconfigure
    
    #  gitlab    ,       
    gitlab-ctl status
    
    #  GitLab   
    cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
    

    ブラウザ入力http://ipアクセスできます.初回アクセスには管理ユーザーrootのパスワードを設定する必要があります.最低8ビットの設定が完了するとログインできます.
    2.2 Gitlab中国語コミュニティ版パッチインストール
    GitLab中国語コミュニティ:https://gitlab.com/xhang/gitlab/tree/11-2-stable-zh パッチのバージョンは、元のバージョンと同じであることが望ましい
    #  GitLab      
    tar xf gitlab-11-2-stable-zh.tar.gz
    
    #            
    cat gitlab-11-2-stable-zh/VERSION 
    
    #     GitLab
    cp -r /opt/gitlab/embedded/service/gitlab-rails{
         ,.bak}
    
    #              
    /bin/cp -rf gitlab-11-2-stable-zh/* /opt/gitlab/embedded/service/gitlab-rails/
    
    #    GitLab
    gitlab-ctl reconfigure
    
    #    GitLab
    gitlab-ctl restart
    

    ブラウザを再更新してgitlabにアクセスすると、一部のコンテンツが中国語で表示されます.
    2.3 Gitlabを使用した簡易ページ端末
    新しいプロジェクトの作成:プロジェクト管理者を設定し、プロジェクト名はjcjc、プロジェクト説明、可視レベルの作成が完了した後、コードウェアハウスのhttpアドレスはまだ使用されているデフォルトドメイン名であり、構成を変更することで変更することもできるし、Gitlabのデフォルトポートを変更することもでき、衝突を避けることができる.
    2.4 Gitlabプロファイル/etc/gitlab/gitlab.rbの変更
    #         
    cat -n /etc/gitlab/gitlab.rb | sed -n '13p;943p'
    13  external_url 'http://192.168.200.121:8888'
    943  nginx['listen_port'] = 8888
    
             IP,      nginx,           ,  Gitlab  Nginx
    nginx['enable'] = false
    
    #    GitLab
    gitlab-ctl reconfigure
    
    #   GitLab
    gitlab-ctl restart
    

    ブラウザへの再アクセスhttp://IP:8888 先ほど作成したプロジェクトに入ると、プロジェクトのURLが変更されていることがわかります
    3 Gitlabコードプッシュダウンロード
  • ローカルウェアハウスコードをプライベートGitLab
  • にプッシュ
    #            ,  git    ,      
    mkdir /gitlab
    cd /gitlab
    git init 
    git remote add origin http://192.168.200.121:8888/root/jcjc.git
    
    #    master  ,     
    touch master.txt
    git add master.txt
    git commit -m "test master"
    git push -u origin master
    #           
    #   web         
    
    #  linux  ,    
    git branch linux
    git checkout linux
    touch linux.txt
    git add linux.txt
    git commit -m "test linux"
    git push -u origin linux
    #           
    #   web         
    
    #    ,    
    git tag v1.0
    git push -u origin v1.0
    #           
    #   web         
    
  • ローカルウェアハウスクローンGitLabのプロジェクトLinuxはローカルウェアハウス
  • に分岐する
    #  Git    
    mkdir -p /mycode
    cd /mycode
    git init
    
    #      GitLab Linux  
    git clone -b linux http://192.168.200.121:8888/root/jcjc.git
    
    #      ,          
    cd jcjc
    ls
    

    4 Gitlabのssh鍵接続方式の構成
    4.1 ssh公開鍵接続の構成
            
    ssh-keygen -t rsa -C '[email protected]'
    #-C:          
    
    cat ~/.ssh/id_rsa.pub
    #       Gitlab 
    

    Web側で、ユーザー----settings-----ssh keysをクリックして公開鍵の内容をkeyの欄に貼り付け、追加すると、タイトルが自動的に公開鍵の注釈情報に追加されます
    4.2 ssh方式クローンコードのテスト
    mkdir /test
    cd /test
    git init
    git clone -b linux [email protected]:root/jcjc.git
    
    #                  
    #           
    cd /test
    ls
    git branch
    

    5 Gitlabメールサービスの構成
  • メールボックスサービスの用途を設定する:合併要求がある場合、メール通知アカウント登録時、メール検証修正パスワード時、メール修正
  • 配置手順:QQメールボックスのsmtpサービスを開いてgitlab配置を修正してメールサービスが正常かどうかをテストする
  • GitLabサービスpostfixサービスをオープンし、QQメールボックスのsmtpサービス
  • をオープンします.
    systemctl start postfix
    systemctl enable postfix
    systemctl status postfix
    

    QQメールボックスのPOP 3/SMTPとIMAP/STMTPサービスを開き、許可コードを生成する
      /etc/gitlab/gitlab.rb
    
    cat -n /etc/gitlab/gitlab.rb | sed -n '53p;472,480p;618p'
    53  gitlab_rails['gitlab_email_from'] = '[email protected]'  #GitLab    
    472  gitlab_rails['smtp_enable'] = true                      #    
    473  gitlab_rails['smtp_address'] = "smtp.qq.com"            #QQ smtp  
    474  gitlab_rails['smtp_port'] = 465                         
    475  gitlab_rails['smtp_user_name'] = "[email protected]"    #smtp    
    476  gitlab_rails['smtp_password'] = "   "
    477  gitlab_rails['smtp_domain'] = "qq.com"                  #smtp  
    478  gitlab_rails['smtp_authentication'] = "login"
    479  gitlab_rails['smtp_enable_starttls_auto'] = true
    480  gitlab_rails['smtp_tls'] = true
    618  user['git_user_email'] = "[email protected]"            #git    
    
    #    GitLab    
    gitlab-ctl reconfigure
    #   GitLab  
    gitlab-ctl restart
    #  GitLab   ,        
    gitlab-rails console
    #              
    irb(main):001:0>
    
    #        
    Notify.test_email('[email protected]','this is title','hello').deliver_now  
    
      :
    Notify.test_email('     ','    ','    ')
    
    exit  ctrl+D      
    

    6 Gitlabのアカウント、グループ化、権限設定
    6.1 web側設定メール関連サービスを開く
    rootユーザーにログインし、settingsの設定で、「ユーザーの作成」オプションSign-up restrictionsを見つけ、 をチェックし、この項目の一番下にsave changesをクリックして保存し、collapseを開きます.ユーザーの作成時に関連情報メールを送信するためです.
    6.2ユーザーの登録
    ログインインタフェースでは、ユーザーのカスタム名前、ユーザー名、自分のメールボックス、パスワードなどを登録できます. linuxのうち、ユーザー名とメールボックスはログインweb側のアカウント名としてもよいし、Gitlab倉庫にプッシュする際の検証手順のユーザー名としてもよいです.
    Alomost thereインタフェースが表示され、登録するメールボックスの確認を求めるメッセージが表示されます.その前に、Gitlabはそのメールボックスに確認メールを送信します.確認後、このアカウントを使用してGitlabにログインできますが、この場合、そのユーザーはまだ関連項目やグループを持っていないはずです.
    6.3プロジェクトグループの作成(グループ化)
  • rootユーザーにログインし、GroupsYour groupsを順次クリックし、新しいグループNew groupを作成し、現在作成するグループがdev
  • であると仮定する.
  • 新しいグループを作成し、グループ名、パスをカスタマイズします.表示レベル
  • 6.4グループへのメンバーの追加と承認
    devグループをクリックして、membersを選択して、さっき作成したユーザーlinuxをこのグループに追加して、権限はMasterのメインプログラマーに設定して、成功したlinuxユーザーのメールボックスを設定してメールを受け取ることができて、内容は“ dev group”です
  • Guest訪問者:コメントのみ、プロジェクトライブラリ
  • を読み書きできません.
  • Reporterレポート者:コードのクローン(読み取り)のみ、コードのコミット(修正)はできません
  • Developer開発者:コードの読み書きが可能
  • Masterプログラマ:プロジェクトメンバーの追加、ラベルの追加、ブランチの作成と保護
  • Owner所有者:この権限を使用しないすべての権限を持つ
  • 6.5プロジェクトグループに新しいプロジェクトを作成し、テストして提出し、クローンする
  • は、Web側でプライベートプロジェクトbenetを作成し、サーバ上でグループメンバーのプロジェクトコミットテスト
  • を行う.
    #               
    mkdir -p /test
    cd /test
    git init
    git remote add dev http://192.168.200.121:8888/dev/benet.git
    
    #      ,  
    touch master.txt
    echo "  dev   " > master.txt
    git add *
    git commit -m "  master"
    git push -u dev master
    #                 
    #   web       
    
  • グループメンバーコードのクローンテスト
  • を行う
    mkdir /test2
    cd /test2
    
    git clone http://192.168.200.121:8888/dev/benet.git
    
    #        
    cd benet
    ls