From 8dd0e2c8f8adf04655023b8b21acf22597db9dd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= Date: Wed, 7 Feb 2024 20:07:43 +0100 Subject: [PATCH] ansible: write vars to file to avoid argument list too long --- ansible/module.nix | 2 +- roles/nixos_rebuild/tasks/main.yml | 15 ++++++++++++++- roles/nixos_rebuild/templates/json.j2 | 1 + 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 roles/nixos_rebuild/templates/json.j2 diff --git a/ansible/module.nix b/ansible/module.nix index af26f1b..af49032 100644 --- a/ansible/module.nix +++ b/ansible/module.nix @@ -20,5 +20,5 @@ with lib; }; }; - config.ansible = mkIf (config.ansible-src != null && config.ansible-src != "") (builtins.fromJSON config.ansible-src); + config.ansible = mkIf (config.ansible-src != null && config.ansible-src != "") (builtins.fromJSON (builtins.readFile config.ansible-src)); } diff --git a/roles/nixos_rebuild/tasks/main.yml b/roles/nixos_rebuild/tasks/main.yml index 3da045a..0fcf5d1 100644 --- a/roles/nixos_rebuild/tasks/main.yml +++ b/roles/nixos_rebuild/tasks/main.yml @@ -2,10 +2,23 @@ #- debug: # msg: "{{ exported_vars }}" +- name: Create temporary file for ansible variables + tempfile: + state: file + suffix: .json + register: ansible_json_vars + delegate_to: localhost + +- name: Write variables to file + ansible.builtin.template: + src: templates/json.j2 + dest: "{{ ansible_json_vars.path }}" + delegate_to: localhost + - block: - name: Deploy "{{ flake_url }}" to "{{ target_host }}" ansible.builtin.shell: | - env ANSIBLE_JSON={{ exported_vars | to_json | quote }} {{ nix_wrapper }} nix run nixpkgs#nixos-rebuild -- --flake "{{ flake_dir }}#{{ flake_target }}" "switch" --impure --target-host "{{ target_host }}" --show-trace + env ANSIBLE_JSON={{ ansible_json_vars.path | quote }} {{ nix_wrapper }} nix run nixpkgs#nixos-rebuild -- --flake "{{ flake_dir }}#{{ flake_target }}" "switch" --impure --target-host "{{ target_host }}" --show-trace delegate_to: localhost register: nixos_rebuild rescue: diff --git a/roles/nixos_rebuild/templates/json.j2 b/roles/nixos_rebuild/templates/json.j2 new file mode 100644 index 0000000..8e69b74 --- /dev/null +++ b/roles/nixos_rebuild/templates/json.j2 @@ -0,0 +1 @@ +{{ exported_vars | to_json }}