Files
tjas-infra/tasks/installer.yml
2025-07-24 14:30:14 +03:00

163 lines
4.5 KiB
YAML

---
- name: "Init : Python 3 : Install"
ansible.builtin.raw: apt install -y python3 python3-pip python3-setuptools python3-venv python3-dev
register: task
changed_when:
- "task.stdout.find('0 upgraded, 0 newly installed, 0 to remove') == -1"
- name: "Init: Python 3 : Libraries - APT"
ansible.builtin.raw: apt install -y python3-apt
register: task
changed_when:
- "task.stdout.find('0 upgraded, 0 newly installed, 0 to remove') == -1"
#- name: "Init : Python 3 : Configure - Virtual Environment : Test"
# ansible.builtin.raw: "~/.venv/ansible/bin/pip3"
# register: task632
# changed_when: false
# failed_when: false
#- name: "Init : Python 3 : Configure - Virtual Environment : Delete"
# ansible.builtin.file:
# path: "~/.venv/ansible"
# state: absent
# when:
# - "task632.stdout.find(\"ModuleNotFoundError: No module named 'pip'\") != -1"
#- name: "Init : Python 3 : Configure - Virtual Environment : Create"
# ansible.builtin.pip:
# name: pip
# state: latest
# extra_args: --upgrade
# virtualenv: ~/.venv/ansible
# virtualenv_command: "python3 -m venv"
# - name: "Installer : Tools : Install"
# ansible.builtin.apt:
# name: "{{ package }}"
# state: latest
# vars:
# packages:
# - git
# - rsync
# - unzip
# - nano
# - tar
# - gnupg
# - screen
# - jq
# - sudo
# - pkg-config
# - etckeeper
# loop: "{{ packages }}"
# loop_control:
# label: "{{ package }}"
# loop_var: "package"
# - name: "Installer : FirewallD : Dependencies - Packages"
# ansible.builtin.apt:
# name:
# - python3-firewall
# - iptables
# state: latest
# - name: "Installer : FirewallD : Install"
# ansible.builtin.apt:
# name: "firewalld"
# state: latest
# - name: "Installer : FirewallD : Start"
# ansible.builtin.systemd_service:
# name: firewalld
# state: started
# enabled: true
# - name: "Installer - Ansible - Python Library"
# ansible.builtin.pip:
# name: ansible
# state: latest
# extra_args: --upgrade
# virtualenv: ~/.venv/ansible
# virtualenv_command: "python3 -m venv"
# tags:
# - ansible
# - name: "Installer : Ansible : Create Folder"
# ansible.builtin.file:
# path: ~/bin
# state: directory
# tags:
# - ansible
# - name: "Installer : Ansible : Create Symbolic Links"
# ansible.builtin.file:
# src: ~/.venv/ansible/bin/{{ binary }}
# dest: ~/bin/{{ binary }}
# state: link
# vars:
# binaries:
# - ansible
# - ansible-community
# - ansible-config
# - ansible-console
# - ansible-doc
# - ansible-galaxy
# - ansible-inventory
# - ansible-playbook
# - ansible-pull
# - ansible-test
# - ansible-vault
# loop: "{{ binaries }}"
# loop_control:
# label: "{{ binary }}"
# loop_var: "binary"
# tags:
# - ansible
# - name: "Installer - Ansible - Dependencies / Python Libraries"
# ansible.builtin.pip:
# name: "{{ library }}"
# state: latest
# extra_args: --upgrade
# virtualenv: ~/.venv/ansible
# virtualenv_command: "python3 -m venv"
# vars:
# libraries:
# - cryptography
# - dnspython
# - hvac
# - jmespath
# - netaddr
# - pexpect
# loop: "{{ libraries }}"
# loop_control:
# label: "{{ library }}"
# loop_var: "library"
# - name: "Installer : MariaDB : Dependencies / Python Library : pymysql"
# ansible.builtin.pip:
# name: pymysql
# state: latest
# extra_args: --upgrade
# virtualenv: ~/.venv/ansible
# virtualenv_command: "python3 -m venv"
# tags:
# - mariadb
- name: "Installer : Schedule : Maintenance"
ansible.builtin.cron:
name: "PVJJK 1.VOS TJAS - Infra - Maintenance"
hour: "*/3"
minute: "0"
job: "~/.venv/ansible/bin/ansible-pull -U ssh://git@github.com/cwchristerw/tjas-infra -d ~/.ansible/pull/pvjjk-1vos-tjas/infra --accept-host-key --private-key ~/.ssh/keys/pvjjk-1vos-tjas/infra --vault-password-file ~/.ansible/vault/pvjjk-1vos-tjas.yml tasks.yml -t maintenance"
tags:
- cron
- name: "Installer : Schedule : Deployer"
ansible.builtin.cron:
name: "PVJJK 1.VOS TJAS - Infra - Deployer"
minute: "*/5"
job: "~/.venv/ansible/bin/ansible-pull -U ssh://git@github.com/cwchristerw/tjas-infra -d ~/.ansible/pull/pvjjk-1vos-tjas/infra --accept-host-key --private-key ~/.ssh/keys/pvjjk-1vos-tjas/infra --vault-password-file ~/.ansible/vault/pvjjk-1vos-tjas.yml tasks.yml -t deployer"
tags:
- cron