InfoboxCloudクラりドで開発甚のむンフラストラクチャを開発しおいたす。 パヌト1Gitlabを起動する

この䞀連の蚘事では、InfoboxCloudクラりドに開発むンフラストラクチャを展開するプロセスに぀いお説明したす。 アプリケヌションスタックを簡単にデプロむするために、Dockerを䜿甚したす。



最初の蚘事では、 Gitlabをデプロむしたす 。これには以䞋が含たれたす。





などなど。







無料のリポゞトリを無制限に䜜成し、アクセスおよびセキュリティポリシヌを構成できたす。 Gitlabの前にVPNを展開する堎合、パブリックIPサヌバヌにGitlabを提䟛し、䌁業ネットワヌクからVPNを介しおクラりドの内郚ネットワヌクに接続するこずでそれを操䜜するこずはできたせん。



環境の準備



1. CentOS 7でサヌバヌを䜜成しお、 DocboxをInfoboxCloudにむンストヌルしたす 。 Dockerが機胜するためには、たさに今必芁な仮想マシンです。そのため、サヌバヌを䜜成するずきは、 「OSカヌネル制埡を蚱可する」ボックスを必ずチェックしおください。



InfoboxCloud for Dockerでサヌバヌを䜜成する方法
InfoboxCloudにただアクセスできない堎合は、 泚文しおください 。



登録埌、電子メヌルでコントロヌルパネルにアクセスするためのデヌタを受け取りたす。 https://panel.infobox.ruでコントロヌルパネルにログむンしたす。



サブスクリプションの[クラりドむンフラストラクチャ]セクションで、[新しいサヌバヌ]をクリックしたす必芁に応じお、ドロップダりンメニュヌの右䞊隅にあるサブスクリプションが倉曎されたす。







必芁なサヌバヌパラメヌタを蚭定したす。 䞋のスクリヌンショットに瀺すように、サヌバヌに1぀のパブリックIPアドレスを䞎え、 「OSカヌネル制埡を蚱可する」ボックスをチェックしおください。







䜿甚可胜なオペレヌティングシステムのリストで、CentOS 7を遞択し、サヌバヌの䜜成を完了したす。







その埌、サヌバヌにアクセスするためのデヌタが電子メヌルで送信されたす。



CentOS 7でサヌバヌを䜜成した埌、 SSHを介しおサヌバヌに接続したす。



このようなサヌバヌでDockerずDockerを操䜜するための䟿利なナヌティリティをむンストヌルできるスクリプトを準備したした。 必芁な蚭定は自動的に行われたす。



コマンドを実行しおDockerおよびComposeをむンストヌルしたす。



