From 664af21ad59d76462d47e37aa3a5ab92073c47bf Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Thu, 4 Jul 2024 15:13:51 -0400 Subject: [PATCH] Add a dummynet role. --- .../environments/laptop/host_vars/odofreebsd | 1 + ansible/roles/dummynet/files/dnctl.conf | 1 + ansible/roles/dummynet/files/dnctl_rc.conf | 1 + ansible/roles/dummynet/tasks/common.yaml | 55 +++++++++++++++++++ ansible/roles/dummynet/tasks/freebsd.yaml | 20 +++++++ ansible/roles/dummynet/tasks/linux.yaml | 29 ++++++++++ ansible/roles/dummynet/tasks/main.yaml | 2 + ansible/roles/dummynet/tasks/peruser.yaml | 29 ++++++++++ .../roles/dummynet/tasks/peruser_freebsd.yaml | 0 .../roles/dummynet/tasks/peruser_linux.yaml | 0 ansible/roles/firewall/meta/main.yaml | 2 + 11 files changed, 140 insertions(+) create mode 100644 ansible/roles/dummynet/files/dnctl.conf create mode 100644 ansible/roles/dummynet/files/dnctl_rc.conf create mode 100644 ansible/roles/dummynet/tasks/common.yaml create mode 100644 ansible/roles/dummynet/tasks/freebsd.yaml create mode 100644 ansible/roles/dummynet/tasks/linux.yaml create mode 100644 ansible/roles/dummynet/tasks/main.yaml create mode 100644 ansible/roles/dummynet/tasks/peruser.yaml create mode 100644 ansible/roles/dummynet/tasks/peruser_freebsd.yaml create mode 100644 ansible/roles/dummynet/tasks/peruser_linux.yaml create mode 100644 ansible/roles/firewall/meta/main.yaml diff --git a/ansible/environments/laptop/host_vars/odofreebsd b/ansible/environments/laptop/host_vars/odofreebsd index 5aaa43f..56f559b 100644 --- a/ansible/environments/laptop/host_vars/odofreebsd +++ b/ansible/environments/laptop/host_vars/odofreebsd @@ -9,6 +9,7 @@ sshd_conf: "sshd_config" #pflog_conf: # - name: 0 # dev: pflog0 +# dummynet_config: "dnctl.conf" network_rc: "odofreebsd_network.conf" rc_conf: "odofreebsd_rc.conf" loader_conf: "odofreebsd_loader.conf" diff --git a/ansible/roles/dummynet/files/dnctl.conf b/ansible/roles/dummynet/files/dnctl.conf new file mode 100644 index 0000000..4367bab --- /dev/null +++ b/ansible/roles/dummynet/files/dnctl.conf @@ -0,0 +1 @@ +dnctl pipe 1 config bw 300KByte/s diff --git a/ansible/roles/dummynet/files/dnctl_rc.conf b/ansible/roles/dummynet/files/dnctl_rc.conf new file mode 100644 index 0000000..62b4c8f --- /dev/null +++ b/ansible/roles/dummynet/files/dnctl_rc.conf @@ -0,0 +1 @@ +dnctl_enable="YES" diff --git a/ansible/roles/dummynet/tasks/common.yaml b/ansible/roles/dummynet/tasks/common.yaml new file mode 100644 index 0000000..bef243a --- /dev/null +++ b/ansible/roles/dummynet/tasks/common.yaml @@ -0,0 +1,55 @@ +# - name: Create directories +# file: +# name: "{{ item }}" +# state: directory +# mode: 0755 +# owner: root +# group: wheel +# loop: +# - /foo/bar + +# - name: Install scripts +# copy: +# src: "files/{{ item.src }}" +# dest: "{{ item.dest }}" +# mode: 0755 +# owner: root +# group: wheel +# loop: +# - src: foo.bash +# dest: /usr/local/bin/foo + +# - name: Install Configuration +# copy: +# src: "files/{{ item.src }}" +# dest: "{{ item.dest }}" +# mode: 0600 +# owner: root +# group: wheel +# loop: +# - src: foo.conf +# dest: /usr/local/etc/foo.conf + +# - name: Clone Source +# git: +# repo: "https://foo.bar/baz.git" +# dest: /foo/bar +# version: "v1.0.2" +# force: true +# diff: false + +- import_tasks: tasks/freebsd.yaml + when: 'os_flavor == "freebsd"' + +- import_tasks: tasks/linux.yaml + when: 'os_flavor == "linux"' + +- include_tasks: + file: tasks/peruser.yaml + apply: + become: yes + become_user: "{{ initialize_user }}" + when: users is defined + loop: "{{ users | dict2items | community.general.json_query('[?value.initialize==`true`].key') }}" + loop_control: + loop_var: initialize_user diff --git a/ansible/roles/dummynet/tasks/freebsd.yaml b/ansible/roles/dummynet/tasks/freebsd.yaml new file mode 100644 index 0000000..d55cfa0 --- /dev/null +++ b/ansible/roles/dummynet/tasks/freebsd.yaml @@ -0,0 +1,20 @@ +- name: Install Configuration + copy: + src: "files/{{ item.src }}" + dest: "{{ item.dest }}" + mode: 0600 + owner: root + group: wheel + loop: + - src: "{{ dummynet_config }}" + dest: /etc/dnctl.conf + +- name: Install service configuration + copy: + src: "files/{{ item }}_rc.conf" + dest: "/etc/rc.conf.d/{{ item }}" + mode: 0644 + owner: root + group: wheel + loop: + - dnctl diff --git a/ansible/roles/dummynet/tasks/linux.yaml b/ansible/roles/dummynet/tasks/linux.yaml new file mode 100644 index 0000000..bbbb096 --- /dev/null +++ b/ansible/roles/dummynet/tasks/linux.yaml @@ -0,0 +1,29 @@ +# - name: Build aur packages +# register: buildaur +# become_user: "{{ build_user.name }}" +# command: "aurutils-sync --no-view {{ item }}" +# args: +# creates: "/var/cache/pacman/custom/{{ item }}-*.pkg.tar.*" +# loop: +# - foo + +# - name: Update cache +# when: buildaur.changed +# pacman: +# name: [] +# state: present +# update_cache: true + +# - name: Install packages +# package: +# name: +# - foo +# state: present + +# - name: Enable services +# systemd: +# enabled: yes +# name: "{{ item }}" +# daemon_reload: yes +# loop: +# - foo.service diff --git a/ansible/roles/dummynet/tasks/main.yaml b/ansible/roles/dummynet/tasks/main.yaml new file mode 100644 index 0000000..482c6e1 --- /dev/null +++ b/ansible/roles/dummynet/tasks/main.yaml @@ -0,0 +1,2 @@ +- import_tasks: tasks/common.yaml + when: (dummynet_config is defined and os_flavor == "freebsd") or (os_flavor == "linux") diff --git a/ansible/roles/dummynet/tasks/peruser.yaml b/ansible/roles/dummynet/tasks/peruser.yaml new file mode 100644 index 0000000..111e886 --- /dev/null +++ b/ansible/roles/dummynet/tasks/peruser.yaml @@ -0,0 +1,29 @@ +- include_role: + name: per_user + +# - name: Create directories +# file: +# name: "{{ account_homedir.stdout }}/{{ item }}" +# state: directory +# mode: 0700 +# owner: "{{ account_name.stdout }}" +# group: "{{ group_name.stdout }}" +# loop: +# - ".config/foo" + +# - name: Copy files +# copy: +# src: "files/{{ item.src }}" +# dest: "{{ account_homedir.stdout }}/{{ item.dest }}" +# mode: 0600 +# owner: "{{ account_name.stdout }}" +# group: "{{ group_name.stdout }}" +# loop: +# - src: foo.conf +# dest: .config/foo/foo.conf + +- import_tasks: tasks/peruser_freebsd.yaml + when: 'os_flavor == "freebsd"' + +- import_tasks: tasks/peruser_linux.yaml + when: 'os_flavor == "linux"' diff --git a/ansible/roles/dummynet/tasks/peruser_freebsd.yaml b/ansible/roles/dummynet/tasks/peruser_freebsd.yaml new file mode 100644 index 0000000..e69de29 diff --git a/ansible/roles/dummynet/tasks/peruser_linux.yaml b/ansible/roles/dummynet/tasks/peruser_linux.yaml new file mode 100644 index 0000000..e69de29 diff --git a/ansible/roles/firewall/meta/main.yaml b/ansible/roles/firewall/meta/main.yaml new file mode 100644 index 0000000..67d64d2 --- /dev/null +++ b/ansible/roles/firewall/meta/main.yaml @@ -0,0 +1,2 @@ +dependencies: + - dummynet