haproxy-wi/app/scripts/ansible/roles/git_backup.yml

86 lines
2.3 KiB
YAML

- hosts: "{{ variable_host }}"
become: yes
become_method: sudo
gather_facts: no
tasks:
- name: Check if .git exists
stat:
path: "{{ CONFIG_DIR }}/.git"
register: register_name
- name: Fail if has been installed
fail:
msg="Git configuration not found. Initialize git at the beginning"
when: not register_name.stat.exists and INIT == '0' and DELJOB == '0'
- name: Install git
package:
name: git
state: present
environment:
http_proxy: "{{PROXY}}"
https_proxy: "{{PROXY}}"
when: INIT == '1'
- name: Create home dir
file:
path: '/home/{{ ansible_user }}/.ssh'
state: directory
mode: 0700
group: '{{ ansible_user }}'
owner: '{{ ansible_user }}'
when: INIT == '1'
- name: Copy ssh file
copy:
src: '{{ KEY }}'
dest: '/home/{{ ansible_user }}/.ssh/id_rsa'
mode: 0600
group: '{{ ansible_user }}'
owner: '{{ ansible_user }}'
force: no
when: INIT == '1'
- name: Add write permisions
shell: "chmod o+wr -R {{ CONFIG_DIR }}"
- name: Git init
shell: 'cd {{ CONFIG_DIR }} && git init'
when: INIT == '1'
become: no
- name: Git configure
blockinfile:
path: "{{ CONFIG_DIR }}/.git/config"
block: |
[user]
name = Roxy-WI
email = roxy-wi@.com
when: INIT == '1'
- name: Git add remote
shell: 'cd {{ CONFIG_DIR }} && git add --all . && git commit -m "Roxy-WI init repo" && git branch -M {{ BRANCH }} && git remote add origin {{ REPO }}'
when: INIT == '1'
become: no
- name: Git add push
shell: 'cd {{ CONFIG_DIR }} && GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=no" git push -u origin {{ BRANCH }}'
when: INIT == '1'
become: no
- name: Creates git job
cron:
name: "Git backup {{ SERVICE }} configs"
special_time: "{{ PERIOD }}"
job: 'cd {{ CONFIG_DIR }} && git add --all . && git commit -m "Roxy-WI backup job at $(date)" && git push --set-upstream origin {{ BRANCH }}'
when: DELJOB == '0'
become: no
- name: Removes git backup job
cron:
name: "Git backup {{ SERVICE }} configs"
state: absent
when: DELJOB == '1'
become: no