今回の内容は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(停止中)になっていました。