CoreOSを使用したDocker環境の作成(1)

ISOからのインストール方法

ISOファイルを使用したCoreOSのインストールの流れは、ダウンロードしたISOファイルを使用してブートした後、インストール対象のブロックデバイスに対してインストールイメージを書き込むといった感じになります。(親切な対話メニューみたいなものはありません。)

まずやること

  1. CoreOSのサイトからisoファイルをダウンロードする。
  2. isoを使用してインストール対象をブートする。

ISOファイルでbootをすると、coreユーザーでオートログインが行われます。ここでCoreOSのマニュアル通りにcoreos-install -d /dev/sda -C stable とやりたくなりますが、これだけを実行してもインストールしか行われません。

「インストールは完了したけど、ログインが出来ない」という状態になってしまいますので、必要項目を記述したcloud-config.yamlというファイルを作成します。(詳細はhttps://coreos.com/docs/cluster-management/setup/cloudinit-cloud-config/を参照。)

まずパスワードを生成(以下の例ではパスワードをcoreに設定)

openssl passwd -1
Passwod:
Verifying - Password:
$1$mTy.idEN$tZ1.w9IlEbd7cxrD0vtu21

生成されたパスワードをユーザーに設定します。

#cloud-config

users:
  - name: core
    passwd: $1$mTy.idEN$tZ1.w9IlEbd7cxrD0vtu21
  - groups:
    - sudo
    - docker

設定ファイルを作成したらyamlファイルの設定を検証します。

coreos-cloudinit -validate --from-file=cloud-config.yaml
Checking availability of "local-file"
Fetching user-data from datasource of type "local-file"

大丈夫なようです。

パスワードを直接設定する以外にも、

  • ssh-authorized-keysを設定する方法
  • coreos-ssh-import-githubによるGitHubからのimport
  • coreos-ssh-import-urlによるJSONからのimport

といった指定も可能です。

作成した設定を使用してインストールを行います。

coreos-install -d /dev/sda -C stable -c /home/core/cloud-config.yaml

完了したら再起動を行います。

再起動完了後、指定したパスワード(または方法)でログインが可能になります。

ちなみに上記の作業をsshで接続して行いたい場合は、ISOでのオートログイン後にsudo passwd core してしまえば、sshでログイン可能になります。