運用技術者がインフラ構築に時間をかけずCoreOS+docker-composeでミドルウェア環境を作る

はじめに

運用技術者は日々のオペレーションや業務系処理で改善や提案を行う時間があまり取れないことが多いです。Dockerを使うことでミドルウェア環境を簡単に作ることができます。社内環境で使うことを前提に、Virtualboxで以下をざっくり作っていこうと思います。ホストOSは、Ubuntuにしました(メモリ8GB)

・CoreOS(Dockerを使うことを主にした軽量OS)

 -zabbix    … 監視ツール
 -Redmine   … プロジェクト管理ツール
 -Rocket.Chat  … チャットツール
 -Wekan    … かんばん式タスク管理ツール
 -EtherPad   … リアルタイムテキスト共有ツール

5つのツールを個別のOSにそれぞれインストールし、設定をしていくのはかなり大変です。そのため、これらを1つのOS上からDockerで作成し、設定を入れていこうと思います。今回はその最初となるCoreOSのインストールです。

こちらのサイトを参考にしました。


CoreOSのダウンロード

上記のサイトからCoreOSをダウンロードできます。

ダウンロードボタンをクリックします。



仮想OSの作成

Virtualbox上に仮想マシンを作成します。

メモリは2GBくらいはあったほうがいいと思います。

仮想ハードディスクを作成する

VDIを選択

可変サイズを選択

ハードディスクは20GBくらいあったほうがいいと思います。

起動前に「設定」をします。

プロセッサーは2個くらい

アクセラレーションは「KVM」選択。チューニング系の記事でおすすめだったので。

ストレージで、先ほどダウンロードしたisoファイルを装填します。

ネットワークで「ブリッジアダプター」を選択します。よその記事では「ホストオンリーアダプタ」を選択している場合がありますが、ホストOSと同じアドレス体系のIPである方が、他のwindows系端末からアクセスしやすいかなと思いました。

作成した仮想OSを起動します。

CoreOSのインストール(Virtualbox)

#パスワード変更
sudo passwd core
※パスワードを入力

#IP 確認
ip a

~~~
inet 192.168.10.16/24 #手打ちは大変なので、ここへリモートアクセスする
~~~

操作をしやすくするため、TeraTermからアクセスします。
TeraTermのショートカットをコピーし、プロパティを選択します。

#TeraTermにショートカット作成
"C:\Program Files (x86)\teraterm\ttermpro.exe" 192.168.10.16 /auth=password /user=core /passwd=********

リンク先欄に上記のアクセス情報を予め入れておくと、ダブルクリックだけでCoreOSに繋がります。ここからは、TeraTermからの作業です。windows環境がない場合は、ホストOSの端末エミュレータからの作業になります。

※ (例) ssh core@192.168.10.16


以下からはTeraTermで作業です。


#OpenSSLのパスワードを決めると共に、CoreOSインストール設定用ymlファイルに出力
$ openssl passwd -1 > cloud-config.yml
Password: #自分で決めたものを入力
Verifying - Password: #再入力


#キー作成
ssh-keygen -t rsa

Enter file in which to save the key (/home/core/.ssh/id_rsa): # Enter押す
Enter passphrase (empty for no passphrase): # 自分で決めたものを入力
Enter same passphrase again: # 再入力


#キー情報をCoreOSインストール設定用ymlファイルに出力
cat ~/.ssh/id_rsa.pub>> ./cloud-config.yml


#CoreOSインストール設定用ymlを編集
vim cloud-config.yml

vimで「cloud-config.yml」を編集します。
事前に「1$JeFYwtni$gtoyvBnxqkxXAXjJdupcr.」に当たる部分と、“AAAAB3NzaC1y~~core@localhost”」に当たる部分があるはずなので、以下の内容とマージして、インストールパラメータを完成させます。入力しづらい場合は、サクラエディタなどにすべて貼り付けてから、編集するといいと思います。

#cloud-config
users:
- name: core
passwd: 1$JeFYwtni$gtoyvBnxqkxXAXjJdupcr.
groups:
- sudo
- docker

