目次にジャンプページナビゲーションにジャンプ: 前のページ[アクセスキーp]/次のページ[アクセスキーn]
documentation.suse.com / SUSE Linux Enterprise Microのドキュメント / 導入ガイド / 事前に構築されたイメージの展開 / Ignitionを使用した設定
適用項目 SUSE Linux Enterprise Micro 5.2

8 Ignitionを使用した設定

この章では、マシンのセットアップに使用されるIgnitionプロビジョニングツールに関する詳細について説明します。ここでは、マシン定義に使用される必要な設定ファイルの提供方法を学習します。

8.1 Ignitionについて

Ignitionは、最初のブート時に仕様に従ってシステムを設定できるプロビジョニングツールです。システムが最初にブートすると、Ignitionはinitramfsの一部としてロードされ、(USBフラッシュディスク上、またはURLを指定できる)特定のディレクトリ内の設定ファイルを検索します。すべての変更は、カーネルが一時ファイルシステムから実際のルートファイルシステムに切り替わる前に(switch_rootコマンドが発行される前に)実行されます。

Ignitionは、JSON形式の設定ファイルを使用します。ファイルはconfig.ignと呼ばれます。人間が読みやすくするために、YAMLファイルを作成し、このファイルをJSONに変換できます。詳細については、8.2.1項 「YAML fccファイルをJSON ignに変換する」を参照してください。

8.2 config.ign

ベアメタルにインストールする場合、設定ファイルconfig.ignは、ignitionというラベルの付いた設定メディアのignitionサブディレクトリに存在する必要があります。ディレクトリ構造は次のようになる必要があります。

<root directory>
└── ignition
    └── config.ign

QEMU/KVM仮想マシンを設定する場合は、qemuコマンドの属性としてconfig.ignへのパスを提供します。例:

-fw_cfg name=opt/com.coreos/config,file=PATH_TO_config.ign

config.ignには、オブジェクト、文字列、整数、ブール値、オブジェクトのリストなど、さまざまなデータ型が含まれています。完全な仕様については、Ignition仕様v3.3.0を参照してください。

version属性は必須です。SLE Microの場合、その値は3.3.0またはそれ以前のバージョンに設定する必要があります。そのように設定しない場合、Ignitionは失敗します。

ルートとしてシステムにログインする場合は、少なくともrootのパスワードを含める必要があります。ただし、SSHキーを使用してアクセスを確立することをお勧めします。パスワードを設定する場合は、必ずセキュアなパスワードを使用してください。ランダムに生成されたパスワードを使用する場合は、少なくとも10文字を使用してください。パスワードを手動で作成する場合は、10文字以上を使用し、大文字と小文字、および数字を組み合わせます。

8.2.1 YAML fccファイルをJSON ignに変換する

Ignition設定を人間が理解できるようにするため、2段階設定を使用することができます。最初に、YAMLの設定をfccファイルとして準備し、これらの設定をJSONにトランスパイルします。トランスパイルは、butaneツールによって実行できます。

トランスパイル中に、butaneはYAMLファイルの構文も検証して、構造内の潜在的なエラーをキャッチします。butaneツールの最新バージョンの場合は、次のリポジトリを追加します:

> sudo  zypper ar -f \
  https://download.opensuse.org/repositories/devel:/kubic:/ignition/DISTRIBUTION/ \
  devel_kubic_ignition

ここで、DISTRIBUTIONは、次のいずれかです(ディストリビューションによって異なります):

  • openSUSE_Tumbleweed

  • openSUSE_Leap_$release_number

  • 15.3

これで、butaneツールをインストールできるようになりました。

> sudo  zypper in butane

次のコマンドを実行して、butaneを呼び出すことができます。

>  butane -p -o config.ign config.fcc

各要素の説明

  • config.fccは、YAML設定ファイルへのパスです

  • config.ignは、出力JSON設定ファイルへのパスです

  • -pコマンドオプションを使用すると、出力ファイルに改行が追加されるため、読みやすくなります。

8.2.2 YAML設定例

このセクションでは、YAML形式のIgnition設定の一般的な例をいくつか示します。

注記
注記: version属性は必須です

config.fccはバージョン1.4.0以下を含む必要があります。バージョンは対応するIgnition仕様に変換されます。

8.2.2.1 ストレージの設定