bash <(curl -s http://repository.sandbox.infoboxcloud.ru/scripts/docker/centos7/install.sh)
      
      





Dockerずcomposeがむンストヌルされたす。



サヌバヌをクリックしお「むメヌゞを䜜成」をクリックするず、コントロヌルパネルに dockerがむンストヌルされたむメヌゞを䜜成できたす。 その埌、Dockerを䜿甚しおむメヌゞから新しいサヌバヌを䜜成し、このステップを再床実行しないでください。



クラりドサヌバヌのシステム芁件



Gitlabの快適な操䜜のために、100〜500ナヌザヌの2぀のCPUコアず2Gb Ramが掚奚されたす。

テスト䞭に可胜な限り保存する必芁がある堎合は、Gitlabサヌバヌに1 CPUコア1 GHzを指定できたすが、少なくずも2 GBのメモリが必芁です。



倚数のナヌザヌず連携する必芁がある堎合



CPU



RAM



さらにナヌザヌが必芁な堎合は、耇数のサヌバヌで Gitlab を実行できたす 。



Gitlabをむンストヌルする



Gitlabの最新バヌゞョンを迅速に展開するためのファむルはすでに準備されおいたす。 GitlabはDockerコンテナヌにデプロむされたす。 その前に、Gitlabで公匏むメヌゞを曎新したす。Gitlabの最新バヌゞョンを含むOS䞊のすべおの曎新プログラムを受け取りたす公匏むメヌゞは遅れお曎新されたす。最新の安定版が以前にありたす。



次のコマンドでgitをむンストヌルしたす。



 yum install -y git
      
      





ナヌザヌディレクトリに移動したす。



 cd ~
      
      





gitlabを展開するために必芁なファむルをダりンロヌドしたす。



 git clone https://github.com/trukhinyuri/gitlab-docker.git
      
      





次に、展開甚のファむルがあるディレクトリに移動したす。



 cd ~/gitlab-docker
      
      





次のファむルずディレクトリがディレクトリに存圚したす。





Dockerfileの内容

 FROM gitlab/gitlab-ce:latest MAINTAINER Yuri Trukhin <yuri@trukhin.com> ENV REFRESHED_AT 2015.09.27.004 ENV GITLAB_SHELL_SSH_PORT 8005 RUN apt-get update RUN apt-get -y upgrade EXPOSE 80 EXPOSE 443 EXPOSE 22
      
      





コマンドの目的をさらに詳しく芋おみたしょう。





Docker-compose.ymlには以䞋が含たれたす。



 gitlab: build: . ports: - "8004:443" - "8003:80" - "8005:22" volumes: - ./config:/etc/gitlab - ./logs:/var/log/gitlab - ./data:/var/opt/gitlab restart: always
      
      





最初の行は、結果のコンテナの名前を瀺したす。 buildは、むメヌゞをビルドするためのDockerfileのあるパスを瀺したす。 ポヌトセクションで、どのホストポヌトをどのコンテナポヌトに転送するかを指定したす。 ボリュヌムセクションで、適切なフォルダヌ内のコンテナヌに転送するホストフォルダヌを指定したす。 restartalwaysポリシヌは、システムの起動時およびプロセスがその䞭に入ったずきにコンテナが自動的に起動するこずを意味したす。



これはすべお準備枈みです。最初にコマンドで画像を収集する必芁がありたす。



 docker-compose build
      
      





次に、コマンドを䜿甚しおコンテナをデプロむしたす。



 docker-compose up -d
      
      





Gitlabの前にバランサヌを配眮する必芁がある堎合は、この蚘事のバランサヌで関連するコンテナヌを䜜成する䟋を参照できたす。 Gitlabに安党にログむンするには、NGINXバランサヌ偎でトラフィックの暗号化を有効にするこずをお勧めしたす。



ファむルの線集方法がわからない堎合は、この蚘事の詳现に぀いお 「テキストファむルを線集する方法」セクションを参照しおください 。 Docker Composeの凊理に興味がある堎合は、ここに詳现がありたす 。



これで、gitlabにログむンできたす



 http://ip–  
      
      





Gitlabが正垞にむンストヌルされたした。







デフォルトのログむンデヌタ





最初のログむン時に、ログむン甚の新しいパスワヌドを蚭定するように求められたす。



パスワヌドを倉曎しおGitlabにログむンするず、スタヌトペヌゞが衚瀺されたす。







初期蚭定



gitlabが䜿甚されるドメむンのAレコヌドを、クラりド内のホストの専甚IPアドレスに向けたす。 匷調衚瀺されたアドレスは、「クラりドむンフラストラクチャ」セクションのコントロヌルパネルで衚瀺できたす。







メむンのgitlabパラメヌタヌは、ホストの〜/ gitlab / config / gitlab.rbファむルで指定する必芁がありたす 。



指瀺するパラメヌタヌを持぀行がコメント化されおいる堎合はパラメヌタヌの前に蚭定されたす-を削陀する必芁がありたす。 これは、蚭定されおいるパラメヌタヌに察しおのみ行う必芁がありたす。



たず、構成ファむルをバックアップしたす。 パラメヌタヌが倉曎されるたびにこれを行うこずをお勧めしたす。



 cp gitlab.rb gitlab.rb.old
      
      







gitlab.rbのパラメヌタヌ蚭定


external_url


パラメヌタヌで、Gitlabを䜿甚できるサヌバヌに向けられたドメむンを指定したす。







time_zone


このパラメヌタヌは時間垯を指定したす。



 gitlab_rails['time_zone'] = 'Europe/Moscow'
      
      





gitlab.rbのメヌル蚭定


このセクションでは、 Yandex Mailに 関連付けられたドメむンのgitlab.rbの䜜業パラメヌタヌを瀺したす。 GmailずMailgunの蚭定はここにリストされおいたす 。



これらのパラメヌタヌをgitlab.rbファむルに貌り付け、 git.alm @ plugndo.comをドメむンのYandexアドレスに眮き換えたす。 ここでメヌルパスワヌドをメヌルパスワヌドに眮き換えたす 。 plugndo.comの代わりに、メヌルドメむンの名前を挿入したす。 残りの蚭定は倉曎しないでください。



 gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.yandex.ru" gitlab_rails['smtp_port'] = 587 gitlab_rails['smtp_user_name'] = "git.alm@plugndo.com" gitlab_rails['smtp_password'] = "    " gitlab_rails['smtp_domain'] = "plugndo.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true #gitlab_rails['smtp_openssl_verify_mode'] = 'peer' gitlab_rails['gitlab_email_from'] = 'git.alm@plugndo.com' gitlab_rails['gitlab_email_reply_to'] = 'git.alm@plugndo.com'
      
      





倉曎を保存した埌、gitlabコマンドでコンテナヌをリロヌドしたす。



 docker restart CONTAINER_ID
      
      





、ここで、 CONTAINER_IDの代わりに、gitlabでコンテナヌの䞀意の番号を指定したす。 次のコマンドを䜿甚しお衚瀺できたす。



 docker ps
      
      





メヌル蚭定の正確性を確認するには、Gitlabでナヌザヌを䜜成したす。すべおが正しく行われた堎合、ナヌザヌはパスワヌドを蚭定するためのメヌルリンクを受け取りたす。







おわりに



この蚘事の手順を適甚するず、独自のクラりドサヌバヌに最新バヌゞョンのGitlabが届きたした。 プロゞェクト甚にシステムの構成を開始できたす。 InfoboxCloudの分散型フォヌルトトレラントストレヌゞシステムのトリプルレプリケヌションのおかげで、デヌタの安党性に぀いお心配するこずはできたせん。



InfoboxCloudの詊甚版を無料で入手する方法は


trukhinyuri@infoboxcloud.comにメヌルアドレスず氏名をお送りください。コントロヌルパネルにアクセスするためのデヌタを受け取りたす。 新しいクラりドリヌゞョンを14日間テストした埌、クラりドのフルバヌゞョンに移動できたす。



蚘事に間違いを芋぀けた堎合、たたは質問/コメントがある堎合は、PMたたはメヌルでご連絡ください。 Habréにコメントを残せない堎合は、 InfoboxCloudコミュニティに曞き蟌みたす。



生産的な開発



All Articles