ssh-authorized-keys:
- "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCWrXdLH5QGxIqeIZ/ShvRs1iMR1s+o+FL5WjEjKS71JqsJ+v2UUMaW6RAAs9EljTIJfKKVF8qd3ItujJI7EdmLk0RcPaEovK5KKsmOLPhwmU+tzcxIw8/BnfbaswyHXXsIRt0sid/bS7hxdCzuxhML9TpiGO8+lvMrbhYPoBjG/3KrNsboLrqTmz5xhgBxf/rp8kOL9JbLhw7yqf+2/h+qSqeNm0/hapPers/TTnjXZD4ogbCF+w5U+e9wULVlH9bxyD19Ux+tkQvXJ57IAb3EfUO0PJ1TosqzjkP4VTqRq5164BANHYAW7TeJ9BrApEY9RzSAyemAlxJJBHi2x12t core@localhost"

注意点:
– ymlファイルは、半角スペースの個数の違いで、認識されなくなるため正確に入力する
– ssh-rsa は、””(ダブルクォーテーション)で囲む
– ssh-rsa は1行で書く。貼り付けるときに改行されないようにする
– 最後の core@localhost も忘れない
 

上記が出来上がったら、以下のインストールコマンドを入力します。

#CoreOSをインストール(30分くらいかかります。)
sudo coreos-install -d /dev/sda -C stable -c cloud-config.yml
$ sudo coreos-install -d /dev/sda -C stable -c cloud-config.yml
2018/12/19 03:54:05 Checking availability of "local-file"
2018/12/19 03:54:05 Fetching user-data from datasource of type "local-file"
Current version of CoreOS Container Linux stable is 1911.4.0
Downloading the signature for https://stable.release.core-os.net/amd64-usr/1911.4.0/coreos_producti
2018-12-19 03:54:07 URL:https://stable.release.core-os.net/amd64-usr/1911.4.0/coreos_production_ima-> "/tmp/coreos-install.MNCWZ5Wwer/coreos_production_image.bin.bz2.sig" [1]
Downloading, writing and verifying coreos_production_image.bin.bz2…

2018-12-19 04:04:56 URL:https://stable.release.core-os.net/amd64-usr/1911.4.0/coreos_production_image.bin.bz2 [397333489/397333489] -> "-" [1]
gpg: Signature made Mon Nov 26 19:46:55 2018 UTC
gpg: using RSA key 4D7241B14AA47290515D6A8D7FB32ABC0638EB2F
gpg: key 50E0885593D2DCB4 marked as ultimately trusted
gpg: checking the trustdb
gpg: marginals needed: 3 completes needed: 1 trust model: pgp
gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: Good signature from "CoreOS Buildbot (Offical Builds) buildbot@coreos.com" [ultimate]
Installing cloud-config…
Success! CoreOS Container Linux stable 1911.4.0 is installed on /dev/sda
core@localhost ~ $

最後の「Success!」が出れば再起動可能です。
仮想OS再起動時は、isoイメージを抜くのを忘れないようにしましょう。

coreOSを再起動します。

$ 運用技術者がインフラ構築に時間をかけずCoreOS+docker-composeでミドルウェア環境を作る

再起動後は、IPが変わっている場合もあるので、TeraTermから接続できない場合は、virtualboxのコンソールから「ip a」でIPアドレスを再確認します。

ユーザ名:core
パスワード:(自分で決めたパスワード)

この先、ミドルェアのログイン先URLが都度変わるといけないので、IPを固定にします。

#IP を固定する
sudo vim /etc/systemd/network/static.network

< static.network >を編集します。

[Match]
Name=enp0s3

[Network]
Address=192.168.10.16
Gateway=192.168.10.1
DNS=192.168.1.1
#ネットワーク再起動
sudo systemctl restart systemd-networkd

リモート接続している場合はここで接続が切れますので、固定にしたIPで再度接続し直して、「ip a」 コマンドでIPが変わっているか、確認してください。(ログインできた時点で大丈夫だと思います。)

おわりに

CoreOSは軽くて便利なOSなので、運用現場の改善活動に使いやすいと思います。また、Virtualboxを使うことで、検証、バックアップ、再構築も楽になります。

次回から、各ミドルウェアをインストールしていきます。

コメント

%d人のブロガーが「いいね」をつけました。
タイトルとURLをコピーしました