GitLab-CIを試してみた ~その3:デプロイ編

GitLab-CIを試してみた ~その3:デプロイ編

今回は短期集中連載の第3回目『デプロイ編』をお送りします。

第1回:環境構築編
第2回:ユニットテスト編(PHPで実施/JavaScriptで実施)
第3回:デプロイ編 →ご覧頂いている本記事です

前回の記事にも記載しておりますが、手探りで実践したところもありますので、誤りやより良い方法があるかもしれませんが、あらかじめご了承ください。

本来であれば、プロジェクトのデプロイを実施することになるわけですが、今回はあくまでもGitLab-CIのフロー確認ということで、適当なファイルをDocumentRoot設置して完了とします。

なお、今回の『デプロイ編』は前回ご紹介した環境構築が完了していることを前提としておりますので、本記事が初見の方は事前に『環境構築編』をご覧いただき、事前準備を済ませていただければ幸いです。

実施をする

デプロイを行うにあたり、大まかなフローは以下の4つになります。

  1. ダミーhtmlを作成する
  2. Ansibleを用意する
  3. .gitlab-ci.ymlを作成する
  4. デプロイを実施する

手順1:ダミーhtmlを作成する
ちょっとでもラクをしたいので、ゲストであるDebian8の503.htmlを対象にしてみました。
GitLabのdocument root「/opt/gitlab/embedded/service/gitlab-rails/public」の503.htmlを変更します。 ※<h2>TEST</h2>を追加

image05

503.htmlを落として、先ほど追記した「<h2>TEST</h2>」をとりあえず「<h2>RELEASE</h2>」に変更し、あえて差別化を図っておきます。

手順2:Ansibleを用意する
本来であれば、git pull等でパパッと完了する感じなのでしょう。
しかし、残念なことにショーケース・ティービー社内の環境上、それができないので地道にアップする設定をしていきました。

<SSHの設定>

  1. cd ansible
  2. mkdir key
    • ssh-keygenで作成
  3. ssh-copy-id -i id_rsa_deploy.pub xxxx@192.168.11.33
    • パスワードを入力して公開鍵を設定
  4. id_rsa_deployはリポジトリに登録

あまり美しいとは言い難い状態ですが、ローカル環境なのでとりあえずこれで……。
忘れてならないのは、リリース先でsudoが可能な状態にしておく必要があります。

ansbileのinventoryファイルに以下を追加

これで反映されるようになりました。
実際にはGitLabで行いたいので、改めて元に戻しておきます。

Runner登録
ansibleを登録しておけばDockerを用いる必要がないのでshellを指定します。
※なお、ゲストOSのDebian8に、予めansibleをインストールしていること

手順3:gitlab-ci.ymlを作成する

手順4:デプロイを実施する
後はコミットするだけです。
PHP、JavaScriptのJOBがあれば、以下のような表示がされます。

image04

※job1、job2が完了したらjob3が稼働する

いかがでしたでしょうか。

本当はPHP、JavaScriptを使った管理画面をAnsibleでデプロイとしたかったんですが、今回は時間の都合で“デプロイを実施”に留まりました。

しかし、私自身が把握しておきたかったこともそうですが、本来の目的である『作業フローのドキュメント化』ができた上に、こうして記事として公開できたのは良かったと思いますね。

コメント