Posted at

CoreOSをインストールしてから接続するまで

More than 3 years have passed since last update.


前提


  • systemdを採用している。サービス管理はすべてsystemctlから。ログを見たいときはjournalctlを使用する。

  • パッケージマネージャーは存在しない。サービスはDockerで賄う。

  • システムファイルは原則として上書きできない。設定変更はcloud-config.ymlを通じて行う。

  • ローリングアップデートで自動的にOSアップデートがかかる。


インストール

いくつかやり方があり、CoreOSを立てる環境に応じて適切なものを選ぶ。


ネットワーキング

原則としてDHCPによりIPを自動取得して、SSHで繋がせることを前提としているが、固定IPで使用したい場合はcloud-config.ymlを使用する。


cloud-config.yml

coreos:

units:
- name: static.network
content: |
[Match]
Name=ens*
[Network]
Address=192.168.1.1/24
Gateway=192.168.1.250
DNS=192.168.1.50


秘密鍵認証以外でのログイン


認証回避

あまりないとは思うが、ローカルから入る場合。まず認証を外して入る方法。


  1. GRUBのboot menuで矢印キーでdefaultでの起動を選択し、eを押下してboot optionを開く。


  2. load_coreos mout.usr=PARTUUID=$usr_uuid coreos.autologinになるよう修正してC-xでbootする。


パスワード認証

パスワード認証でsshしたい場合には、やはりcloud-config.ymlでの設定となる。


cloud-config.yml

users:

- name: yourname
passwd: hashed password
ssh-authorized-keys:
- "ssh-rsa AAAA..."


自動アップデートの停止

まだ運用開始して間もないので自分はいまいちわかってないのだが、どうも自動アップデートのときに(当然ではあるが)勝手に再起動もかかるようなので、嫌であれば自動アップデートは停めた方が無難。


cloud-config.yml

coreos:

update:
reboot-strategy: "off"


cloud-config.yml

書き方に関しては公式を見ておけば困らない。

coreos-cloudinit/cloud-config.md at master · coreos/coreos-cloudinit

起動時に自動で読み込まれて反映されるが、手動で再読込したいときは下記コマンド。

$ sudo coreos-cloudinit --from-file /usr/share/oem/cloud-config.yml