Category Archives: coreos

[coreos]CoreOSインストール時に使ったcloud-configはどこに行ったの?

Pocket

自分でCoreOSをインストールするときには、初期設定を書き込んだcloud-configを読み込ませる。
ファイル一つでOSの設定を全部、賄えるとは、なんてお手軽なんだろう。

あれ?
ではインストール後に、そういった設定を変更したい場合にはどうしたらよいのだろう。
もちろん、CoreOSだってLinuxなんだから、/etc下に設定ファイルが転がっているのは百も承知。
しかしCoreOSなんだから、一つのファイルで全部、管理したいじゃないか。

インストール後のcloud-configの場所

答え:
インストール時に使用したcloud-configは、/var/lib/coreos-install/user_dataに保存されているので、これを書き換えればよい。

例。
インストール後に、CoreOSの更新方法を変える。
更新方法は/etc/coreos/update.confでも設定できるが、上述の理由から、敢えてuser_dateで操作する。

では早速。
/var/lib/coreos-install/user_dataに以下の行を加えればよい。
※以下の例ではreboot-strategyにbest-effortを指定している。

CoreOSをリブートすると、/etc/coreos/update.confに以下の通り、最後の一行が増えている。

なお、CoreOSのバージョンは/etc/os-releaseに記載あり。

参考
https://github.com/coreos/coreos-cloudinit/blob/master/Documentation/cloud-config.md#update
https://coreos.com/os/docs/latest/update-strategies.html

https://coreos.com/os/docs/latest/cloud-config-locations.html
On every boot, coreos-cloudinit looks for a config file to configure your host. Here is a list of locations which are used by the Cloud-Config utility, depending on your CoreOS platform:

/var/lib/coreos-install/user_data
When you install CoreOS manually using the coreos-install tool. Usually used in bare metal installations.

タスク管理ツールWekan(Trelloクローン)+VirtualBox+CoreOS+docker

Pocket

WekanとはTrelloクローン。
鉄壁のセキュリティに守られて、インターネッツに出て行けず、世の中のイケてるサービスを使えないせいで、「サービス名」+「alternative」というキーワードで検索するのが癖になっている今日この頃です。
Trelloのalternativeで見つけたのがWekan。
これをCoreOSにインストールする。

VirtualBox上のCoreOSにはdockerまでインストール済みの前提。
以下の手順に沿ってインストールする。
https://github.com/wekan/wekan/wiki/Install-Wekan-Docker-for-testing
https://docs.docker.com/compose/install/

URLの示す通り、テスト目的。
大量のユーザを相手にするのでなければ、これでも大丈夫でしょう。
参考までに書いておくと、テスト目的と、下記の本番用で示される構成の違いは、フロントエンドにApacheがあること。
テスト目的の方の手順だと、ユーザがいきなりWekanに接続する。

https://github.com/wekan/wekan/wiki/Install-Wekan-Docker-in-production

繰り返すが、本稿ではWekanに直接、繋げさせる構成でセットアップする。

docker-composeのインストール。

まず、docker-composeのインストール。
docker-composeはdockerの管理ツール。
インストール済みならこの章は飛ばしてよい。
公式サイトの手順だと、/usr/local/bin下にインストールすることになっているが、CoreOSだと読み取り専用なので、そこ以外の、たとえばホームディレクトリのbin下等に置く。
実行権限の付与も忘れないように。

docker-compose.ymlの作成。

wekanをインストールするディレクトリにdocker-compose.ymlを作成する。
以下の例では、ホストOS、つまりCoreOSのポート8081で待ち受ける。

もし、ホストOSの起動時に自動的にWekanも起動させたい場合には、冒頭部分を以下のように書き換える。

Wekanの起動

docker-composeから立ち上げる。
まずdocker-compose –helpとして使い方を一覧しておこう。
初回起動時はupだが、二回目以降はstartで良さそうだ。

実際に作成&起動。

