フォーマットの解説
ここまでの説明で薄々気づいたかと思いますが,
image:メタデータ情報
imageにはイメージのメタデータを記録します。
image:
name: ubuntu-disco-x86_64
distribution: ubuntu
release: focal
description: |-
Ubuntu {{ image.release }}
architecture: x86_64
必須なのはdistributionだけです。原則として任意の文字列を指定可能ですが,
また,
source:ベースシステムの構築方法
sourceにはベースシステムの構築方法とイメージファイルの取得方法を記載します。
source:
downloader: debootstrap
same_as: gutsy
url: http://archive.ubuntu.com/ubuntu
keyserver: keyserver.ubuntu.com
keys:
- 0x790BC7277767219C42C86F933B4FE6ACC0B21F32
- 0xf6ecb3762474eda9d21b7022871920d1991bc93c
downloaderでベースイメージの取得方法を指定し,
上記の例だとdebootstrap
コマンドをベースイメージの取得・/usr/
以下のどのファイルをビルドスクリプトとして利用するかを指定し,
実はdebootstrapだけが特殊ケースで,
- almalinux-http
- alpinelinux-http
- alt-http
- apertis-http
- archlinux-http
- busybox
- centos-http
- debootstrap
- docker-http
- fedora-http
- funtoo-http
- gentoo-http
- opensuse-http
- openwrt-http
- oraclelinux-http
- plamolinux-http
- rockylinux-http
- rootfs-http
- sabayon-http
- ubuntu-http
- voidlinux-http
おおよそLXDのイメージサーバーでインストール可能なLinuxディストリビューションは,
busyboxはBusyBoxのソースコードをダウンロード・
ちなみにdocker-httpの場合は,docker pull
で渡す名前をかけば大丈夫です。独自のレジストリを利用したいなら,DOCKER_
を設定しておいてください。ちなみにこれはSabayon Linuxのために導入された仕組みです。普通のDockerイメージをLXDに対応させるには,/sbin/
を適切に設定したり
- ※1 原則としてENTRYPOINTとCMDを実行するスクリプトにすれば良いだけなのですが,その前にネットワーク設定等が必要な場合もあります。
targets: 特定のターゲット向けの細かい設定
targetsでは,
targets:
lxc:
create-message: |-
You just created an {{ image.description }} container.
To enable SSH, run: apt install openssh-server
No default root or user password are set by LXC.
config:
- type: all
before: 5
content: |-
lxc.include = LXC_TEMPLATE_CONFIG/ubuntu.common.conf
- type: user
before: 5
content: |-
lxc.include = LXC_TEMPLATE_CONFIG/ubuntu.userns.conf
- type: all
after: 4
content: |-
lxc.include = LXC_TEMPLATE_CONFIG/common.conf
- type: user
after: 4
content: |-
lxc.include = LXC_TEMPLATE_CONFIG/userns.conf
- type: all
content: |-
lxc.arch = {{ image.architecture_personality }}
ubuntu.
LXDの場合は,