Custom Cloud-Initの使用

Updated 2 years ago by Admin

場合によっては、エージェントをインストールして起動する前に、作成時にインスタンスをカスタマイズする必要があります。

デフォルトのcloud-initファイルのオーバーライドは高度な機能であり、絶対に必要な場合を除いて避けるべきです。

カスタムcloud-initファイルを提供することで、インスタンス構成をカスタマイズできます。以下は、ベースラインとして使用してカスタマイズできるサンプルのcloud-initファイルです。

   1  #cloud-config
2
3 apt_reboot_if_required: false
4 package_update: false
5 package_upgrade: false
6
7 apt:
8 sources:
9 docker.list:
10 source: deb [arch=amd64] https://download.docker.com/linux/ubuntu $RELEASE stable
11 keyid: 0EBFCD88
12
13 packages:
14 - docker-ce
15
16 write_files:
17 - path: /etc/systemd/system/docker.service.d/override.conf
18 content: |
19 [Service]
20 ExecStart=
21 ExecStart=/usr/bin/dockerd
22 - path: /etc/default/docker
23 content: |
24 DOCKER_OPTS=""
25 - path: /etc/docker/daemon.json
26 content: |
27 {
28 "hosts": [ "0.0.0.0:2376", "unix:///var/run/docker.sock" ],
29 "tls": true,
30 "tlsverify": true,
31 "tlscacert": "/etc/docker/ca.pem",
32 "tlscert": "/etc/docker/server-cert.pem",
33 "tlskey": "/etc/docker/server-key.pem"
34 }
35 - path: /etc/docker/ca.pem
36 encoding: b64
37 content: {{ .CACert | base64 }}
38 - path: /etc/docker/server-cert.pem
39 encoding: b64
40 content: {{ .TLSCert | base64 }}
41 - path: /etc/docker/server-key.pem
42 encoding: b64
43 content: {{ .TLSKey | base64 }}
44
45 runcmd:
46 - [ systemctl, daemon-reload ]
47 - [ systemctl, restart, docker ]

カスタムのcloud-initファイルを自動スケールサーバーに提供する必要があります。ファイルをボリュームとしてマウントできます。

--volume=/path/on/host/init.yml:/path/in/container/init.yml

また、コンテナ内のファイルの場所をオートスケールサーバーに通知する必要もあります。プロバイダーに基づいて構成を調整してください

DRONE_AMAZON_USERDATA_FILE=/path/inside/container/init.yml


How did we do?