--- - name: Git is installed openbsd_pkg: name: git state: present tags: - etc-git - name: evocommit script is installed copy: src: evocommit dest: /usr/local/bin/evocommit mode: "0755" force: true tags: - etc-git - include: repository.yml vars: repository_path: "/etc" gitignore_items: - "aliases.db" - "*.swp" - "random.seed" - "openvpn/ipp.txt" - name: verify /usr/share/scripts presence stat: path: /usr/share/scripts register: _usr_share_scripts - include: repository.yml vars: repository_path: "/usr/share/scripts" gitignore_items: [] when: - _usr_share_scripts.stat.isdir - name: etc-git-optimize script is installed copy: src: etc-git-optimize dest: /usr/share/scripts/etc-git-optimize mode: "0755" force: true tags: - etc-git - name: etc-git-status script is installed copy: src: etc-git-status dest: /usr/share/scripts/etc-git-status mode: "0755" force: true tags: - etc-git - name: Legacy monthly cron job for /etc/.git optimization is absent lineinfile: path: /etc/monthly.local line: '/usr/local/bin/git --git-dir /etc/.git gc --quiet' state: absent tags: - etc-git - name: Legacy hourly cron job for /etc/.git status is absent cron: name: git status minute: 42 job: who > /dev/null || /usr/local/bin/git --git-dir=/etc/.git --work-tree=/etc status --short state: absent tags: - etc-git - name: Legacy daily cron jobs for /etc/.git status are absent lineinfile: path: /etc/daily.local line: "{{ item }}" owner: root mode: "0644" state: absent with_items: - 'next_part "Checking /etc git status:"' - '/usr/local/bin/git --git-dir=/etc/.git --work-tree=/etc status --short' tags: - etc-git - name: Cron job for monthly git optimization lineinfile: path: /etc/monthly.local line: "/usr/share/scripts/etc-git-optimize" owner: root mode: "0644" create: true tags: - etc-git - name: Cron job for monthly git optimization - next_part lineinfile: path: /etc/monthly.local line: 'next_part "Monthly optimization:"' insertbefore: "/usr/share/scripts/etc-git-optimize" owner: root mode: "0644" create: true tags: - etc-git - name: Cron job for hourly git status lineinfile: path: /etc/hourly.local line: "who > /dev/null || /usr/share/scripts/etc-git-status" owner: root mode: "0644" create: true state: "{{ etc_git_monitor_status | bool | ternary('present','absent') }}" tags: - etc-git - name: Cron job for hourly git status - next_part lineinfile: path: /etc/hourly.local line: 'next_part "Hourly warning for unclean Git repository if nobody is connected:"' insertbefore: "who > /dev/null || /usr/share/scripts/etc-git-status" owner: root mode: "0644" create: true state: "{{ etc_git_monitor_status | bool | ternary('present','absent') }}" tags: - etc-git - name: Cron job for daily git status lineinfile: path: /etc/daily.local line: "/usr/share/scripts/etc-git-status" owner: root mode: "0644" create: true state: "{{ etc_git_monitor_status | bool | ternary('present','absent') }}" tags: - etc-git - name: Cron job for daily git status - next_part lineinfile: path: /etc/daily.local line: 'next_part "Daily warning for unclean Git repository:"' insertbefore: "/usr/share/scripts/etc-git-status" owner: root mode: "0644" create: true state: "{{ etc_git_monitor_status | bool | ternary('present','absent') }}" tags: - etc-git