diff --git a/tasks/centos/networkd.yml b/tasks/centos/networkd.yml new file mode 100644 index 0000000..5823605 --- /dev/null +++ b/tasks/centos/networkd.yml @@ -0,0 +1,8 @@ +--- +- name: Install systemd-networkd + become: true + yum: + state: latest + name: + - systemd-resolved + - systemd-networkd diff --git a/tasks/centos/packages.yml b/tasks/centos/packages.yml new file mode 100644 index 0000000..f754736 --- /dev/null +++ b/tasks/centos/packages.yml @@ -0,0 +1,12 @@ +- name: Load package variables + include_vars: + file: packages.yml + +- name: Install global packages using YUM + become: true + yum: + state: latest + name: "{{ item }}" + with_items: + - "{{ packages_global }}" + - "{{ packages_yum }}" diff --git a/tasks/centos/repositories.yml b/tasks/centos/repositories.yml new file mode 100644 index 0000000..00e68e2 --- /dev/null +++ b/tasks/centos/repositories.yml @@ -0,0 +1,26 @@ +- name: Enable Extra Packages for Enterprise Linux + become: true + yum_repository: + name: epel + description: Extra Packages for Enterprise Linux + baseurl: https://download.fedoraproject.org/pub/epel/$releasever/$basearch/ + +- name: Install Extra Packages for Enterprise Linux GPG key + become: true + rpm_key: + state: present + key: https://archive.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7 + +- name: Enable Inline with Upstream Stable + become: true + yum: + state: latest + name: https://centos7.iuscommunity.org/ius-release.rpm + +- name: Disable yum subscription-manager + become: true + lineinfile: + regex: enabled=1 + line: enabled=0 + path: /etc/yum/pluginconf.d/subscription-manager.conf + state: present diff --git a/tasks/fedora/networkd.yml b/tasks/fedora/networkd.yml new file mode 100644 index 0000000..b0b76a9 --- /dev/null +++ b/tasks/fedora/networkd.yml @@ -0,0 +1,8 @@ +--- +- name: Install systemd-networkd + become: true + dnf: + state: latest + name: + - systemd-resolved + - systemd-networkd diff --git a/tasks/fedora/packages.yml b/tasks/fedora/packages.yml new file mode 100644 index 0000000..1f0b299 --- /dev/null +++ b/tasks/fedora/packages.yml @@ -0,0 +1,12 @@ +- name: Load package variables + include_vars: + file: packages.yml + +- name: Install global packages using DNF + become: true + dnf: + state: latest + name: "{{ item }}" + with_items: + - "{{ packages_global }}" + - "{{ packages_dnf }}" diff --git a/tasks/networkd.yml b/tasks/networkd.yml new file mode 100644 index 0000000..2832238 --- /dev/null +++ b/tasks/networkd.yml @@ -0,0 +1,55 @@ +--- +# The directory is deleted ahead of creation to ensure that no old configs +# remain after runnign ansible +- name: Delete networkd config directory + become: true + file: + path: /etc/systemd/network + state: absent + +- name: Create the networkd config directory + become: true + file: + path: /etc/systemd/network + state: directory + +- name: Make .network files + become: true + template: + src: dot.network.j2 + dest: "/etc/systemd/network/{{ item.key }}.network" + with_dict: "{{ networking }}" + +- name: Configure systemd services + become: true + block: + - name: Disable network scripts and NetworkManager + service: + name: "{{ item }}" + enabled: false + with_items: + - network + - NetworkManager + - NetworkManager-wait-online + - name: Enable systemd-networkd and systemd-resolved + service: + name: "{{ item }}" + enabled: true + state: started + with_items: + - systemd-networkd + - systemd-resolved + - systemd-networkd-wait-online + - name: Symlink so systemd-resolved uses /etc/resolv.conf + file: + dest: /etc/resolv.conf + src: /run/systemd/resolve/resolv.conf + state: link + force: true + setype: net_conf_t + - name: Symlink so /etc/resolv.conf uses systemd + file: + dest: /etc/systemd/system/multi-user.target.wants/systemd-resolved.service + src: /usr/lib/systemd/system/systemd-resolved.service + state: link + force: true diff --git a/tasks/tasks b/tasks/tasks new file mode 120000 index 0000000..413c601 --- /dev/null +++ b/tasks/tasks @@ -0,0 +1 @@ +tasks \ No newline at end of file