storage属性は、パーティションの設定、RAID、ファイルシステムの定義、ファイルの作成などに使用されます。パーティションを定義するには、disks属性を使用します。filesystem属性は、パーティションのフォーマット、特定パーティションのマウントポイントの定義に使用されます。files属性は、ファイルシステムのファイルの作成に使用できます。先に述べた属性のそれぞれについて、次のセクションで説明します。

8.2.2.1.1 disks属性

disks属性は、これらのデバイス上でパーティションを定義できるデバイスのリストです。disks属性には、少なくとも1つのdevice属性が含まれている必要があり、その他の属性はオプションです。次の例では、単一の仮想デバイスを使用し、ディスクを4つのパーティションに分けます。

variant: fcos
version: 1.0.0
storage:
  disks:
    - device:	"/dev/vda"
      wipeTable: true
      partitions: 
      	- label: root
      	  number: 1
      	  typeGuid: 4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709
      	- label: boot
      	  number: 2
      	  typeGuid: BC13C2FF-59E6-4262-A352-B275FD6F7172
        - label: swap
      	  number: 3
      	  typeGuid: 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
      	- label: home
      	  number: 4
      	  typeGuid: 933AC7E1-2EB4-4F13-B844-0E14E2AEF915
8.2.2.1.2 raid属性

raidは、RAIDアレイのリストです。raidの次の属性は必須です:

level

特定のRAIDアレイのレベル(linear、raid0、raid1、raid2、raid3、raid4、raid5、raid6)

devices

絶対パスで参照されるアレイ内のデバイスのリスト

name

mdデバイスに使用される名前

variant: fcos
version: 1.0.0
storage:
	- raid: data
	  name: system
	  level: raid1
	  devices: "/dev/sda", "/dev/sdb"
8.2.2.1.3 filesystem属性

filesystemには次の属性が含まれている必要があります:

device

デバイスへの絶対パス。通常、物理ディスクの場合は/dev/sda

format

ファイルシステム形式(btrfs、ext4、xfs、vfatまたはswap)

注記
注記

SLE Microの場合は、rootファイルシステムはbtrfsにフォーマットされる必要があります。

次の例は、filesystem属性の使用方法を示しています。/optディレクトリは、/dev/sda1パーティションにマウントされ、btrfsにフォーマットされます。パーティションテーブルは消去されません。

variant: fcos
version: 1.0.0
storage:
  filesystems:
    - path: /opt
      device: "/dev/sda1"
      format: btrfs
      wipe_filesystem: false
8.2.2.1.4 files属性

files属性を使用して、マシンに任意のファイルを作成できます。default mounted directoriesの外部でファイルを作成する場合は、filesystem属性を使用してディレクトリを定義する必要があることに注意してください。

次の例では、ホスト名がfiles属性を使用して作成されます。ファイル/etc/hostnameslemicro-1ホスト名で作成されます。

variant: fcos
version: 1.0.0
storage:
  files:
    - path: /etc/hostname
      mode: 0644
      overwrite: true
      contents:
        inline: "slemicro-1"
8.2.2.1.5 directories属性

directories属性は、ファイルシステムに作成されるディレクトリのリストです。directories属性には、少なくとも1つのpath属性が含まれている必要があります。

variant: fcos
version: 1.0.0
storage:
  directories:
  	- path: /home/tux/
  	  user: 
  	   - name: tux

8.2.2.2 ユーザ管理

passwd属性は、ユーザを追加するために使用されします。システムにログインする場合は、rootの作成、rootパスワードの設定、および/またはSSHキーのIgnition設定への追加を行います。たとえば、opensslコマンドを使用して、rootパスワードをハッシュする必要があります。

 openssl passwd -6

コマンドは、選択するパスワードのハッシュを作成します。このハッシュをpassword_hash属性の値として使用します。

 variant: fcos
version: 1.1.0
 passwd:
  users:
   - name: root
     password_hash: "$6$PfKm6Fv5WbqOvZ0C$g4kByYM.D2B5GCsgluuqDNL87oeXiHqctr6INNNmF75WPGgkLn9O9uVx4iEe3UdbbhaHbTJ1vpZymKWuDIrWI1"
     ssh_authorized_keys:
       - ssh-rsa long...key user@host

users属性には、少なくとも1つのname属性が含まれている必要があります。ssh_authorized_keysは、ユーザのsshキーのリストです。

8.2.2.3 systemdサービスの有効化

systemd属性で指定して、systemdサービスを有効にできます。

variant: fcos
version: 1.0.0
	systemd
	 units:
	  - name: sshd.service
      	    enabled: true

nameは、有効にするサービスの正確な名前(サフィックスを含む)である必要があります。