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で行いたいので、改めて元に戻しておきます。

あなたにおすすめ

仮想環境で『Ansible』を使ってサーバ構築... 最近、サーバ構築を実施する必要がありました。 まずは仮想環境を作り、サーバ構築を……と思ったのですが、私はインフラ周りの経験が浅く、色々困ったことが頻出してしまいました。 今回の記事では、私と同じような “サーバ構築ビギナー” ...
内線電話用の番号検索|Slack APPで作ってみた... ショーケース・ティービーではメール誤送信防止という観点から、社内連絡ではチャットツールを使用しています。 現在使用しているツールは「HipChat」。 <bitWave関連記事『情報漏えいしないための決定打!”Hip Chat”』>...
Amazon EC2|Red Hat Linux 7.3で“Muninインストール“や“パッケージ導... ナマステ~! 私はナラヤンです! 今回が初投稿になるのですが、実はこれまで何度か本bitWave上でも登場していました。 <bitWave関連記事『おもてなしの企業の社員が、ネパール人をおもてなししてみた!』> <bitWave関...
継続的インテグレーションツール『Jenkins』を触ってみた... こんにちは。M.Sです。 現在、『Jenkins』からSeleniumを実行するお題に取り組んでいます。 『Jenkins』ってなに? 身近な継続的インテグレーションとは 『Jenkins』はjavaで実装されたオープンソー...