feat: Updates for using pre-defined ansible role

This commit is contained in:
2024-11-24 20:11:24 -05:00
parent 39b5293736
commit 1a12b5340e
14 changed files with 57 additions and 202 deletions

View File

@@ -1,5 +1,7 @@
build_dir_name := ".build"
ansible_dir := ".ansible"
ansible_dir := "playbook"
vars_file := "vars.yml"
vault_file := "vault.yml"
[private]
default:
@@ -17,25 +19,22 @@ run_pandoc dir output_file: build
[private]
run_ansible build *ARGS:
@echo "Running ansible with build directory: {{build}}"
@cd {{ansible_dir}} && \
ansible-playbook playbook.yaml \
--extra-vars '{"config": { "work_dir": {{justfile_directory()}}, "build_dir": {{build}} }}' \
cd {{ansible_dir}} && \
ansible-playbook playbook.yml \
--inventory inventory.ini \
--extra-vars "work_dir={{justfile_directory()}}" \
--extra-vars "build_dir={{build}}" \
{{ARGS}}
alias ansible := build
# Run the playbook, using the vault example files.
[group("build")]
ansible-vault-example: (
run_ansible build_dir_name
"--extra-vars @group_vars/vault_example/vars.yaml"
"--extra-vars @group_vars/vault_example/vault.yaml"
"--ask-vault-password"
)
# Run the playbook, which generates files required to build a report.
[group("build")]
build: (run_ansible justfile_directory()/build_dir_name)
build *ARGS: (
run_ansible justfile_directory()/build_dir_name
"--tags build"
ARGS
)
# Build & generate an HTML report.
[group("generate")]
@@ -56,7 +55,7 @@ pdf title="Report.pdf" output_dir="${PWD}": (run_pandoc output_dir file_stem(tit
tex title="Report.tex" output_dir=".build": (run_pandoc output_dir file_stem(title) + ".tex")
@echo "Wrote to: " + {{output_dir}}/{{file_stem(title)}} + ".tex"
# Setup the working directory
# Setup the working directory, setup tags see: `https://git.housh.dev/michael/ansible-role-hpa#setup-tags`
[group("setup")]
setup tag='setup': (
run_ansible justfile_directory()/build_dir_name "--tags " + tag
@@ -64,7 +63,19 @@ setup tag='setup': (
# Setup the working directory with ansible-vault.
[group("setup")]
setup-vault: (setup "setup-with-vault")
setup-vault: (setup "setup-with-vault")(encrypt-vault)
# Encrypt the vault file, pass in --ask-vault-pass if no default password file is set.
[group("setup")]
[group("utlities")]
encrypt-vault *ARGS:
@ansible-vault encrypt {{vault_file}} {{ARGS}}
# Edit the vault file, pass in --ask-vault-pass if no default password file is set.
[group("utlities")]
edit-vault *ARGS:
@ansible-vault edit {{vault_file}} {{ARGS}}
# Removes build directory, useful when debugging.
[group("utilities")]
@@ -79,9 +90,12 @@ clean-all: clean-build-dir
@rm -f ./Report.{md,pdf}
@rm -f vars.{yml,yaml}
@rm -f vault.{yml,yaml}
@rm -f Definitions.md
@rm -f {footer,head}.tex
@rm -f {{ansible_dir}}/group_vars/all/{vars,vault}.{yml,yaml}
# Install the required ansible roles.
[group("utilities")]
install-requirements:
@ansible-galaxy install -r ./.ansible/requirements.yaml
@ansible-galaxy install -r {{ansible_dir}}/requirements.yml