Refactor and modularize edgeconfig scripts
- Entirely new netbox helper functions, using pynetbox and objects,
instead of previous spaghetti code
- Allow for VM interfaces
- Allow device names to specify more than one segment of the DNS subdomain
- Split out forward and reverse DNS
- Fix issues with DHCP zone creation
- Support advertising NTP server via DHCP option
Playbooks
- Add QA, router, DNS, and user creation/config playbook
- Fix YAML formatting issues with playbooks
Change-Id: Id6c010ef1e122f4fd1bd97e9bb2128c4271947d0
diff --git a/playbooks/aethercompute-playbook.yml b/playbooks/aethercompute-playbook.yml
index d88483a..ba97a0f 100644
--- a/playbooks/aethercompute-playbook.yml
+++ b/playbooks/aethercompute-playbook.yml
@@ -1,3 +1,4 @@
+---
# Ansible playbook to configure aether compute nodes
- name: Configure aether compute nodes
diff --git a/playbooks/aetherfabric-playbook.yml b/playbooks/aetherfabric-playbook.yml
index e5c0a36..5c47a5c 100644
--- a/playbooks/aetherfabric-playbook.yml
+++ b/playbooks/aetherfabric-playbook.yml
@@ -1,3 +1,4 @@
+---
# Ansible playbook to configure aether fabric switches
- name: Configure aether fabric switches
diff --git a/playbooks/aethermgmt-playbook.yml b/playbooks/aethermgmt-playbook.yml
index 39be1c4..6e9d2d9 100644
--- a/playbooks/aethermgmt-playbook.yml
+++ b/playbooks/aethermgmt-playbook.yml
@@ -1,3 +1,4 @@
+---
# Ansible playbook to configure an aether management nodes
- name: Configure an aether management node
@@ -7,6 +8,7 @@
- netprep
- nsd
- unbound
+ - chrony
- dhcpd
- nginx
- onieboot
diff --git a/playbooks/dns-playbook.yml b/playbooks/dns-playbook.yml
index 33c4c9b..5c69990 100644
--- a/playbooks/dns-playbook.yml
+++ b/playbooks/dns-playbook.yml
@@ -6,3 +6,4 @@
become: true
roles:
- nsd
+ - unbound
diff --git a/playbooks/ntp-playbook.yml b/playbooks/ntp-playbook.yml
new file mode 100644
index 0000000..9aeb92d
--- /dev/null
+++ b/playbooks/ntp-playbook.yml
@@ -0,0 +1,9 @@
+---
+# Ansible playbook to configure an aether management nodes
+
+- name: Configure an aether management node with chrony ntp
+ hosts: aethermgmt
+ become: true
+ roles:
+ - chrony
+ - dhcpd
diff --git a/playbooks/pxeboot-playbook.yml b/playbooks/pxeboot-playbook.yml
new file mode 100644
index 0000000..910ca3c
--- /dev/null
+++ b/playbooks/pxeboot-playbook.yml
@@ -0,0 +1,9 @@
+---
+# Ansible playbook to configure a iPXE pxeboot webserver
+
+- name: Configure a pxeboot chainload webserver for iPXE
+ hosts: static,pxeboot
+ become: true
+ roles:
+ - nginx
+ - pxeboot
diff --git a/playbooks/pxeboot-playboot.yml b/playbooks/pxeboot-playboot.yml
deleted file mode 100644
index 3cbdae0..0000000
--- a/playbooks/pxeboot-playboot.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-# Ansible playbook to configure a iPXE pxeboot webserver
-
-- name: Configure pxeboot
- hosts: static
- become: true
- roles:
- - pxeboot
diff --git a/playbooks/qa-playbook.yml b/playbooks/qa-playbook.yml
new file mode 100644
index 0000000..d81b35f
--- /dev/null
+++ b/playbooks/qa-playbook.yml
@@ -0,0 +1,26 @@
+---
+# Ansible playbook to configure uses on a set of nodes
+
+- name: Configure users and extra software for QA tasks on the compute nodes
+ hosts: aethercompute:aethermgmt
+ become: true
+
+ roles:
+ - users
+
+ tasks:
+
+ - name: Install QA packages
+ apt:
+ name:
+ - "arping"
+ - "ethtool"
+ - "iperf"
+ - "ipvsadm"
+ - "tcpdump"
+ - "tcpreplay"
+ - "traceroute"
+ - "tshark"
+ state: "present"
+ update_cache: true
+ cache_valid_time: 3600
diff --git a/playbooks/router-playbook.yml b/playbooks/router-playbook.yml
new file mode 100644
index 0000000..ca614a1
--- /dev/null
+++ b/playbooks/router-playbook.yml
@@ -0,0 +1,15 @@
+---
+# Ansible playbook to configure a router
+
+- name: Configure a router
+ hosts: router
+ become: true
+ roles:
+# - netprep
+ - nsd
+ - unbound
+ - dhcpd
+# - nginx
+# - onieboot
+# - users
+
diff --git a/playbooks/users-playbook.yml b/playbooks/users-playbook.yml
new file mode 100644
index 0000000..1bcc8ef
--- /dev/null
+++ b/playbooks/users-playbook.yml
@@ -0,0 +1,9 @@
+---
+# Ansible playbook to configure uses on a set of nodes
+
+- name: Configure users
+ hosts: all
+ become: true
+
+ roles:
+ - users