UNPKG

@installdoc/ansible-gas-station

Version:

An Ansible playbook that provisions your network with software from GitHub Awesome lists, developed with disaster recovery in mind ⛽🔥🤤

89 lines (78 loc) 2.91 kB
--- - name: Add .vault_pass file for automation purposes become_user: "{{ ansible_user }}" template: src: vault_password.j2 dest: ~/.vault_pass owner: "{{ ansible_user }}" mode: 0600 - name: Ensure ~/.config/autostart exists become_user: "{{ ansible_user }}" file: path: ~/.config/autostart state: directory mode: 0755 when: ansible_system == 'Linux' - name: Register display manager path command: cat /etc/X11/default-display-manager register: rb_display_man changed_when: false failed_when: false when: ansible_os_family == 'Debian' - name: Register display manager path (RedHat) command: grep '/usr/s\?bin' /etc/systemd/system/display-manager.service register: rb_display_man_rh changed_when: false failed_when: false when: ansible_os_family in ('RedHat', 'Archlinux') - name: Backup the display manager query set_fact: rb_display_manager: "{{ rb_display_man if rb_display_man.stdout is defined else rb_display_man_rh }}" - name: Copy ansible-installer.desktop to ~/.config/autostart (for continuing the installation after reboot) become_user: "{{ ansible_user }}" copy: src: ansible-installer.desktop dest: ~/.config/autostart/ansible-installer.desktop mode: 0700 when: - ansible_system == 'Linux' - rb_display_manager.stdout is defined and rb_display_manager.stdout | regex_search('lightdm|gdm|sddm') - name: Copy the script that will be run upon reboot become_user: "{{ ansible_user }}" copy: dest: ~/.config/ansible-continue.sh content: | function cleanup { rm -f ~/.config/ansible-continue.sh rm -f ~/.config/autostart/ansible-installer.desktop crontab -r || echo $1 # rm -rf "$HOME/gas-station" } trap cleanup EXIT cd "$HOME/gas-station" ansible-playbook --ask-sudo-pass -i inventories/ main.yml mode: 0700 - name: Ensure cron/cronie is installed package: name: "{{ 'cron' if ansible_os_family == 'Debian' else 'cronie' }}" state: present when: - ansible_system == 'Linux' - "rb_display_manager.stderr is defined and 'No such file or directory' in rb_display_manager.stderr" - name: Ensure cron/cronie service is enabled service: name: "{{ 'cron' if ansible_os_family == 'Debian' else ('crond' if ansible_os_family == 'RedHat' else 'cronie') }}" enabled: true when: - ansible_system == 'Linux' - "rb_display_manager.stderr is defined and 'No such file or directory' in rb_display_manager.stderr" - name: Ensure cron job is setup become_user: "{{ ansible_user }}" cron: name: ansible-continue job: ~/.config/ansible-continue.sh special_time: reboot user: "{{ ansible_user }}" when: "ansible_system == 'Darwin' or (rb_display_manager.stderr is defined and 'No such file or directory' in rb_display_manager.stderr)" - name: Reboot # noqa 301 command: reboot