feat: Working on using pre-defined ansible role instead of having embedded in the playbook.
This commit is contained in:
52
justfile
52
justfile
@@ -1,21 +1,25 @@
|
||||
build_dir := ".build"
|
||||
build_dir_name := ".build"
|
||||
ansible_dir := ".ansible"
|
||||
|
||||
[private]
|
||||
default:
|
||||
just --list
|
||||
|
||||
[private]
|
||||
run_pandoc dir output_file: build
|
||||
@pandoc --pdf-engine=xelatex \
|
||||
-H {{build_dir}}/"head.tex" \
|
||||
-H {{build_dir}}/"footer.tex" \
|
||||
-H {{build_dir_name}}/"head.tex" \
|
||||
-H {{build_dir_name}}/"footer.tex" \
|
||||
-o {{dir}}/{{output_file}} \
|
||||
{{build_dir}}/"Report.md" \
|
||||
{{build_dir}}/"Definitions.md"
|
||||
{{build_dir_name}}/"Report.md" \
|
||||
{{build_dir_name}}/"Definitions.md"
|
||||
|
||||
[private]
|
||||
run_ansible build *ARGS:
|
||||
@echo "Running ansible with build directory: {{build}}"
|
||||
@cd {{ansible_dir}} && \
|
||||
ansible-playbook playbook.yaml \
|
||||
--extra-vars "build_dir={{build}}" \
|
||||
--extra-vars '{"config": { "work_dir": {{justfile_directory()}}, "build_dir": {{build}} }}' \
|
||||
{{ARGS}}
|
||||
|
||||
alias ansible := build
|
||||
@@ -23,14 +27,15 @@ alias ansible := build
|
||||
# Run the playbook, using the vault example files.
|
||||
[group("build")]
|
||||
ansible-vault-example: (
|
||||
run_ansible build_dir "--extra-vars @group_vars/vault_example/vars.yaml"
|
||||
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)
|
||||
build: (run_ansible justfile_directory()/build_dir_name)
|
||||
|
||||
# Build & generate an HTML report.
|
||||
[group("generate")]
|
||||
@@ -51,9 +56,32 @@ 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
|
||||
[group("setup")]
|
||||
setup tag='setup': (
|
||||
run_ansible justfile_directory()/build_dir_name "--tags " + tag
|
||||
)
|
||||
|
||||
# Setup the working directory with ansible-vault.
|
||||
[group("setup")]
|
||||
setup-vault: (setup "setup-with-vault")
|
||||
|
||||
# Removes build directory, useful when debugging.
|
||||
[group("utilities")]
|
||||
clean:
|
||||
@rm -rf {{build_dir}}
|
||||
# just encase it gets built in wrong directory.
|
||||
@rm -rf {{ansible_dir}}/{{build_dir}}
|
||||
clean-build-dir:
|
||||
@rm -rf {{build_dir_name}}
|
||||
@rm -rf {{ansible_dir}}/{{build_dir_name}}
|
||||
|
||||
# Removes build directory, template, variable, and pdf files. Use with caution or work may lost.
|
||||
[group("utilities")]
|
||||
[confirm('This will remove build directories, template files, variables, and pdf files. Are you sure you want to do that?')]
|
||||
clean-all: clean-build-dir
|
||||
@rm -f ./Report.{md,pdf}
|
||||
@rm -f vars.{yml,yaml}
|
||||
@rm -f vault.{yml,yaml}
|
||||
|
||||
|
||||
# Install the required ansible roles.
|
||||
[group("utilities")]
|
||||
install-requirements:
|
||||
@ansible-galaxy install -r ./.ansible/requirements.yaml
|
||||
|
||||
Reference in New Issue
Block a user