KUSANAGI で GitLabを動かしてみよう(1)(宮崎悟氏)

KUSANAGI で GitLabを動かしてみよう(1)(宮崎悟氏)
Bookmark this on Hatena Bookmark

KUSANAGIでRails+Postgresqlを使ってみよう

以前の連載でRedmineをインストールしてみました。RedmineはRuby on Railsで動作するのですが、DBはMySQLで問題ありませんでした。

今回は、Ruby on RailsでPostgresql を利用するGitLabをどうさせてみたいと思います。前回の連載時から、KUSANAGI for Vagrantも変わっているので、まずはVagrantのおさらいをします。

KUSANAGI for Vagrantを改めて使ってみよう

今のKUSANAGI for Vagrantはイメージが新しくなり、最近のKUSANGI8.4.2がインストールされています。まずは、2019/06/10時点で最新版となる Vagrant2.2.4VirtualBox 6.0.8をインストールしましょう。VirtualBoxとHyper-Vは同時に動かないため、Hyper-Vを動かしている方は注意して下さい。
以下のように入力すれば最新のKUSANAGI for VagrantのVagrantfile が生成されます。この部分は、KUSANAGIの公式ドキュメンに書いてあるとおりです。

$ vagrant init primestrategy/kusanagi

Vagrantfileは以下のように書けば良いです。
vm.network は、ネットワークアドレスやポートが他とかぶらなければ問題ありません。ssh用のポートは 「, id: “ssh”」と末尾につけておくと、vagrant.exe ssh で使用可能になります。

Vagrant.configure("2") do |config|
  config.vm.box = "primestrategy/kusanagi"
  config.vm.network "forwarded_port", guest: 22, host: 8022, id: "ssh"
  config.vm.network "private_network", ip: "192.168.34.21"

以下の行は、VirtualBoxへのVM設定になります。必須なのは末尾のメモリ設定(vb.memory)になります。GitLabはメモリが4GB程度必要になるので必ず4096以上を指定して下さい。
mofifyvmでは以下の設定を変更しています。Windowsでは特に有用です。

  • USB/オーディオ設定をOFF
  • NAT先のDNSを使用
  • LAN接続をON
  config.vm.provider "virtualbox" do |vb|
    vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
    vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
    vb.customize ["modifyvm", :id, "--usb", "off"]
    vb.customize ["modifyvm", :id, "--usbehci", "off"]
    vb.customize ["modifyvm", :id, "--audio", "none"]
    vb.customize ['modifyvm', :id, '--cableconnected1', 'on']
    vb.memory = "4096"
  end

以下は、ファイルをコピーしたり、VM起動時に実行するshellスクリプトの設定になります。個々では、以下のことを実施してます。

  1. ssh鍵のコピー(筆者はWSL上で実行するため、この設定があると便利です)
  2. DBやKUSANAGIの設定を生成し、ファイル(~/export.txt)に書き込み
  3. yum のアップデート
  4. kusanagi init/kusanagi provision
  config.vm.provision "file", source: "/home/s-miyaza/.ssh/id_ecdsa.pub", destination: "/tmp/id_edcsa.pub"
  config.vm.provision "shell", inline: <<-SHELL
    cat /tmp/id_edcsa.pub >> /home/vagrant/.ssh/authorized_keys
    rm /tmp/id_edcsa.pub
    KUSANAGI_PASSWORD=$(mkpasswd -l 20)
    DBROOTPASS=$(mkpasswd -s 0 -l 20)
    SITE_DOMAIN=gitlab.localdomain
    DBNAME=$(mkpasswd -s 0 -l 10 -C 0)
    DBUSER=$(mkpasswd -s 0 -l 10 -C 0)
    DBPASS=$(mkpasswd -s 0 -l 20)
     cat <<EOF > export.txt
    export TERM=xterm
    export KUSANAGO_PASSWORD=\"$KUSANAGI_PASSWORD\"
    export DBROOTPASS=\"$DBROOTPASS\"
    export SITE_DOMAIN=$SITE_DOMAIN
    export DBNAME=$DBNAME
    export DBUSER=$DBUSER
    export DBPASS="\$DBPASS\"
    export EMAILOPTION=--no-email
EOF
    source export.txt
    sudo yum clean all
    sudo yum update -y
    yes 1 | sudo kusanagi init --tz tokyo --lang en --keyboard en --passwd "$KUSANAGI_PASSWORD" --no-phrase --dbrootpass "$DBROOTPASS" --php7 --nginx --ruby24 --dbsystem psql
    sudo kusanagi provision --rails --fqdn $SITE_DOMAIN $EMAILOPTION --dbname $DBNAME --dbuser $DBUSER --dbpass "$DBPASS" gitlab
    sudo reboot
  SHELL
end

