Follow the guide at https://moonpiedmplings.github.io/guides/ccdc-env/
End environment created should have:
nix-shell
to create a temporary environment with the relevant toolscode .
launches vscode in the current directory, in the nix environmentVagrant.configure("2") do |config|
config.vm.provision "shell", path: "scripts/packages.sh"
config.vm.define "318" do |vmconfig| # 318 is the virtual machine name
vmconfig.vm.provision "ansible" do |ansible|
ansible.playbook = "ansible/inventory.yml"
end
vmconfig.vm.box = "generic/alpine318"
vmconfig.vm.provider "libvirt" do |libvirt|
libvirt.memory = 1024
libvirt.cpus = 2
end
end
end
linux/testing
, there are directories for several operating systemsvagrant up --provider libvirt machinename
brings them up..vagrant/provisioners/ansible/inventory/
Sample ansible inventory
[nix-shell:~/]$ ansible all -i inventory/ -m ping
test_host | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
pong
means you can configure a machine
vars
to pass variables to the role, same way you would pass variables to a function
backup
role pointed at the relevant mysql service data.---
- name: Example playbook
hosts: all
vars:
podman_backup_version: initial
podman_backup_containers: ["alpine"]
backup_version: initial
backup_restore_directories:
- "/var/lib/www/"
ufw_lockdown: true
ufw_open_ports: 80
roles:
- role: "../roles/facts"
- role: "../roles/ufw"
- role: "../roles/podman"
- role: "../roles/backup"