aboutsummaryrefslogblamecommitdiffstatshomepage
path: root/roles/etckeeper/tasks/main.yml
blob: 6752f92c57bbb461b6b1cb8c92030b06d954f1e4 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
                         
              


                          
 




                                         
 











                                 
 






















                                                                           

























                                                                      
- name: Install etckeeper
  become: true
  ansible.builtin.package:
    name: etckeeper
    state: present

- name: etckeeper init
  become: true
  ansible.builtin.command: etckeeper init
  args:
    creates: /etc/.git/config

- name: Configure /etc repository
  become: true
  community.general.git_config:
    scope: local
    repo: /etc
    name: '{{ item.name }}'
    value: '{{ item.value }}'
  loop:
    - name: user.name
      value: '{{ git_name }}'
    - name: user.email
      value: '{{ git_email }}'

- name: Initial commit
  become: true
  ansible.builtin.command: etckeeper commit 'initial commit'
  args:
    creates: /etc/.git/index

- name: Configure etckeeper
  become: true
  community.general.ini_file:
    path: /etc/etckeeper/etckeeper.conf
    # I'm pretty sure this file is sourced by a shell, so this is required:
    no_extra_spaces: true
    owner: root
    group: root
    mode: '644'
    section: null
    option: '{{ item.name }}'
    value: '{{ item.value }}'
  loop:
    - name: AVOID_DAILY_AUTOCOMMITS
      value: '1'
    - name: AVOID_COMMIT_BEFORE_INSTALL
      value: '1'

- name: Configure repository remote
  when: etckeeper_remote_url is defined
  become: true
  block:
    - name: git remote add
      ansible.builtin.command:
        argv:
          - git
          - remote
          - add
          - '{{ etckeeper_remote_name }}'
          - '{{ etckeeper_remote_url }}'
        chdir: /etc
        creates: '/etc/.git/refs/remotes/{{ etckeeper_remote_name }}/'

    - name: Configure pushes for etckeeper
      community.general.ini_file:
        path: /etc/etckeeper/etckeeper.conf
        no_extra_spaces: true
        owner: root
        group: root
        mode: '644'
        section: null
        option: PUSH_REMOTE
        value: '{{ etckeeper_remote_name }}'