64 lines
1.8 KiB
YAML
64 lines
1.8 KiB
YAML
---
|
|
- name: Create a new user
|
|
ansible.builtin.include_role:
|
|
name: user
|
|
vars:
|
|
username: "{{ cloudflare_ddns_user }}"
|
|
password: "{{ cloudflare_ddns_user_password }}"
|
|
- name: Install Python dependencies # noqa: package-latest
|
|
become: true
|
|
ansible.builtin.apt:
|
|
pkg: python3-pip
|
|
state: latest
|
|
- 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: /bin/bash
|
|
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
|