nix
nix-install
Это роль Ansible, которая устанавливает пакетный менеджер nix. На момент написания все другие роли, которые я видел и которые устанавливают nix, устанавливают его для единственного пользователя. Эта роль запускает установку для нескольких пользователей, как рекомендуется в инструкции для обеспечения изоляции сборки. Роль поддерживает обновление версий nix, для которых nix удаляется, чтобы установить новую версию. Эта роль также очень простая, и поэтому ее легко адаптировать.
Требования
Это должно работать с любой Linux дистрибуцией, использующей systemd. Тестировалось на Ubuntu.
Переменные роли
nix_version -- Версия nix, которую нужно скачать и установить. Если не задано, эта роль возьмет последнюю протестированную версию nix.
installer_checksum -- Контрольная сумма для бинарного файла установщика. Вам нужно будет изменить это, если вы поменяете версию nix, которая загружается. Проще всего позволить этому провалиться и исправить ошибку, так как ошибка ясная и предоставляет новое значение контрольной суммы для копирования.
nix_commands -- Необязательный список команд оболочки для выполнения в среде с nix и работающим демоном nix.
flakes -- Установите, чтобы включить команды nix flake.
config -- Необязательно передать дополнительные настройки, чтобы добавить их в файл конфигурации nix.
Пример Playbook
Этот пример устанавливает nix для всех пользователей на myhost:
- hosts: myhost
roles:
- role: danielrolls.nix
Этот пример также устанавливает nix для всех пользователей на myhost и затем устанавливает и запускает nix-info. Смотрите главную страницу NixOS для примеров команд для выполнения:
- hosts: myhost
roles:
- role: danielrolls.nix
nix_commands:
- "nix-shell -p nix-info --command nix-info"
Лицензия
MIT
Информация об авторе
Installs the nix package manager with the daemon as recommended.
ansible-galaxy install danielrolls/nix-install