Linuxに名称変更しましたね(もう1年経つのか...)。LinuxをISOイメージからディスク(VMware)へインストールする機会があったのでやり方をメモします。以前とやりかたが変わっていたので。😮インストール方法ISOイメージでブート後、coreosユーザでログインされるのでrootユーザに切り替えて以下のコマンドを実行することでディスクへインストール出来ます。stableさて、上の例ではインストールはされるものの、ユーザのパスワードもsshの公開鍵も設定されていないので、起動後にログインすることが出来ません。Linuxはプロビジョニングユーティリティを使用して初期設定を行うことができるので、これを利用します。対応しているプロビジョニングユーティリティはcloud-initとignitionです。オプションで指定できます。Linux用に改造したcoreos-cloudinitのようです。Disk今回はignitionを利用してみます。Linux用に設計されたプロビジョニングユーティリティです。見かけるのはcloud-initですよね。AWSとかでYAMLで書くアレ。何が違うのでしょうか。Ignition?Ignitionがリリースされた際の記事を見てみると、まずcloudinitの課題が書かれていました。cloudinitは設定を書くためにYAMLに似た言語が使われている(cloud-config)YAMLとの小さな違いとして、cloud-configは行頭にcloud-configであることを示すためのコメント行が必要である多くの言語にはYAMLを解析するライブラリがあるが、cloud-configを解析するライブラリは無いこの結果、プログラムでcloud-configを作成する際に先頭のコメント行が取り除かれてしまったり、8進数のファイルパーミッションが10進数に変換されてしまったりする現象が起きるそしてディスク上に無効なファイルパーミッションが設定されてしまったりするなどの問題が起きるまた、cloudinitはブートプロセスの後半で実行されるため、初期のシステムサービス、特にネットワーキングを適切に設定することが困難Ignitionはこの問題を解決するために作成されたようです。YAMLベースのcloud-configではなく、純粋なjsonを利用するブートプロセスの後半ではなく、前半に発動する前半とは具体的にはSystemd(PID=1)が起動する前、ストレージがマウントされる前つまりSystemdが起動する前にファイルシステムの再フォーマットやRAIDアレイの作成、ネットワークの設定を行うことができるこれによりSystemdがより適切に動作することができるまた、coreos-cloudinitと異なり、Ignitionは初回の起動時にのみ実行される(再起動するたびに元の設定で上書きされることが無い)ignition.jsonの作成方法ignition.jsonの例は以下。GitHubですが、jsonを手で書くのは非常に辛いので既存のcloud-configを変換するツールがあります。Ignition以下のように使います。cloud-config.yamlするとjsonが吐かれるのでこれをそのまま使います。ignition.jsonignition.jsonとcoreos-cloudinitのバリデータもあります。Toolscontainer-linux-config-transpilerについては以下で使い方が説明されています。Provisioningcloud-configの書き方は以下のドキュメントをつらつら眺めていました。Units作成したcloud-config.yamlとignition.json今回はこんな感じで最小限の設定をやってみました。公開鍵の登録、ネットワークの設定、Dockerの自動起動の設定。XXXXXXXX"]}]},"storage":{},"systemd":{"units":[{"enable":true,"name":"docker.service"}]}}感想ブート時にIgnitionやcloudinitが実行されるという部分についてもう少し詳しく知りたいと思った。どんな感じで実行されるのかいまいち実感出来てない...。ignition.jsonは最初手で作っていて辛すぎました。目立つところにcontainer-linux-config-transpilerについて書いてほぴい。userdataとか概念が多くて難しい...。AWSとかDigitalocean固有の言葉なのか一般的な話なのか分かり辛い印象...。参考リンクインストール方法について。Diskignitionについて。Configについて。Unitscloud-initについて。BigQueryへGCPのBilling情報を送っています。export機能について、先日メールで案内が配信されました。export機能がGA(正式版)になり、それにともなってスキーマが変わるから移行してね、というものでした。要約すると以下のような内容です。具体的には以下のような変更があるとのことです。.mylogin.cnf.mylogin.cnfファイルを使うことでパスワードの入力をすることなく、MySQLへ認証できます。以下の条件を満たしていないと参照してくれませんでした。以下のようにして作成できます。