のは、次のように私は私のNixOS configuration.nix
を設定しているとしましょう:NixOS - 引数を持つモジュールの輸入
{config, pkgs, ...}:
{
services.openssh.enable = true;
}
私は今、引数に基づいて、私のホスト名を設定しますnetworking.nix
と呼ばれる第二のファイルを持っていると思います。
{config, pkgs, hostname, ...}:
{
networking.hostName = hostname
}
これは可能ですか?どのようにファイルを含めることができます。私はすでにimports = [ ./networking.nix { hostname = "helloworld"; } ];
を使ってやってみましたが、うまくいきませんでした。
ありがとうございました。
NixOSで珍しいことをやっているのかどうか分かりません。私の目標は、一連のVMを共通の構成で共有することでした。ホスト名やIPアドレスのように、これらのVMの一部のパラメータだけを変更する必要があります。私は、これらの共通サービスの設定をパラメータとともにインポートするのが当然の選択だと考えました。より良いアプローチがありますか?それとも私が完全に間違った後の哲学ですか?申し訳ありませんが、私はNixOSに関しては初心者です。 :( – lschuermann
NixOSモジュールのオプションを使用して2. Nix関数としてパラメータ化されたモジュールを経由して、設定の一部に値を注入する3つの方法を使用することができます。 ; 3.特別な '_module.args'オプションを使用するモジュールオプションはNixOSのどこでも使用されているので、まずそれを試してください。おそらく十分で、タイプチェックとカスタムNixOSマニュアルを無料で入手できます。私があなたのコードを判断するためにここにいるわけではありません;) –
'hostname:{...}:'解決策は、モジュールシステムの周りで動作するため、可能な場合は避けてください。モジュールシステムを操作すると、エラーメッセージに適切な場所がないことや、サードパーティのモジュールからそれらを削除できないなどの問題が発生します。あなたの情報については、この形式は従来の理由とNixOSテストスイートで使用されているという事実のために存在します。 – nbp