kusanagi initで –dbsystem psql を指定すると必ず「1」を指定するため、yes コマンドで1を入力しています。
この状態で vagrant.exe up を実行すると、rails+postgresqlのプロビジョニングが終わった状態でKUSANAGI for Vagrantが起動します。
vagrant.exe ssh や、指定したホスト・ポートに対してPoderosaやTeraTermなどのSSHターミナルで接続しましょう。vagrant.exe ssh-configを実行すると、以下の情報が表示されるので、それら情報を使用してssh接続しましょう。

  • Host名(HostName)
  • ユーザ名(User)
  • ポート(Port)
  • ssh鍵ファイル名(IdentityFile)

GitLabをインストールしよう

GitLabの設定をするには、公式ドキュメントのとおり、以下のように実行します。今回は、Communication Editionをインストールします。EXTERNAL_INSTALLは適当な「http:// 」で始まるURLを指定して下さい。

$ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
$ env EXTERNAL_URL=http://gitlab.localdomain/ sudo yum install gitlab-ce
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
epel/x86_64/metalink| 5.4 kB  00:00:00     
 * base: ftp.tsukuba.wide.ad.jp
 * epel: mirror2.totbb.net
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp
  (中略)
Resolving Dependencies
--> Running transaction check
---> Package gitlab-ce.x86_64 0:11.11.2-ce.0.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

============================================================
 Package   Arch   Version          Repository       Size
============================================================
Installing:
 gitlab-ce x86_64 11.11.2-ce.0.el7 gitlab_gitlab-ce 627 M
Transaction Summary
============================================================
Install  1 Package

Total download size: 627 M
Installed size: 1.5 G
Is this ok [y/d/N]: y
Downloading packages:
warning: /var/cache/yum/x86_64/7/gitlab_gitlab-ce/packages/gitlab-ce-11.11.2-ce.0.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f27eab47: NOKEY MB  00:00:00 ETA 
Public key for gitlab-ce-11.11.2-ce.0.el7.x86_64.rpm is not installed
gitlab-ce-11.11.2-ce.0.el7.x86_64.rpm    | 627 MB  00:00:43     
Retrieving key from https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
Importing GPG key 0xE15E78F4:
 Userid     : "GitLab B.V. (package repository signing key) <packages@gitlab.com>"
 Fingerprint: 1a4c 919d b987 d435 9396 38b9 1421 9a96 e15e 78f4
 From       : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
Is this ok [y/N]: y
Retrieving key from https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
Importing GPG key 0xF27EAB47:
 Userid     : "GitLab, Inc. <support@gitlab.com>"
 Fingerprint: dbef 8977 4ddb 9eb3 7d9f c3a0 3cfc f9ba f27e ab47
 From       : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
Is this ok [y/N]: y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : gitlab-ce-11.11.2-ce.0.el7.x86_64        1/1 

gitlab: GitLab now ships with a newer version of PostgreSQL (10.7), but it is not yet
gitlab: enabled by default. To upgrade, RUN THE FOLLOWING COMMAND:

sudo gitlab-ctl pg-upgrade

gitlab: Note: This command does not support Geo instances yet. So we don't
gitlab: recommend running this command on Geo nodes. It will be supported
gitlab: in GitLab 12.0.

gitlab: For more details, please see:
gitlab: https://docs.gitlab.com/omnibus/settings/database.html#upgrade-packaged-postgresql-server
gitlab: 
It looks like GitLab has not been configured yet; skipping the upgrade script.

       *.                  *.
      ***                 ***
     *****               *****
    .******             *******
    ********            ********
   ,,,,,,,,,***********,,,,,,,,,
  ,,,,,,,,,,,*********,,,,,,,,,,,
  .,,,,,,,,,,,*******,,,,,,,,,,,,
      ,,,,,,,,,*****,,,,,,,,,.
         ,,,,,,,****,,,,,,
            .,,,***,,,,
                ,*,.



     _______ __  __          __
    / ____(_) /_/ /   ____ _/ /_
   / / __/ / __/ /   / __ `/ __ \
  / /_/ / / /_/ /___/ /_/ / /_/ /
  \____/_/\__/_____/\__,_/_.___/


Thank you for installing GitLab!
GitLab was unable to detect a valid hostname for your instance.
Please configure a URL for your GitLab instance by setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:
  sudo gitlab-ctl reconfigure

For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md

  Verifying  : gitlab-ce-11.11.2-ce.0.el7.x86_64  1/1 

Installed:
  gitlab-ce.x86_64 0:11.11.2-ce.0.el7

Complete!

これで、/opt/gitlabにgitlabがインストールされた状態になります。
次回は、このGitLabの設定を行い、KUSANAGI上で動かそうと思います。お楽しみにお待ち下さい。

Bookmark this on Hatena Bookmark

KUSANAGI TIPSカテゴリの最新記事