Incus 0.5 リリースのお知らせ¶
2024/01/26
はじめに ¶
Incus チームは、Incus 0.5 のリリースのアナウンスができてうれしいです!
このリリースは 2024 年の最初のリリースで、非常に忙しいリリースでした!LXD が AGPLv3 に再ライセンスされることが決まったあと、LXD からの変更が加えられていない最初のリリースでもあります。
このリリースには、Incus CLI に対する歓迎すべきたくさんの改良、たくさんの新たな仮想マシンの機能、クラスター退避とホストシャットダウンを処理するためのオプションの追加、そしてその他の小さな機能や改良点がいくつか含まれています。
それに加えて、多数のバグフィックスと、データベースの改良が多数行われており、特にクラスター環境において顕著なパフォーマンスの向上が得られるはずです。
いつものように、オンラインでご自身で試せます: https://linuxcontainers.org/incus/try-it/
Enjoy!
ハイライト ¶
Ansible, Terraform/OpenTofu and Packer¶
ここ数ヶ月で、一般的に普及しているツールの Incus に対するサポートが大幅に増えました。
- 接続プラグインが Ansible にあります
- Terraform と OpenTofu の 公式プロバイダー があります
- Incus 用の Packer プラグイン が利用できます
Linux ディストリビューションパッケージ ¶
以前の Incus のリリース以降、次のディストリビューションで新たにパッケージが利用できるようになりました:
- Arch Linux
- Debian (testing/unstable)
- Ubuntu (noble)
- Void Linux
「Incus をインストールするには」(原文)ページでインストール方法をご覧いただけます。
翻訳 ¶
翻訳のクリーンアップと Incus 用の Weblate のセットアップに少し時間がかかってしまいました。
Weblate にログインすることで、Incus CLI をお使いの言語に翻訳することがこれまでより簡単になりました。
新機能 ¶
新しい incus file create
コマンド ¶
新たに incus file create
コマンドが追加されました。このコマンドにより、既存のディレクトリーツリーを転送せずに、簡単に空のファイルや、シンボリックリンク、ディレクトリーを簡単に作れます。
stgraber@dakara:~$ incus file create demo/root/file stgraber@dakara:~$ incus file create --type=symlink demo/root/symlink /etc/hosts stgraber@dakara:~$ incus file create --type=directory demo/root/dir stgraber@dakara:~$ incus exec demo -- ls -lh /root total 2.5K drwxr-xr-x 2 root root 2 Jan 26 03:38 dir -rw-r--r-- 1 root root 0 Jan 26 03:37 file lrwxrwxrwx 1 root root 10 Jan 26 03:38 symlink -> /etc/hosts
新しい incus snapshot show
コマンド ¶
新しい incus snapshot show
コマンドを使用すると、Incus のインスタンスのスナップショットの一部として含まれる構成データを簡単に確認できます。
なお、Incus のスナップショットには、ファイルシステムの状態だけでなく、スナップショットを取った時点のインスタンスの設定情報(設定、デバイス、…)がすべて含まれます。
stgraber@dakara:~$ incus snapshot create demo s1 stgraber@dakara:~$ incus snapshot list demo +------+----------------------+----------------------+----------+ | NAME | TAKEN AT | EXPIRES AT | STATEFUL | +------+----------------------+----------------------+----------+ | s1 | 2024/01/25 22:39 EST | 0000/12/31 19:03 LMT | NO | +------+----------------------+----------------------+----------+ stgraber@dakara:~$ incus snapshot show demo s1 expires_at: 0001-01-01T00:00:00Z architecture: x86_64 config: image.architecture: amd64 image.description: Ubuntu jammy amd64 (20240125_07:42) image.os: Ubuntu image.release: jammy image.serial: "20240125_07:42" image.type: squashfs image.variant: default volatile.base_image: f9e9abeb4fc8691edf48078616a1aae628c6d5938b715e361c6b47cda0474679 volatile.cloud-init.instance-id: f724feba-245a-424b-bc51-43167258dc2a volatile.eth0.host_name: vethecbb346e volatile.eth0.hwaddr: 00:16:3e:06:67:f0 volatile.idmap.base: "0" volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]' volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]' volatile.last_state.idmap: '[]' volatile.last_state.power: RUNNING volatile.uuid: 8b8a1c75-977b-4197-9ad7-507b899432e9 volatile.uuid.generation: 8b8a1c75-977b-4197-9ad7-507b899432e9 created_at: 2024-01-26T03:39:09.583020489Z devices: {} ephemeral: false expanded_config: image.architecture: amd64 image.description: Ubuntu jammy amd64 (20240125_07:42) image.os: Ubuntu image.release: jammy image.serial: "20240125_07:42" image.type: squashfs image.variant: default volatile.base_image: f9e9abeb4fc8691edf48078616a1aae628c6d5938b715e361c6b47cda0474679 volatile.cloud-init.instance-id: f724feba-245a-424b-bc51-43167258dc2a volatile.eth0.host_name: vethecbb346e volatile.eth0.hwaddr: 00:16:3e:06:67:f0 volatile.idmap.base: "0" volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]' volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]' volatile.last_state.idmap: '[]' volatile.last_state.power: RUNNING volatile.uuid: 8b8a1c75-977b-4197-9ad7-507b899432e9 volatile.uuid.generation: 8b8a1c75-977b-4197-9ad7-507b899432e9 expanded_devices: eth0: name: eth0 network: incusbr0 type: nic root: path: / pool: default type: disk last_used_at: 0001-01-01T00:00:00Z name: s1 profiles: - default stateful: false size: 53760
シェル completion の新たな選択肢 ¶
私たちは、incus
コマンドラインツール用の単一の手書きの bash completion スクリプトから、代わりにシェル補完を処理するはるかに動的な方法を使用するようにゆっくりと移行しています。
初期の shell completion プロファイルは、次のコマンドで取得できます:
incus completion bash
incus completion fish
incus completion powershell
incus completion zsh
bash ユーザーはおそらく、現時点では手書きの completion スクリプトを使うほうが良いでしょう。しかし、次かその次のリリースでは、この動的に生成される新しいプロファイルが引き継ぐことに期待しています。
複数の VM エージェントバイナリーのサポート ¶
Incus は、仮想マシンに、複数のエージェントバイナリーを提供できるようになりました。
これは、次の 2 つのシナリオで役立ちます:
- 複数のオペレーティングシステムを扱う
- 複数のアーキテクチャーを扱う
現時点では、複数のアーキテクチャーに焦点を当てます。この新しい機能により、システム上で 32 ビットの仮想マシンを実行し、32 ビットのエージェントバイナリーをフェッチできるようになりました。
stgraber@castiana:~$ incus exec debian32 bash root@debian32:~# uname -a Linux debian32 6.1.0-17-686-pae #1 SMP PREEMPT_DYNAMIC Debian 6.1.69-1 (2023-12-30) i686 GNU/Linux root@debian32:~# exit stgraber@castiana:~$ incus exec debian32 bash root@debian32:~# uname -m i686 root@debian32:~# mount -t 9p agent /mnt root@debian32:~# ls -lh /mnt total 34M -rwxr-xr-x 1 root root 17M Jan 24 10:10 incus-agent.linux.i686 -rwxr-xr-x 1 root root 18M Jan 24 10:10 incus-agent.linux.x86_64
デイスクの io.bus
で virtio-blk
をサポート ¶
Incus 0.2 での NVME サポートの追加後、メカニズムを拡張し、仮想マシンの disk I/O バスとして、virtio-blk
も提供するようになりました。
この機能を使うには、disk
デバイスの io.bus
プロパティを virtio-blk
に設定します。
stgraber@dakara:~$ incus launch images:debian/12 demo --vm Launching demo stgraber@dakara:~$ incus storage volume create default demo size=5GiB --type=block Storage volume demo created stgraber@dakara:~$ incus config device add demo extra disk pool=default source=demo io.bus=virtio-blk Device extra added to demo stgraber@dakara:~$ incus exec demo bash root@demo:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 10G 0 disk ├─sda1 8:1 0 100M 0 part /boot/efi └─sda2 8:2 0 3.9G 0 part / vda 253:0 0 5G 0 disk
VM への USB ネットワークデバイスのパススルーのサポート ¶
USB バス経由で親のネットワークデバイスが接続されている仮想マシンで nictype=physical
を使うと、Incus はそのような接続を検出し、仮想マシンへの USB デバイスパススルーに内部的に変換するようになりました。
stgraber@castiana:~$ incus launch images:debian/12 demo --vm Launching demo stgraber@castiana:~$ incus config device add demo eth1 nic nictype=physical parent=enx207bd2a0f9eb Device eth1 added to demo stgraber@castiana:~$ incus exec demo bash root@demo:~# apt install usbutils Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: libusb-1.0-0 The following NEW packages will be installed: libusb-1.0-0 usbutils 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 142 kB of archives. After this operation, 492 kB of additional disk space will be used. Do you want to continue? [Y/n]· Get:1 http://deb.debian.org/debian bookworm/main amd64 libusb-1.0-0 amd64 2:1.0.26-1 [62.6 kB] Get:2 http://deb.debian.org/debian bookworm/main amd64 usbutils amd64 1:014-1 [79.7 kB] Fetched 142 kB in 1s (124 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libusb-1.0-0:amd64. (Reading database ... 20425 files and directories currently installed.) Preparing to unpack .../libusb-1.0-0_2%3a1.0.26-1_amd64.deb ... Unpacking libusb-1.0-0:amd64 (2:1.0.26-1) ... Selecting previously unselected package usbutils. Preparing to unpack .../usbutils_1%3a014-1_amd64.deb ... Unpacking usbutils (1:014-1) ... Setting up libusb-1.0-0:amd64 (2:1.0.26-1) ... Setting up usbutils (1:014-1) ... Processing triggers for libc-bin (2.36-9+deb12u3) ... root@demo:~# lsusb -tv /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 5000M ID 1d6b:0003 Linux Foundation 3.0 root hub |__ Port 4: Dev 2, If 0, Class=Communications, Driver=cdc_ncm, 5000M ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet |__ Port 4: Dev 2, If 1, Class=CDC Data, Driver=cdc_ncm, 5000M ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 480M ID 1d6b:0002 Linux Foundation 2.0 root hub root@demo:~# ip link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 00:16:3e:e7:f7:2d brd ff:ff:ff:ff:ff:ff 3: enx207bd2a0f9eb: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 20:7b:d2:a0:f9:eb brd ff:ff:ff:ff:ff:ff
クラスター退避の新しいオプション(force-stop
と stateful-stop
) ¶
新たにクラスターの退避オプションがいくつか追加されました。
これらは、インスタンス設定の cluster.evacuate
を使って、インスタンスごとに選択します。
force-stop
を使用すると、クリーンなシャットダウンのチャンスを与えられず、インスタンスは即時に停止します。このオプションでは、実行中の状態をディスクにフラッシュする機会がないため、インスタンスが実質的にステートレスであるときのみ意味があります。
stateful-stop
を使用すると、インスタンスを停止する前に、インスタンスの状態がディスクに書き込まれます。リストア時、インスタンスの状態も復元され、インスタンスが中断したところから処理を続行します。
ホストインスタンスのシャットダウン動作を設定する機能 ¶
新たな設定として、boot.host_shutdown_action
が追加されました。次の値を設定できます:
stop
(普通のシャットダウン動作)force-stop
(前の説明を参照)stateful-stop
(前の説明を参照)
この機能により特に、ホストのシャットダウン時に多数の仮想マシンをステートフルに停止し、その後起動時に復元することが簡単になります。
インスタンス作成の一部として起動まで行う機能 ¶
小さな API の最適化が行われ、インスタンスの作成リクエストの一部として、インスタンスを開始できるようになりました。API 呼び出しが節約され、Incus API のスクリプト作成が容易になりました。
incus launch
も、この機能を使うようになりました。
Loki のインスタンス名が設定可能に ¶
イベントを Loki に送る際、Incus はデフォルトのラベルのセットを提供します。
これらには、instance
と location
ラベルが含まれます。ここで、instance
は、Incus のインスタンスではなく、Loki のイベントソースインスタンスを指すことに注意してください。
これまでのところこれらは、サーバーがクラスター内の別のサーバーから発信されたイベントを転送するという、あまり起こりそうもないイベントの場合のみ異なります。
代わりに、クラスター環境では、複数のクラスターが同じ Loki インスタンスを使う場合に簡単にフィルターできるように、何らかのクラスター名を提供する方法を準備するほうがはるかに合理的です。
その目的で、新たな設定として loki.instance
を導入しました。これを設定すると、instance
ラベルを上書きします。
デフォルトの Grafana ダッシュボードも更新されました。Loki の instance
ラベルが Prometheus のジョブ名と一致する前提で Loki イベントをフィルターできるようになりました。
file における HEAD サポートの拡張 ¶
Incus の file API の HEAD
メソッドが、Content-Length
ヘッダーでサイズを返すようになりました。
この機能の用途は主に、ファイル名とファイルタイプだけでなく、通常のファイルのサイズも表示できるようになったため、Incus のインスタンス file API 上にあるファイルマネージャーのようなものを構築するような場合です。
ランタイムデータの保存に /run/incus
を使用 ¶
これまで Incus は、インスタンスログのためのディレクトリーである /var/log/incus
以下に、ある種のランタイムデータを保存していました。これは明らかに適切な場所ではなく、ログファイルを頻繁にローテーションして expire するようなシステムで、いくつか問題を起こしていました。
この問題を解決するために、Incus 0.5 ではランタイムデータを /run/incus
に保存し、/var/log/incus
は実際のログファイル専用の場所にしました。
将来的には、より多くのデータが同様に /var/lib/incus
から /run/incus
へ移される可能性があります。
すべての変更点 ¶
このリリースのすべての変更のリストは次の通りです(翻訳なし):
すべてのChangeLogを見る
- incusd/instances/qemu: Don't fail event sending on missing agent
- incusd/network/ovsdb: Properly close the connections
- doc: Add Fedora installation instructions
- incusd/network/ovn: Use Mutate instead of Update
- incusd/network/ovs: Port BridgeDelete to OVSDB
- incusd/network/ovs: Port BridgeAdd to OVSDB
- incusd/network/ovs: Port BridgePortAdd to OVSDB
- incusd/network/ovn: Port LogicalSwitchPortIPs to OVSDB
- incus-doc: Don't try to guess types
- doc: Update configs
- doc/installing: Add Arch instructions
- lxd-to-incus: Clarify error messages
- doc/installing: Fix chocolatey link
- doc: Remove MicroCloud references
- incusd/network/ovn: Properly check transactions
- incusd/network/ovs: Properly check transactions
- incusd/network/ovn: Fix ChassisGroupChassisAdd
- incusd/network/ovn: Fix BridgeAdd
- incusd/network/ovn: Properly handle uplink with disabled DHCP/DHCPv6
- incus: Create config paths when no local daemons
- lxd-to-incus: Support alternative snap path
- incusd/device/pci: Detect USB bus
- incusd/device/nic: Support USB parents for physical NICs in VMs
- internal/instance: Add new volatile keys
- incusd/instance/qemu: Fix typo
- incusd/instance/qemu: Handle USB NIC hotremove
- incusd/networks: Don't Fill network configs when joining
- incus/create: Set Target after network/storage lookup
- doc/architectures: Add missing entries
- doc/architectures: Re-phrase headers
- doc/architectures: Fix typo
- doc/architectures: Add note about VM architectures
- doc/wordlist: Add Loongarch
- doc/migrate_lxd: Add mention of CLI configuration
- incus/snapshot: Fix format handling in list
- incus/snapshot: Add show sub-command
- i18n: Update translation templates
- incus: Enable cobra's completion support
- lxd-to-incus: Handle local OVN
- incusd/storage_pools: Don't crash on nil pool
- incusd/instance/lxc: Re-generate lxc.conf during Exec
- incusd/instance/qemu: Add ErrExecDisconnected
- incusd: Make VM shutdown/reboot exit cleanly
- lxd-to-incus: Fix incorrect directory name
- lxd-to-incus: Detect source daemon using symlink path
- lxd-to-incus: Remove trailing slashes from paths
- lxd-to-incus: touch completion file after migration
- incusd: Refresh the state on cluster put/join
- Makefile: Don't complain about shellcheck version
- golangci: Disable confusing-results
- shared/idmap: Remove Extend
- shared/idmap: Return all idmaps in DefaultIdmapSet
- shared/idmap: Split idrange
- shared/idmap: Split idmapset
- shared/idmap: Split idmap
- shared/idmap: Split ByHostid
- shared/idmap: Export non-Linux specific logic
- shared/idmap: Cleanup IdmapSet
- shared/idmap: Rename IdRange to IDRange
- shared/idmap: Cleanup IdmapEntry
- shared/idmap: Rename is_between to isBetween
- shared/idmap: Rename ByHostID and make it use IdmapSet
- shared/idmap: Update idmapset for modern standard
- shared/idmap: Rename the files
- shared/idmap: Move ByHostID back into set
- shared/idmap: Rename IdmapEntry to Entry
- shared/idmap: Rename IDRange to Range
- shared/idmap: Rename IdmapSet to Set
- shared/idmap: Fix import shadowing
- shared/idmap: Rename VFS3Fscaps to VFS3FSCaps
- shared/idmap: Add/tweak export function descriptions
- shared/idmap: Properly capitalize
- shared/idmap: Rename UIDShift to Shift
- shared/idmap: Update kernelDefaultMap to return multiple maps
- shared/idmap: Update comments
- shared/idmap: Add FilterPOSIX
- shared/idmap: Introduce NewSetFromIncusIDMap
- shared/idmap: Introduce NewSetFromJSON
- shared/idmap: Replace JSONMarshal with ToJSON
- shared/idmap: Introduce set_sort
- shared/idmap: Always use pointer receiver
- shared/idmap: Move remaining loaders to set_load
- shared/idmap: Run tests on all platforms
- shared/idmap: Introduce DefaultFullKernelSet
- shared/idmap: Introduce NewSetFromCurrentProcess
- shared/idmap: Remove GetSet
- shared/idmap: Introduce NewSetFromSystem
- shared/idmap: Remove kernelDefaultMap
- shared/idmap: Add Clone to Entry
- shared/idmap: Add Split to Set
- shared/idmap: Replace Shift functions with ShiftPath/UnshiftPath
- fuidshift: Update for idmap changes
- incusd: Update for idmap changes
- incus-user: Don't set raw.idmap when uid/gid aren't in system map
- shared/idmap: Add Includes to Set
- incusd: Simplify idmap serialization
- incusd/instance/lxc: Detect bad idmap and find new one
- shared/cliconfig: Improve error handling
- incusd/instance/qemu: Don't hardcode UEFI firmware in checkFeatures
- incusd/firewall/xtables: Fix iptablesClear on nft shim
- incus/network: add dynamic completions
- shared/idmap: Fix typo in comments
- incus/project: Get current project from connection info
- incusd/cluster: Ensure the cluster member config is always sorted
- Update madmin-go to support loong64
- server/seccomp: Add loongarch64
- shared/cgo: Add loongarch64
- shared/idmap: Don't change the json format
- shared/idmap: Document AddSafe and fix double records
- incusd: Update instance_test for shared/idmap fix
- incusd/instance/file: Add type and size to HEAD
- shared/idmap: Fix typo in comment
- api: disk_io_bus_virtio_blk
- doc: Add virtio-blk as option to io.bus
- incusd/device/disk: Add virtio-blk
- incusd/instance/qemu: Add virtio-blk support
- Move db backup functions to ClusterTx
- Move db image functions to ClusterTx
- Move db instance functions to ClusterTx
- Move db network ACL functions to ClusterTx
- Move db network forward functions to ClusterTx
- Move db network load balancer functions to ClusterTx
- Move db network peer functions to ClusterTx
- Move db profile functions to ClusterTx
- Move db network zone functions to ClusterTx
- Move db network functions to ClusterTx
- Move db snapshot functions to ClusterTx
- Move db storage bucket functions to ClusterTx
- Move db storage pool functions to ClusterTx
- Move db volume snapshot functions to ClusterTx
- Move db storage volume functions to ClusterTx
- Move db warning functions to ClusterTx
- cmd/incusd: Fix bulk unfreezing
- cmd/incus: Add
resume
command - i18n: Update translations
- incusd/loki: Replace complex backoff with simple loop
- gomod: Update dependencies
- incus-agent: Handle built-in vsock module
- gomod: Update dependencies
- README: Re-introduce weblate
- incusd/network/acl: Avoid nested DB transactions
- incusd/instance/qemu: Start using seabios as CSM firmware
- incusd/forknet: Handle wifi detach
- doc/CONTRIBUTING: Fix incorrect comamnd paths
- i18n: Manual update to french translation
- i18n: Update translation templates
- Translated using Weblate (French)
- tests: Add license check
- Revert "Update madmin-go to support loong64"
- gomod: Update dependencies
- incusd: Correctly update event location
- incusd/events: Upgrade to websocket as late as possible
- Translated using Weblate (Japanese)
- Translated using Weblate (Japanese)
- Translated using Weblate (Japanese)
- Translated using Weblate (Japanese)
- Translated using Weblate (Japanese)
- api: loki_config_instance
- incusd/config: Add loki.instance
- incusd/loki: Add support for overriding instance name
- incusd: Add support for loki.instance
- doc: Update configs
- grafana: Add instance filters for Loki
- incusd/loki: Fix variable shadowing
- Translated using Weblate (Japanese)
- Translated using Weblate (Japanese)
- cmd/incusd/api_cluster: Join cluster transactions
- i18n: Remove empty translations
- api: instance_create_start
- shared/api: Add Start to InstnacesPost
- doc/rest-api: Refresh swagger YAML
- incusd/instance: Add support for Start property
- incus/launch: Use the Start property
- i18n: Update translation templates
- doc: Updates Windows install with Winget instructions
- doc: Add Winget to wordlist
- incusd/migration: Properly forward errors
- cmd/incus: Get owner mode only if
--gid
or--uid
is unset - cmd/incus: Add
incus file create
subcommand - test: Add tests for
incus file create
- i18n: Update translation templates
- Translated using Weblate (Japanese)
- Add note about scrape_interval and update examples
- cmd/incus: Remove unused
flagContent
variable inincus file create
- build(deps): bump actions/dependency-review-action from 3 to 4
- incusd/storage_volumes: Properly target refreshes
- incusd/storage_volumes: Use a single POST handler
- lxd-to-incus: Use Incus API client for LXD
- lxd-to-incus: Handle non-string LXD configs
- lxd-to-incus: Remove separate go package
- lxd-to-incus: Fix various issues
- Makefile: Update for lxd-to-incus
- gomod: Update dependencies
- incus/alias: Make default aliases visible
- incus: Mention aliases in help message
- i18n: Update translation templates
- incus: Handle non-existent home directory
- lxd-to-incus: Don't export internal functions
- lxd-to-incus: Fix error checking
- lxd-to-incus: Check that casting succeeded
- lxd-to-incus: Fix typo
- lxd-to-incus: Fix variable shadowing
- lxd-to-incus: Remove spurious printf
- lxd-to-incus: Add required comments
- lxd-to-incus: Simplify presence checks
- lxd-to-incus: Use field names in DottedVersion
- internal/util: Re-order path functions
- internal/util: Add RunPath
- incusd/sys: Add runtime directory
- incusd/seccomp: Move seccomp.socket to /run
- incusd/instance_logs: Drop conf files
- doc/rest-api: Refresh swagger YAML
- incusd/instance/common: Add RunPath
- incusd/instance/lxc: Move lxc.conf
- incusd/instance/qemu: Move qemu.conf
- doc: Update qemu.conf path
- incusd/apparmor: Add runtime directory
- incusd/instance/utils: Cleanup runtime path
- incusd/instance/lxc: Move files to runtime path
- incusd/instance/qemu: Move files to runtime path
- incusd/patches: Move files to runtime directory
- incusd/instance/qemu: Move agent loader to separate files
- incusd/apparmor/qemu: Remove mention of userns
- incusd/instance/qemu: Make config drive name configurable
- incusd/instance/qemu: Add new agent share
- incusd/apparmor/qemu: Allow access to agent path
- doc: Add INCUS_AGENT_PATH
- incusd/instance/qemu: Only expose config/agent drives over 9p
- incusd/instance/qemu/agent-loader: Remove virtiofs
- doc/getting_started: Point users to installing guide
- doc/installing: Cleanup distro instructions
- api_cluster: Optimize db transactions
- daemon_images: Optimize db transactions
- daemon_storage: Optimize db transactions
- images: Optimize db transactions
- storage_volumes_snapshot: Optimize db transactions
- instance/drivers: Optimize db transactions
- driver_ovn: Optimize db transactions
- network/acl: Optimize db transactions
- network/zone: Optimize db transactions
- storage_volumes: Optimize db transactions
- incusd/instance/qemu: Add some ArchLinux EDK2 filenames
- api_internal: Remove unreachable code
- doc/installing: Add Void Linux
- internal/instance: Don't use the node terminology
- doc: Update configs
- api: clustering_evacuation_stop_options
- internal/instance: Extend cluster.evacuate
- incusd/cluster: Add evacuation mode validation
- incusd/instance: Use a string for CanMigrate
- incusd/cluster: Update for CanMigrate
- incusd/cluster: Add stateful-stop and force-stop
- doc: Update configs
- api: boot_host_shutdown_action
- internal/instance: Add boot.host_shutdown_action
- doc: Update configs
- scripts/bash: Add boot.host_shutdown_action
- incusd/project: Add boot.host_shutdown_action
- incusd/instances: Add support for boot.host_shutdown_action
- incusd/instance: Fallback to stateless start when no state available
- internal/archive: Fix squashfs error handling
- gomod: Update dependencies
ドキュメント ¶
Incus のドキュメントはこちらです:
https://incus-ja.readthedocs.io/ja/latest/ (日本語訳)
https://linuxcontainers.org/incus/docs/main/ (原文)
パッケージ ¶
Incus の開発元は、通常リリースの tarball のみをリリースするため、公式の Incus パッケージはありません。Incus を実行するために使えるオプションを以下にいくつか示します。
Linux 上に Incus サーバーをインストールする ¶
Incus はほとんどの一般的な Linux ディストリビューションで利用できます。インストール手順の詳細は、Incus のドキュメントを参照してください。
https://incus-ja.readthedocs.io/ja/latest/installing/ (日本語訳)
https://linuxcontainers.org/incus/docs/main/installing/ (原文)
Incus クライアントの Homebrew パッケージ ¶
HomeBrew 経由で、Linux と macOS 向けにクライアントツールが利用できます。
https://formulae.brew.sh/formula/incus
Incus クライアントの Chocolatey パッケージ ¶
Chocolatey 経由で、Windows ユーザー向けにクライアントツールが利用できます。
https://community.chocolatey.org/packages/incus/0.5
Incus クライアントの Winget パッケージ ¶
Winget 経由で、Windows ユーザー向けにクライアントツールが利用できます。
https://winstall.app/apps/LinuxContainers.Incus
サポート ¶
現在は初期段階ですので、Incus の各リリースは、次のリリースが出るまでしかサポートされません。LXC と LXCFS のリリースと合わせて LTS リリースを計画していますので、この状況はここ数ヶ月で変わるでしょう。
コミュニティサポートはこちらから : https://discuss.linuxcontainers.org
商用サポートはこちらから : https://zabbly.com/incus
バグはこちらから報告できます : https://github.com/lxc/incus/issues