aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ansible/host_vars/knot.yml8
-rw-r--r--ansible/mw.yml10
-rw-r--r--ansible/roles/lxc-host/tasks/main.yml32
-rw-r--r--ansible/roles/lxc-host/tasks/per-host.yml48
-rw-r--r--ansible/roles/lxc-machine/handlers/main.yml1
-rw-r--r--ansible/roles/lxc-machine/tasks/main.yml22
-rw-r--r--ansible/roles/mw-backend/tasks/main.yml1
-rw-r--r--ansible/roles/unix-machine/handlers/main.yml3
-rw-r--r--ansible/roles/unix-machine/tasks/main.yml31
-rw-r--r--ansible/sz-ds.yml4
10 files changed, 129 insertions, 31 deletions
diff --git a/ansible/host_vars/knot.yml b/ansible/host_vars/knot.yml
index f7bc64a..d01de6e 100644
--- a/ansible/host_vars/knot.yml
+++ b/ansible/host_vars/knot.yml
@@ -1,10 +1,18 @@
lxc_containers:
+ mw:
+ state: started
+ ipv4:
+ address: 10.0.3.2
+ netmask: 24
+ gateway: 10.0.3.1
sz-prod:
+ state: started
ipv4:
address: 10.0.3.3
netmask: 24
gateway: 10.0.3.1
sz-test:
+ state: stopped
ipv4:
address: 10.0.3.4
netmask: 24
diff --git a/ansible/mw.yml b/ansible/mw.yml
index 1ae18da..d4d6c1a 100644
--- a/ansible/mw.yml
+++ b/ansible/mw.yml
@@ -5,5 +5,11 @@
- secrets.yml
roles:
- timezone
- - lxc-machine
- - mw-backend
+ tasks:
+ - name: unix-machine
+ import_role: name=unix-machine
+ tags: unix-machine
+
+ - name: lxc-machine
+ import_role: name=lxc-machine
+ tags: lxc-machine
diff --git a/ansible/roles/lxc-host/tasks/main.yml b/ansible/roles/lxc-host/tasks/main.yml
index 676e27e..ba511c9 100644
--- a/ansible/roles/lxc-host/tasks/main.yml
+++ b/ansible/roles/lxc-host/tasks/main.yml
@@ -1,23 +1,11 @@
----
-#- debug:
-# msg: key="{{ item.key }}", ipv4="{{ item.value.ipv4 }}"
-# with_dict: "{{ lxc_containers }}"
-- name: Set IPv4 address
- lineinfile:
- path: "/var/lib/lxc/{{ item.key }}/config"
- regexp: "lxc.network.ipv4 *="
- line: "lxc.network.ipv4 = {{ item.value.ipv4.address }}/{{ item.value.ipv4.netmask }}"
- with_dict: "{{ lxc_containers }}"
-- name: Set IPv4 gateway
- lineinfile:
- path: "/var/lib/lxc/{{ item.key }}/config"
- regexp: "lxc.network.ipv4.gateway *="
- line: "lxc.network.ipv4.gateway = {{ item.value.ipv4.gateway }}"
- insertafter: "lxc.network.ipv4 *="
- with_dict: "{{ lxc_containers }}"
-- name: Set logfile
- lineinfile:
- path: "/var/lib/lxc/{{ item.key }}/config"
- regexp: "lxc.logfile *="
- line: "lxc.logfile = /var/lib/lxc/{{ item.key }}/{{ item.key }}.log"
+- name: Remove default network setup packages
+ apt:
+ name: "{{ item }}"
+ install_recommends: no
+ with_items:
+ - python-lxc
+
+- include_tasks: per-host.yml
+ vars:
+ i: "{{ item }}"
with_dict: "{{ lxc_containers }}"
diff --git a/ansible/roles/lxc-host/tasks/per-host.yml b/ansible/roles/lxc-host/tasks/per-host.yml
new file mode 100644
index 0000000..d38267e
--- /dev/null
+++ b/ansible/roles/lxc-host/tasks/per-host.yml
@@ -0,0 +1,48 @@
+- debug:
+ msg: "LXC HOST: {{ i.key }}"
+
+- name: lxc.network.type = veth
+ register: type
+ lineinfile:
+ path: "/var/lib/lxc/{{ i.key }}/config"
+ regexp: "lxc.network.type *="
+ line: "lxc.network.type = veth"
+- name: lxc.network.link = br0
+ register: link
+ lineinfile:
+ path: "/var/lib/lxc/{{ i.key }}/config"
+ regexp: "lxc.network.link *="
+ line: "lxc.network.link = br0"
+- name: Set IPv4 address {{ i.key }}
+ register: ipv4
+ lineinfile:
+ path: "/var/lib/lxc/{{ i.key }}/config"
+ regexp: "lxc.network.ipv4 *="
+ line: "lxc.network.ipv4 = {{ i.value.ipv4.address }}/{{ i.value.ipv4.netmask }}"
+- name: Set IPv4 gateway
+ register: ipv4_gateway
+ lineinfile:
+ path: "/var/lib/lxc/{{ i.key }}/config"
+ regexp: "lxc.network.ipv4.gateway *="
+ line: "lxc.network.ipv4.gateway = {{ i.value.ipv4.gateway }}"
+ insertafter: "lxc.network.ipv4 *="
+- name: Set logfile
+ register: logfile
+ lineinfile:
+ path: "/var/lib/lxc/{{ i.key }}/config"
+ regexp: "lxc.logfile *="
+ line: "lxc.logfile = /var/lib/lxc/{{ i.key }}/{{ i.key }}.log"
+
+#- name: state?
+# debug:
+# msg: "state={{ i.value.state }}"
+#- name: do restart?
+# debug:
+# msg: "DO RESTART: {{ i.key }}"
+# when: i.value.state == 'started'
+
+- name: restart lxc container {{ i.key }}
+ when: i.value.state == 'started' and (type.changed or link.changed or ipv4.changed or logfile.changed)
+ lxc_container:
+ name: "{{ i.key }}"
+ state: restarted
diff --git a/ansible/roles/lxc-machine/handlers/main.yml b/ansible/roles/lxc-machine/handlers/main.yml
index 3f96231..bb3f202 100644
--- a/ansible/roles/lxc-machine/handlers/main.yml
+++ b/ansible/roles/lxc-machine/handlers/main.yml
@@ -3,4 +3,3 @@
service:
name: systemd-sysctl.service
state: restarted
-
diff --git a/ansible/roles/lxc-machine/tasks/main.yml b/ansible/roles/lxc-machine/tasks/main.yml
index e75dcd9..c60b9e8 100644
--- a/ansible/roles/lxc-machine/tasks/main.yml
+++ b/ansible/roles/lxc-machine/tasks/main.yml
@@ -1,10 +1,12 @@
-- name: disable ipv6
- tags:
- - disable-ipv6
- copy:
- dest: /etc/sysctl.d/99-disable-ipv6.conf
- content: net.ipv6.conf.all.disable_ipv6=1
+- tags: enable-ipv6
+ file:
+ path: "/etc/sysctl.d/{{ item }}"
+ state: absent
notify: restart sysctl
+ with_items:
+ - 99-ipv6.conf
+ - 99-enable-ipv6.conf
+ - 99-disable-ipv6.conf
- name: /etc/hosts
copy:
@@ -18,6 +20,14 @@
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
+- name: Remove default network setup packages
+ apt:
+ name: "{{ item }}"
+ state: absent
+ with_items:
+ - ifupdown
+ - net-tools
+
- name: system setup
tags:
- packages
diff --git a/ansible/roles/mw-backend/tasks/main.yml b/ansible/roles/mw-backend/tasks/main.yml
index bbe7473..d1abd8c 100644
--- a/ansible/roles/mw-backend/tasks/main.yml
+++ b/ansible/roles/mw-backend/tasks/main.yml
@@ -24,6 +24,7 @@
- meta: flush_handlers
+# TODO: Remove, use unix-machine instead
- name: packages
apt:
name: "{{ item }}"
diff --git a/ansible/roles/unix-machine/handlers/main.yml b/ansible/roles/unix-machine/handlers/main.yml
new file mode 100644
index 0000000..ce78323
--- /dev/null
+++ b/ansible/roles/unix-machine/handlers/main.yml
@@ -0,0 +1,3 @@
+- name: update apt cache
+ apt:
+ update_cache: yes
diff --git a/ansible/roles/unix-machine/tasks/main.yml b/ansible/roles/unix-machine/tasks/main.yml
new file mode 100644
index 0000000..78e346a
--- /dev/null
+++ b/ansible/roles/unix-machine/tasks/main.yml
@@ -0,0 +1,31 @@
+- name: /etc/apt/apt.conf.d/99force-ipv4
+ copy:
+ dest: /etc/apt/apt.conf.d/99force-ipv4
+ content: 'Acquire::ForceIPv4 "true";'
+- name: /etc/apt/sources.list
+ notify: update apt cache
+ copy:
+ dest: /etc/apt/sources.list
+ content: |
+ deb [arch=i386] http://deb.debian.org/debian stretch main contrib non-free
+ deb [arch=i386] http://security.debian.org/ stretch/updates main contrib non-free
+
+- meta: flush_handlers
+
+# Make sure etckeeper installed very early
+- name: packages (early)
+ tags: packages
+ apt:
+ name: "{{ item }}"
+ install_recommends: no
+ with_items:
+ - git
+ - etckeeper
+
+- name: packages
+ tags: packages
+ apt:
+ name: "{{ item }}"
+ install_recommends: no
+ with_items:
+ - iputils-ping
diff --git a/ansible/sz-ds.yml b/ansible/sz-ds.yml
index 354a069..58252b7 100644
--- a/ansible/sz-ds.yml
+++ b/ansible/sz-ds.yml
@@ -5,6 +5,10 @@
roles:
- timezone
tasks:
+ - name: unix-machine
+ import_role: name=unix-machine
+ tags: unix-machine
+
- name: lxc-machine
import_role: name=lxc-machine
tags: lxc-machine