2015年5月10日日曜日

[IDCF] gitlabをAnsibleでインストールしてみる! #IDCF宿題


ども!なのまるです!

IDCFさんがゴールデンウィーク期間中のキャンペーンで、
ブログ記載キャンペーンをやっていたので、ノッてみることにしました!


もくじ



gitlabをIDCFクラウドに!

今回のキャンペーン(宿題)は、
  • IDCFのクラウドを使って
  • OSSのgitlabをインストール
  • その手順をブログなどに記載する
事が課題になっておりました!

先人で中の人でもある方が、素晴らしい記事を書かれているので習ってやろうかと思ったんですが・・・

Itamaeの構成ファイルがあまりにも良く出来ていたので、
GW期間中に『Ansible』で同じことを出来るようにするのは自分には不可能だったので、サラッとAnsible Galaxyを使ってインストールしてみます!

ざっと流れ

  • IDCFクラウドのアカウント取得
  • IDCFクラウドに『Ubuntu 14.04』の仮想マシンを立ち上げる(仮想マシンA)
  • (仮想マシンA)Ansibleをインストール
  • CentOSの仮想マシンを立ち上げる(仮想マシンB)
  • (仮想マシンA)Ansibleを実行

IDCFクラウドのアカウント取得

アカウントの取得は公式ガイドがよく出来ているので、そちらを参照して作成ください!
そもそも、これの読者がアカウントを持っていないということを想定していないですwww

IDCFクラウドに『Ubuntu 14.04』の仮想マシンを立ち上げる(仮想マシンA)

IDCFクラウドポータルから、「仮想マシン作成」をして、「Ubuntu 14.04 LTS」の仮想マシンを作ります!


  • SSHキーの作成、またはアップロード
  • SSHのポートフォワードを行う[パブリックが(ポート10022 など)、プライベート側は(ポート22)]
  • ファイアーウォールで、先ほど設定したパブリックポートを開ける!(ポート10022など)
  • 「Ubuntu 14.04 LTS」の仮想マシンを立ち上げる
上記作業やらないとハマるので、確実にやりましょう!(^^)


(仮想マシンA)Ansibleをインストール

SSHを使って、先ほど作成したマシンにrootでログインして『Ansible』をインストールします!
  # パッケージを最新状態に
  sudo apt-get update && sudo apt-get upgrade -y
  # Ansbileをインストールするための準備
  sudo apt-get install software-properties-common
  sudo apt-get install git
  sudo apt-add-repository ppa:ansible/ansible
  sudo apt-get update
  # Ansbileをインストール
  sudo apt-get install ansible
  # 管理画面で作成・登録した、SSHのPrivateキーを保存する
  vi .ssh/id_rsa
  

SSHキーなどの便宜上、rootでログインしています!
本運用では、サーバーアカウントの作成が必要になると思います!

参考:


CentOSの仮想マシンを立ち上げる(仮想マシンB)

今度はgitlabを入れる仮想マシンを作成します!


  • SSHキーは同じものを使ってください(とりあえずトラブル回避のため)
  • ホスト名を「ansible-test02」としてください(AnsibleのPlaybookに書いてあるため)
  • SSHのポートフォワードを行う[パブリックを必ず ポート22、プライベート側は(ポート22)]
  • ファイアーウォールで、今設定したパブリックポートを開ける!(ポート22)
  • 「CentOS 6.6」の仮想マシンを立ち上げる(CentOS7は今回うまく行かなかった)
gitlabで使うので、ポート22を開けます。(接続元は限定してもいいかもしれません)


(仮想マシンA)Ansibleを実行

Ansibleを使って、gitlabを仮想マシンBにインストールします!
仮想マシンAにrootログインして、
  # Ansible のPlaybookをダウンロード
  git clone https://github.com/snickerjp/ansible-gitlab-idcf.git
  # Ansbileを実行
  cd ansible-gitlab-idcf
  ansible-playbook -i hosts site.yml
  

今回作った、AnsibleのPlaybook:
こんな感じで、うまくいくと思いますー(ちゃんと試した!)
  $ ansible-playbook -i hosts site.yml
   
  PLAY [deploy gitlab] **********************************************************
   
  GATHERING FACTS ***************************************************************
  ok: [ansible-test02]
   
  TASK: [geerlingguy.gitlab | Include OS-specific variables.] *******************
  ok: [ansible-test02]
   
  TASK: [geerlingguy.gitlab | Check if GitLab configuration file already exists.] ***
  ok: [ansible-test02]
   
  TASK: [geerlingguy.gitlab | Install GitLab dependencies (RedHat).] ************
  ok: [ansible-test02] => (item=openssh-server,postfix)
   
  TASK: [geerlingguy.gitlab | Install GitLab rpm (RedHat).] *********************
  changed: [ansible-test02]
   
  TASK: [geerlingguy.gitlab | Install GitLab dependencies (Debian).] ************
  skipping: [ansible-test02]
   
  TASK: [geerlingguy.gitlab | Check if GitLab is already installed.] ************
  ok: [ansible-test02]
   
  TASK: [geerlingguy.gitlab | Download GitLab .deb package (Debian).] ***********
  skipping: [ansible-test02]
   
  TASK: [geerlingguy.gitlab | Install GitLab .deb package (Debian).] ************
  skipping: [ansible-test02]
   
  TASK: [geerlingguy.gitlab | Reconfigure GitLab (first run - CentOS).] *********
  changed: [ansible-test02]
   
  TASK: [geerlingguy.gitlab | Reconfigure GitLab (first run - Debian).] *********
  skipping: [ansible-test02]
   
  TASK: [geerlingguy.gitlab | Create GitLab SSL configuration folder.] **********
  changed: [ansible-test02]
   
  TASK: [geerlingguy.gitlab | Create self-signed certificate.] ******************
  changed: [ansible-test02]
   
  TASK: [geerlingguy.gitlab | Copy GitLab configuration file.] ******************
  changed: [ansible-test02]
   
  NOTIFIED: [geerlingguy.gitlab | restart gitlab] *******************************
  changed: [ansible-test02]
   
  PLAY RECAP ********************************************************************
  ansible-test02             : ok=11   changed=6    unreachable=0    failed=0
  


gitlab ログイン・設定

https://[設定したIP or ドメイン名]/ で、アクセス!
SSL自己証明の場合は、警告が出るけど自分なので続行する!
  • Username: root
  • Password: 5iveL!fe
で、ログインしてみる!

最初のログインは、パスワード変更を求められるので変更しておく!

自分のプロジェクトとか入れて、楽しめます!


まとめ


  • IDCFクラウドで、Ansibleを使った『gitlab』の構築でした!
  • Ansibleの環境構築や、もろもろ構築のための構築が面倒ですが、次回以降はすごく短くなると思います!
  • 先で紹介したItamaeの構成ファイルに近づけるように、続けてAnsibleのPlaybookを修正します〜

Ansibleを使った構築もせっかくなので楽しんでみてくださいね!
本当はVagrant使って、環境作ってましたwww

参考サイト


IDCFクラウドはこちらから

Zenback