15
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

CoreOSをさくらVPSサーバに入れようとして嵌ったのでメモ

参考にしたところ

さくらのVPSにCoreOSをインストールしてDocker専用機にする
CoreOSのトラブル対応
CoreOS install to a VPS
Introduction to networkd, network management from systemd

何で嵌ったか

下記を参考にして進めれば、さくっとインストールできるだろう。とか思ってたら案外嵌った。
さくらのVPSにCoreOSをインストールしてDocker専用機にする

理由は systemd をまったく理解していなかったため(今もほとんど理解できてはいないけど)

嵌ったところ

isoイメージからブートして、

shell
$ sudo vi /etc/systemd/network/static.network
[Match]
Name=ens3

[Network]
Address=<IPアドレス>/<サブネットマスク>
Gateway=<ゲートウェイ>
DNS=<DNS1>
DNS=<DNS2>
shell
$ sudo systemctl restart systemd-networkd

で、ネットワークサービス再起動すれば、ネットワークつながるだろうと思っていたらつながらない。

いろいろやってわかったのだが、理由はどうやら Name=ens3 でマッチするデバイスが見つからなかったかららしい。
ためしにName=ens*enp2s0等としてみたが同様だった。

この ens3 とか enp2s0 とかはどうやら udev が割り振ってくれるデバイス名のエイリアスらしいがどこを
みたらこのデバイス名のエイリアスが分かるのか、分からなかった。

shell
$ ifconfig

で見てみると、普通に eth0、eth1、eth2 などよく知ったエイリアスになっていたので、普通に
Name=eth0 と変えただけでOKだった。

※ eth0 等のでの指定はboot毎に対応するネットワークデバイスが変わる可能性があるので推奨されていません。

その他分かった点等

static.network の編集

iso イメージからのブートだとQEMU のコンソールが日本語キーボードを認識しないので、
/etc/systemd/network/static.network を編集するのはめんどくさい。

どうせこのときだけなので、

shell
sudo ifconfig <network port> <ip address> netmask <netmask>  
sudo route add default gw <default gateway IP>

として、ネットワークインタフェースを直接編集して

shell
$ sudo vi /etc/resolv.conf
name server <DNS1>

と直接いじってしまったほうが少しは楽なように思った。

cloud-config に間して

cloud-config
#cloud-config

write_files:
  - path: /etc/systemd/network/static.network
    permissions: 0644
    content: |
      [Match]
      Name=eth0

      [Network]
      Address=<IPアドレス>/<サブネットマスク>
      Gateway=<ゲートウェイ>
      DNS=<DNS1>
      DNS=<DNS2>

ssh_authorized_keys:
  - ssh-rsa ABCDABCDABCDABCDABCDABCDABCDABCDABCD...

と static.network に直接 write_files で書いてしまうと最初の boot時の
ネットワークサービス立ち上げ時に設定反映が間に合わないので

cloud-config
#cloud-config

coreos:  
  units:
    - name: static.network
      content: |
        [Match]
        Name=eth0

        [Network]
        Address=<IPアドレス>/<サブネットマスク>
        Gateway=<ゲートウェイ>
        DNS=<DNS1>
        DNS=<DNS2>

ssh_authorized_keys:
  - ssh-rsa ABCDABCDABCDABCDABCDABCDABCDABCDABCD...

と units を書いたほうが良い。

ssh で入れなくなった場合

上記、network 設定や ssh_authorized_keys の設定でへまをすると、boot後
coreos に入れなくなってしまうがそんなときは

reboot してすぐ KVM/QEMU console が立ち上がる前に shift などを押して
boot: プロンプトを出し boot: boot_kernel coreos.autologin とすれば
コンソールから自動ログインすることができる。
ここで、上記ネットワーク設定等が反映されているか確認する。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
15
Help us understand the problem. What are the problem?