Compare commits

...

5 Commits

Author SHA1 Message Date
Fabio Sinibaldi 195859625a vlab1 config for dns 2026-07-15 17:42:14 +02:00
Fabio Sinibaldi b3971199bd define tasks 2026-07-15 17:38:45 +02:00
Fabio Sinibaldi 2f807008f4 stdout_callback = debug 2026-07-14 17:30:21 +02:00
Fabio Sinibaldi da05908d65 OS_getInfo Playbook 2026-07-14 17:30:01 +02:00
Fabio Sinibaldi 8d38f71eb5 Custom Filter mapattributes 2026-07-14 17:29:23 +02:00
10 changed files with 118 additions and 6 deletions

3
.gitignore vendored
View File

@ -1,2 +1,3 @@
.DS_Store
ansible/playbooks/wg_clients
ansible/playbooks/wg_clients
ansible/playbooks/filter_plugins/__pycache__

View File

@ -215,7 +215,7 @@ ask_vault_pass=True
# (string) Set the main callback used to display Ansible output. You can only have one at a time.
# You can have many other callbacks, but just one can be in charge of stdout.
# See :ref:`callback_plugins` for a list of available options.
;stdout_callback=default
stdout_callback=debug
# (string) Set the default strategy used for plays.
;strategy=linear

View File

@ -0,0 +1,10 @@
---
bind_allow_query:
- "any"
bind_zones:
- name: 'vlab1.arpa.'
networks:
- "{{ vlan_network }}"
name_servers:
- "{{ inventory_hostname }}"

View File

@ -1,9 +1,10 @@
---
wg_interface: wg0
wg_port: 51820
#wg_server_public_interface: eth0
vlan_network: 192.168.99
wg_server_address: 192.168.99.1/32
#wg_server_private_key: "{{ wg_server_private_key }}"
dns_server: True
wg_peers:
@ -19,7 +20,6 @@ wg_peers:
- "192.168.99.0/24"
- "10.22.0.0/16"
- name: forced_missing_key_test
forceRegeneration: True
ip: "192.168.99.6/32"
allowedIPs :
- "192.168.99.0/24"

View File

@ -20,4 +20,7 @@ vlab-1:
tester.sse.cloud.isti.cnr.it:
controller:
hosts:
controller.sse.cloud.isti.cnr.it:
controller.sse.cloud.isti.cnr.it:
nameserver:
hosts:
vpn-1.sse.cloud.isti.cnr.it:

View File

@ -0,0 +1,37 @@
---
- hosts: localhost
collections:
- openstack.cloud
vars:
cloud: openstack
tasks:
- name : Get images
resources:
service: image
type: image
register: images
- debug:
msg: "Images : {{images.resources | mapattributes(['name','status']) | to_nice_yaml}}"
- name : Get compute flavors
resources:
service: compute
type: flavor
register: flavors
- debug:
msg: "Flavors : {{flavors.resources | mapattributes(['name','ram','vcpus']) | to_nice_yaml}}"
- name : Get networks
resources:
service: network
type: network
register: networks
- debug:
msg: "Networks : {{networks.resources | mapattributes(['name','status']) | to_nice_yaml}}"

View File

@ -0,0 +1,20 @@
# Source - https://stackoverflow.com/a/57665825
# Posted by Rabin, modified by community. See post 'Timeline' for change history
# Retrieved 2026-07-14, License - CC BY-SA 4.0
#!/usr/bin/env python
class FilterModule(object):
def filters(self):
return { 'mapattributes': self.mapattributes }
def mapattributes(self, list_of_dicts, list_of_keys):
l = []
for di in list_of_dicts:
newdi = { }
for key in list_of_keys:
# newdi[key] = di[key]
if di.get(key, None) != None:
newdi[key] = di[key]
l.append(newdi)
return l

View File

@ -0,0 +1,32 @@
---
- name: Preparing hosts
vars:
vpn_dns_hosts: []
set_fact:
vpn_dns_hosts: "{{vpn_dns_hosts + [{'name': item.name, 'ip': (item.ip | split('/'))[0] }] }}"
loop: "{{wg_peers + [{'name': 'ns1', 'ip':wg_server_address}] }}"
- name: Preparing bind zones
set_fact:
bind_zones : "{{ bind_zones | combine ({'primaries':[(wg_server_address | split ('/'))[0]], 'hosts':vpn_dns_hosts}) }}"
- name: Import role Bind
vars:
bind_listen:
ipv4:
- port: 53
addresses:
- "127.0.0.1"
- "{{ (wg_server_address | split ('/'))[0] }}"
- port: 5353
addresses:
- "127.0.1.1"
ansible.builtin.import_role:
name: bodsch.dns.bind
- name: Start a service
become: True
ansible.builtin.systemd:
name: named
state: restarted

View File

@ -2,5 +2,11 @@
- name: Configure VPN Server
hosts: wireguard_server
become: true
debugger: on_failed
roles:
- wireguard_server
tasks:
- name: Import role vpn_dns
ansible.builtin.import_role:
name: vpn_dns
when: dns_server is defined and dns_server

View File

@ -32,6 +32,9 @@ collections:
- name: chrissayon.wordpress_docker
version: 1.0.2
- name: openstack.cloud
version: 2.6.0
# dockerless wordpress
# - name: iamgini.wordpress
# version: 1.0.0