もしうまくいかない場合には、imagesをいったん削除してやり直してみよう。
エラーなど無さそうなら次のステップへ。
なお、問題なく動作することを確認できたら、Ctrl+Cで停止。
次回以降は

でよし。

VirtualBoxでポートフォワーディングの設定

上記で設定したCoreOSの待ち受けポートへの、VirtualBox上でのフォワーディングを設定する。
以下の例ではVirtualBoxを動かしているホストの8082が、VirtualBox上CoreOSの8081にフォワーディングされる。

13

接続確認

前章で設定したポートにブラウザで繋ぐ。
本稿の例で言えば、http://127.0.0.1:8082へ繋ぐ。
以下の画面になればOK
9
ユーザを新規登録し、もし英語が嫌なら設定を変える。
12

ボードとリストの設定。

ボードは適当に、リストは http://www.sekai-lab.com/times/?p=473 を参考に作成。
というか、どういうリストを作ればよいか、って結構なノウハウだと思うのだが、ありがたや。

以上

No tags for this post.

[memo] CoreOSのインストール

Pocket

CoreOSを自分でインストールする。
目的は、VirtualBoxや、VMWarePlayer, vSphere(ESXi)等で動かす自前のCoreOSイメージを作成するため。

CoreOSの初期設定

CoreOSはユーザアカウント等の初期設定をインストール時に一括で行う。
「一括で」とわざわざ書いたのには理由がある。
通常、LinuxやFreeBSDなどのインストールでは、インストール時に対話インタフェースが実行され、質問に答える形で各種設定を行う。
しかしCoreOSでは、あらかじめ準備した設定ファイルを、インストール時に指定する方法を採る。
つまり設定ファイルさえ書いておけば、コマンド一発でインストールができるということ。

その設定ファイルがCloud-Config。

Cloud-Configの書き方

ここに記載がある。
https://coreos.com/os/docs/latest/cloud-config.html

いきなりここにあるすべての設定を書き込むのは、後述の手順を見てもかなり大変。
よって、必要最低限のものしか書かない。
具体的には、CoreOSにターミナルログインするユーザ設定のみ。
そこから先は、OSインストール後に実施する。

ISOイメージでブート

https://coreos.com/os/docs/latest/booting-with-iso.html
上記からダウンロード。
VirtualBoxでもなんでも、すきな仮想ソフトウェアに読み込ませて起動する。
なお、仮想マシン作成時、OSを選ぶ際には64bit Linuxを選んでおけばよい。

Cloud-Configを書く前に

必要なのは、作業用アカウントの設定だけ。
したがって、ID、パスワード、作業用アカウントの権限くらいでよい。
当然のことながらパスワードを平文で保存するわけにはいかないから、mkpasswdを使ってハッシュ化したものを書き込むこと。

パスワードハッシュの生成

作業用アカウントのパスワードハッシュを生成する。
もちろん、SSHの公開鍵でもいいのだが、パスワードハッシュの方が楽。

mkpasswdの使い方はmkpasswd -hで得られる。

ハッシュ生成方法についてはmkpasswd -m helpで得られる。

SHA-512までいけますね。
では、ハッシュ生成。
いったんテストして問題ないようなら、テキストファイルに書き込む。

以上でカレントディレクトリのcloud-configが生成された。
あとはこのcloud-configに必要な設定を書き加えるだけ。

Cloud-configの作成

設定ファイルの書式はYAML
YAMLは人間の眼には易しいが、フォーマットが合っているか不安になる。
その場合はatom等で書いておいてもよい。ハイライトしてくれるパッケージもある

そこで先述の通り必要最低限の記載だけする。
hostnameでホスト名、追加したいユーザと、そのユーザがsudoとdockerを使えるよう、groupに追加する。
以下のように。

 

CoreOSのインストール

作成したcloud-configを指定してインストールすればよい。
-dでインストール先デバイスを、-Cでチャネルを、-cで先ほど作成したcloud-configを指定する。

起動したら、作成したユーザでログインすることを確認する。
 

No tags for this post.