etcd/fleet/dockerの自動起動、 TimeZoneのJST化、固定IP化、ユーザ作成(ssh鍵2つ入り)ができるcloud-config.ymlを晒します
cloud-config.yml
#cloud-config
hostname: coreos01
coreos:
update:
reboot-strategy: best-effort
etcd:
discovery: https://discovery.etcd.io/{HASH}
addr: 10.200.0.66:4001
peer-addr: 10.200.0.66:7001
bind-addr: 0.0.0.0
fleet:
public_ip: 10.200.0.66
units:
- name: etcd.service
command: start
- name: fleet.service
command: start
- name: docker.service
command: start
- name: timezone.service
command: start
content: |
[Unit]
Description=timezone
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/ln -sf ../usr/share/zoneinfo/Japan /etc/localtime
- name: 10-static.network
runtime: no
content: |
[Match]
Name=eth0
[Network]
Address=10.200.0.66/24
Gateway=10.200.0.1
DNS=10.200.0.2
DNS=10.200.0.3
users:
- name: coreuser1
passwd: `openssl passwd -1`
groups:
- sudo
- docker
ssh-authorized-keys:
- ssh-rsa AAAA...68= user1@example.jp
- ssh-rsa AAAA...3h1= user2@example.jp
※10/22: コメントでのアドバイスを基に変更
users.passwdは、openssl passwd -1
の結果を貼り付けてください。それ以外にもmkpasswdやperl/pythonを使う方法があるようです
{HASH}は https://coreos.com/docs/cluster-management/setup/cluster-discovery/ を見て得るか、自前でetcdサーバを立てた時のものを使ってください
cloud-config.ymlのデバッグ方法
coreos-cloudinit
コマンドが利用できます
$ sudo coreos-cloudinit -from-file=./cloud-config.yml
現在のOS設定がcloud-config.ymlの内容に書き換わっちゃうので要注意
参考資料
あとがき
まぁ、こんなもんか