Raspberry-Pi-IaC/roles/cloudflare-ddns/tasks/main.yml
2024-04-14 12:29:17 +02:00

64 lines
1.8 KiB
YAML

---
- name: Create a new user
ansible.builtin.include_role:
name: user
vars:
user_username: "{{ cloudflare_ddns_user }}"
user_password: "{{ cloudflare_ddns_user_password }}"
- name: Install Python dependencies
become: true
ansible.builtin.apt:
pkg: python3-pip
state: present
- name: Copy over DDNS scripting
become: true
become_user: "{{ cloudflare_ddns_user }}"
ansible.builtin.copy:
src: cloudflare_ddns
dest: ~/bin/
mode: '0700'
- name: Configure Python venv
become: true
become_user: "{{ cloudflare_ddns_user }}"
ansible.builtin.shell: |
cd ~/bin/cloudflare_ddns
python3 -m venv ./venv
chmod u+x ./venv/bin/activate
source ./venv/bin/activate
pip3 install -r ./requirements.txt
args:
executable: /usr/bin/zsh
creates: ~/bin/cloudflare_ddns/venv
- name: Create directory for storing public IP change logs and config
become: true
become_user: "{{ cloudflare_ddns_user }}"
ansible.builtin.file:
path: ~/cloudflare_ddns
state: directory
mode: '0700'
- name: Fill config file and store it in folder
become: true
become_user: "{{ cloudflare_ddns_user }}"
ansible.builtin.template:
src: ddns_config.ini.j2
dest: ~/cloudflare_ddns/ddns_config.ini
mode: '0600'
- name: Install Cloudflare DDNS service file
become: true
ansible.builtin.template:
src: cloudflare_ddns.service
dest: /lib/systemd/system/
mode: '0644'
- name: Install Cloudflare DDNS timer file
become: true
ansible.builtin.copy:
src: cloudflare_ddns.timer
dest: /lib/systemd/system/
mode: '0644'
- name: Enable the newly added systemd timer
become: true
ansible.builtin.systemd_service:
daemon_reload: true
name: cloudflare_ddns.timer
state: started
enabled: true