bsdnix/roles/server/tasks/main.yaml

118 lines
2.7 KiB
YAML

---
- name: Install Packages
community.general.pkgng:
state: present
name: "{{ packages }}"
# FIXME: remove the symlink in the next release snapshot
- name: Remove old home sym link
shell: |
rm /home
touch /tmp/.ansible.home
args:
creates: "/tmp/.ansible.home"
- name: Remove original cron tab dir
shell: |
rm -rf /var/cron/tabs
touch /tmp/.ansible.crontabs
args:
creates: "/tmp/.ansible.crontabs"
- name: Setup home volume partition
shell: |
gpart create -s GPT da1
touch /tmp/.ansible.gpt
args:
creates: "/tmp/.ansible.gpt"
- name: Setup home fs type
shell: |
gpart add -t freebsd-zfs -l {{ storage.volume.name }} -a 1M {{ storage.volume.device }}
touch /tmp/.ansible.add
args:
creates: "/tmp/.ansible.add"
- name: Create zpool using home volume
shell: "zpool create -f {{ storage.volume.name }} {{ storage.volume.device }}"
args:
creates: "/{{ storage.volume.name }}"
- name: Create zfs home dataset
loop: "{{ storage.mounts }}"
shell: "zfs create -o mountpoint={{ item.mount }} {{ storage.volume.name }}{{ item.name }}"
args:
creates: "{{ item.mount }}"
- name: Change permissions
loop: "{{ permissions }}"
ansible.builtin.file:
path: "{{ item.name }}"
owner: "{{ item.owner }}"
group: "{{ item.group }}"
mode: "{{ item.mode }}"
- name: Change root password
user:
name: root
password: "{{ root_password | password_hash('sha512') }}"
- name: Setup sysctls
loop: "{{ kernel.sysctls | dict2items }}"
ansible.posix.sysctl:
name: "{{ item.key }}"
value: "{{ item.value }}"
sysctl_set: true
state: present
reload: true
- name: Install doas config
ansible.builtin.copy:
src: roles/server/files/doas.conf
dest: /usr/local/etc/doas.conf
owner: root
group: wheel
mode: '0600'
- name: Install knot resolver config
ansible.builtin.copy:
src: roles/server/files/kresd.conf
dest: /usr/local/etc/knot-resolver/kresd.conf
owner: root
group: wheel
mode: '0644'
- name: Install knot resolv.conf
ansible.builtin.copy:
src: roles/server/files/resolv.conf
dest: /etc/resolv.conf
owner: root
group: wheel
mode: '0644'
- name: Install jlogin
copy:
src: jlogin
dest: /usr/local/sbin/jlogin
owner: root
group: wheel
mode: '0755'
- name: Symlink knot dig
shell: "ln -sf /usr/local/bin/kdig /usr/local/bin/dig"
args:
creates: "/usr/local/bin/dig"
- name: disable unbound
community.general.sysrc:
name: local_unbound_enable
value: "NO"
notify: stop unbound
- name: enable knot resolver
community.general.sysrc:
name: kresd_enable
value: "YES"
notify: start kresd