今回の内容はLXDを試すでc1インスタンスを作成したままの状態であることを前提にして話を進めます。
LXDを試すで作成しましたインスタンスはホスト側のPCの再起動を行った後に状態(STATE)を確認してみると、RUNNING(起動中)になっています。
下記のコマンドにより確認できます。
$ lxc list
+------+---------+----------------------+-----------------------------------------------+-----------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +------+---------+----------------------+-----------------------------------------------+-----------+-----------+ | c1 | RUNNING | 10.148.110.44 (eth0) | fd42:ddb7:4afa:923a:216:3eff:fe28:fa2a (eth0) | CONTAINER | 0 | +------+---------+----------------------+-----------------------------------------------+-----------+-----------+
今回はホスト側のPCの再起動等を行っても、インスタンスが自動起動しないようにする設定について見ていきます。
最初にc1インスタンスで設定されている内容を確認します。
$ lxc config show c1
architecture: aarch64 config: image.architecture: arm64 image.description: ubuntu 24.04 LTS arm64 (release) (20240423) image.label: release image.os: ubuntu image.release: noble image.serial: "20240423" image.type: squashfs image.version: "24.04" volatile.base_image: 33534c9f8ea2994a8d77d1a5de9668f7c086327680391f621dcdf98a9824fb7a volatile.cloud-init.instance-id: c3fc3568-5a4f-49ee-9123-3f38b672ba36 volatile.eth0.host_name: vethc50b1b2e volatile.eth0.hwaddr: 00:16:3e:ef:45:5a volatile.idmap.base: "0" volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":165536,"Nsid":0,"Maprange":10000001},{"Isuid":false,"Isgid":true,"Hostid":165536,"Nsid":0,"Maprange":10000001}]' volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":165536,"Nsid":0,"Maprange":10000001},{"Isuid":false,"Isgid":true,"Hostid":165536,"Nsid":0,"Maprange":10000001}]' volatile.last_state.idmap: '[]' volatile.last_state.power: RUNNING volatile.uuid: 6b9a3e4c-9b7f-4511-b623-176f1c9d35a6 devices: {} ephemeral: false profiles: - default stateful: false description: ""
c1インスタンスに自動起動を無効にする設定を追加してみます。
設定の追加は下記のコマンドで設定することになっています。
lxc config set <instance_name> <option_key>=<option_value> <option_key>=<option_value> ...
今回は自動起動のkeyがboot.autostartになりますので、コマンドは
$ lxc config set c1 boot.autostart=false
になります。
bott.autostartを無効にした後に改めてc1インスタンスの設定内容を確認してみますと、
$ lxc config show c1
architecture: aarch64 config: boot.autostart: "false" image.architecture: arm64 image.description: ubuntu 24.04 LTS arm64 (release) (20240423) image.label: release image.os: ubuntu image.release: noble image.serial: "20240423" image.type: squashfs image.version: "24.04" volatile.base_image: 33534c9f8ea2994a8d77d1a5de9668f7c086327680391f621dcdf98a9824fb7a volatile.cloud-init.instance-id: 3ee20200-e548-4161-ab54-1ef97ff3aa33 volatile.eth0.host_name: vethd557ced5 volatile.eth0.hwaddr: 00:16:3e:28:fa:2a volatile.idmap.base: "0" volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":165536,"Nsid":0,"Maprange":10000001},{"Isuid":false,"Isgid":true,"Hostid":165536,"Nsid":0,"Maprange":10000001}]' volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":165536,"Nsid":0,"Maprange":10000001},{"Isuid":false,"Isgid":true,"Hostid":165536,"Nsid":0,"Maprange":10000001}]' volatile.last_state.idmap: '[]' volatile.last_state.power: RUNNING volatile.uuid: ac481fd3-5dbc-4391-8f27-d781e9b935e4 devices: {} ephemeral: false profiles: - default stateful: false description: ""
configの箇所にboot.autostart: "false"が挿入されていました。
ホスト側のPCの再起動を行った後、ターミナル(LXTerminal)を開き、c1の状態を確認してみますと、
$ lxc list
+------+---------+------+------+-----------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +------+---------+------+------+-----------+-----------+ | c1 | STOPPED | | | CONTAINER | 0 | +------+---------+------+------+-----------+-----------+
STATEがSTOPPED(停止中)になっていました。
これから作成するすべてのインスタンスすべてで自動起動を無効にしたい場合、毎回インスタンス作成後に自動起動の設定を追加するのは大変ですので、profileを操作して、常に自動起動が無効化されているインスタンスを作成できるようにします。
$ lxc profile edit default
config: boot.autostart: "false" description: Default LXD profile devices: eth0: name: eth0 network: lxdbr0 type: nic root: path: / pool: default type: disk name: default used_by: - /1.0/instances/c1
defaultのprofileを開き、configの下にboot.autostart: "false"を追加します。
これでインスタンス作成時にdefaultプロフィールを参照するインスタンスはすべて自動起動が無効化されるようになりました。
試しに、c2インスタンスを作成してみます。
$ lxc launch ubuntu:24.04 c2
c2インスタンス作成後にSTATEを確認してみますと、
$ lxc list
+------+---------+------+------+-----------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +------+---------+------+------+-----------+-----------+ | c1 | STOPPED | | | CONTAINER | 0 | +------+---------+------+------+-----------+-----------+ | c2 | STOPPED | | | CONTAINER | 0 | +------+---------+------+------+-----------+-----------+
STATEがSTOPPED(停止中)になっていました。
ホスト側のPCの再起動を行った後、ターミナル(LXTerminal)を開き、c2の状態を確認してみますと、
$ lxc list
+------+---------+------+------+-----------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +------+---------+------+------+-----------+-----------+ | c1 | STOPPED | | | CONTAINER | 0 | +------+---------+------+------+-----------+-----------+
同様にSTATEがSTOPPED(停止中)になっていました。