Fedora CoreOSのインストール練習 4 〜ディレクトリ配置〜
今回はFedora CoreOSというよりはIgnitionとButaneの話。
Ignitionで手元のディレクトリに下を丸ごとFedora CoreOS上に配置してみる。
まずは配置するディレクトリ構造を作る。
$ mkdir test $ mkdir test/dir1 $ mkdir test/dir2 $ echo 'Test file 1' > test/dir1/file1 $ dd if=/dev/urandom of=test/dir1/file2 bs=512 count=1 $ chmod +x test/dir1/file2 $ echo 'Test file 3' > test/dir2/file3 $ chmod 600 test/dir2/file3
test1
は普通のテキストファイル、test2
は実行権限を付けたバイナリファイル、test3
はパーミッションを600
に設定したテキストファイルを作成している。
作ったディレクトリ構造を確認。
$ ls -lR test/ test/: total 8 drwxr-xr-x 2 user group 4096 Jun 12 17:08 dir1 drwxr-xr-x 2 user group 4096 Jun 12 17:08 dir2 test/dir1: total 8 -rw-r--r-- 1 user group 12 Jun 12 17:07 file1 -rwxr-xr-x 1 user group 512 Jun 12 17:17 file2 test/dir2: total 4 -rw------- 1 user group 12 Jun 12 17:08 file3
次に、作ったtest
ディレクトリの下を配置するためのButan configファイルtree-embed.bu
を、
Butan configの仕様を参考に作成する。
ここでは、手元のtest配下を/var/home/core/target
に配置するように指定している。
variant: fcos version: 1.3.0 passwd: users: - name: core password_hash: (ハッシュ) storage: trees: - path: /var/home/core/target local: test
そして、作ったButan configをIgnition configファイルに変換する。
$ docker run -i --rm -v $PWD:/data quay.io/coreos/butane:release --files-dir /data < tree-embed.bu > tree-embed.ign
生成されたtree-embed.ign
の中身を整形したものがこちら。
{ "ignition": { "version": "3.2.0" }, "passwd": { "users": [ { "name": "core", "passwordHash": "(ハッシュ)" } ] }, "storage": { "files": [ { "path": "/var/home/core/target/dir1/file1", "contents": { "source": "data:,Test%20file%201%0A" }, "mode": 420 }, { "path": "/var/home/core/target/dir1/file2", "contents": { "source": "data:;base64,wTMSSxSVQHkEHeJdfqBKd8e9E0TyQReFqkTeXPydW7oCy83Em8GAOUGDDYeuTpZBZVOIcVkuFowrKeWpmnXIsGOt5g1CmWEDSw9dKbziFs7ASonrNaoVTmcl3k18Y45/oaIOmQx+i9/YZ9rAofZbaeIuqiCTputWB8COCoFZEEP1iRLOgw5AIM5Z2XcZD6b8fp5++jwu0h3VWdKW+xN9NHxQIPzz4J4fIK8Jpw5Lcrkzl0Yu0SAqV0xLgeQWtwNrmvihzxFqjhpqCE1QOb4zPsavfvTOUdbGzd7bW595n0MIBvvqcV0PqgX4OkjihqBwYhWECaakNVy3BVFtTgif4IPpgc2Qm8JMy7rpJwNFCPBleTf8Sys+LsXoXvyimDe2vRo0whKjSkWGO+TfoYl618g5p4gmWERVzC/oq35E2egcbN9Fy8gqssheJQwfVNQQ7viDLRdc7fY/i8zDBm+GGgsgrCMsuqUKerechAnw6UqNKtX10mu5KuQIWfZSGZKzb1bzAHCX4wl/DdWs4LIXnZfPe5F1gnWkC52eSNBFfNvzZqIaLIuZWHpAR4VnVfUNW0BRbgNgSWMkTt+7b0VWHpeMSADdDvEGCiUg9V4E6B60qLxTwFMj2oRdLzdErf5/OkXzzWXI7GafCBOmiWJvz1Lpbne74gJlrHKDd705iYQ=" }, "mode": 493 }, { "path": "/var/home/core/target/dir2/file3", "contents": { "source": "data:,Test%20file%203%0A" }, "mode": 420 } ] } }
テキストファイルはそのまま、バイナリファイルはbase64エンコードされて埋め込まれている。ファイルの中身がIgnition configに埋め込まれるので、当然ながら配置元ファイルの内容を変更したら、(Butane configを変更していなくても)Ignition configを変換し直す必要がある。
modeの420
は0644
を、493
は0755
を整数値にしたもの。
Butane configの仕様に書かれている通り、実行可能ファイルは0755
、それ以外は0644
に設定されている。
tree-embed.ign
を使ってFedora CoreOSをインストールして確認してみる。
$ ls -lR /var/home/core/target target/: total 0 drwxr-xr-x. 2 root root 32 Jun 12 08:33 dir1 drwxr-xr-x. 2 root root 19 Jun 12 08:33 dir2 target/dir1: total 8 -rw-r--r--. 1 root root 12 Jun 12 08:33 file1 -rwxr-xr-x. 1 root root 512 Jun 12 08:33 file2 target/dir2: total 4 -rw-r--r--. 1 root root 12 Jun 12 08:33 file3
手元のディレクトリ構造がFedora CoreOSに配置できた!