Fediversity/launch/.terraform/modules/peertube.deploy/terraform/install.md

11 KiB

Install

Install NixOS with nixos-anywhere

Example

locals {
  ipv4 = "192.0.2.1"
}

module "system-build" {
  source            = "github.com/nix-community/nixos-anywhere//terraform/nix-build"
  # with flakes
  attribute         = ".#nixosConfigurations.mymachine.config.system.build.toplevel"
  # without flakes
  # file can use (pkgs.nixos []) function from nixpkgs
  #file              = "${path.module}/../.."
  #attribute         = "config.system.build.toplevel"
}

module "disko" {
  source         = "github.com/nix-community/nixos-anywhere//terraform/nix-build"
  # with flakes
  attribute      = ".#nixosConfigurations.mymachine.config.system.build.diskoScript"
  # without flakes
  # file can use (pkgs.nixos []) function from nixpkgs
  #file           = "${path.module}/../.."
  #attribute      = "config.system.build.diskoScript"
}

module "install" {
  source            = "github.com/nix-community/nixos-anywhere//terraform/install"
  nixos_system      = module.system-build.result.out
  nixos_partitioner = module.disko.result.out
  target_host       = local.ipv4
}

Requirements

No requirements.

Providers

Name Version
null n/a

Modules

No modules.

Resources

Name Type
null_resource.nixos-remote resource

Inputs

Name Description Type Default Required
build_on_remote Build the closure on the remote machine instead of building it locally and copying it over bool false no
debug_logging Enable debug logging bool false no
disk_encryption_key_scripts Each script will be executed locally. Output of each will be created at the given path to disko during installation. The keys will be not copied to the final system
list(object({
path = string
script = string
}))
[] no
extra_environment Extra environment variables to be set during installation. This can be useful to set extra variables for the extra_files_script or disk_encryption_key_scripts map(string) {} no
extra_files_script A script that should place files in the current directory that will be copied to the targets / directory string null no
flake The flake to install the system from string "" no
instance_id The instance id of the target_host, used to track when to reinstall the machine string null no
kexec_tarball_url NixOS kexec installer tarball url string null no
nixos_facter_path Path to which to write a facter.json generated by nixos-facter. This option cannot be set at the same time as nixos_generate_config_path. string "" no
nixos_generate_config_path Path to which to write a hardware-configuration.nix generated by nixos-generate-config. This option cannot be set at the same time as nixos_facter_path. string "" no
nixos_partitioner nixos partitioner and mount script string "" no
nixos_system The nixos system to deploy string "" no
no_reboot DEPRECATED: Use phases instead. Do not reboot after installation bool false no
phases Phases to run. See nixos-anywhere --help for more information list(string)
[
"kexec",
"disko",
"install",
"reboot"
]
no
ssh_private_key Content of private key used to connect to the target_host string "" no
stop_after_disko DEPRECATED: Use phases instead. Exit after disko formatting bool false no
target_host DNS host to deploy to string n/a yes
target_pass Password used to connect to the target_host string null no
target_port SSH port used to connect to the target_host number 22 no
target_user SSH user used to connect to the target_host string "root" no

Outputs

No outputs.