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 ⛽🔥🤤

82 lines (76 loc) 3.77 kB
--- - name: "Ensure {{ software_item }}'s Homebrew Tap is installed" become: false community.general.homebrew_tap: name: "{{ software_package[software_item]['brew_tap'] }}" state: present when: software_package[software_item]['brew_tap'] is defined # @action Ensures software is installed # Installs software on MacOS Systems using `Homebrew` - name: "Ensure {{ software_item }} is installed (Homebrew)" become: false community.general.homebrew: name: "{{ software_package[software_item]['brew'] }}" state: present when: "'brew' in available_methods" register: brew_result failed_when: "'No available formula or cask with the name' not in brew_result.msg and 'already installed' not in brew_result.msg and \ 'Package installed' not in brew_result.msg" - name: "Ensure {{ software_item }} is installed (go)" # noqa 301 305 shell: | {%- if software_package[software_item]['go'] | regex_search('go (?i)(install|build|get)') -%} {{ software_package[software_item]['go'] }} {%- else -%} go get {{ software_package[software_item]['go'] }} {%- endif -%} environment: GOPATH: "{{ '/home/' + ansible_user + '/.local/go' }}" register: go_result when: - "'go' in available_methods" - "'No available formula or cask with the name' in brew_result.msg or brew_result.skipped is defined or \ ((brew_result.changed and brew_result.failed) and (not brew_result.changed))" failed_when: false - name: "Ensure {{ software_item }} is installed (cargo)" # noqa 301 305 shell: | {%- if 'cargo install' in "software_package[software_item]['cargo']" -%} {{ software_package[software_item]['cargo'] }} {%- else -%} cargo install {{ software_package[software_item]['cargo'] }} {%- endif -%} args: executable: /bin/bash register: cargo_result when: - "'cargo' in available_methods" - "'No available formula or cask with the name' in brew_result.msg or brew_result.skipped is defined or \ ((brew_result.changed and brew_result.failed) and (not brew_result.changed))" - "go_result.rc is defined and go_result.rc != 0" failed_when: false - name: "Ensure {{ software_item }} is installed (Binary)" get_url: url: "{{ software_package[software_item]['binary'] }}" dest: "/usr/local/bin/{{ software_item }}" mode: 0755 when: - "'binary' in available_methods" - "'No available formula or cask with the name' in brew_result.msg or brew_result.skipped is defined or \ ((brew_result.changed and brew_result.failed) and (not brew_result.changed))" - "go_result.rc is defined and go_result.rc != 0" - "'is already installed' not in cargo_result.stderr or 'Installed package' not in cargo_result.stderr or 'error: could not find' in cargo_result.stderr" register: binary_result failed_when: "binary_result.status_code != 200 and 'Request failed' not in binary_result.msg" - name: "Ensure {{ software_item }} is installed (GitHub)" include_role: name: githubbinary vars: github_binaries: - "{{ software_package[software_item]['github'] }}" when: - "'github' in available_methods" - "'No available formula or cask with the name' in brew_result.msg or brew_result.skipped is defined or \ ((brew_result.changed and brew_result.failed) and (not brew_result.changed))" - "go_result.rc is defined and go_result.rc != 0" - "'is already installed' not in cargo_result.stderr or 'Installed package' not in cargo_result.stderr or 'error: could not find' in cargo_result.stderr" - "binary_result.msg is defined and 'Request failed' in binary_result.msg or binary_result.skipped is defined or \ ((binary_result.changed and binary_result.failed) and (not binary_result.changed))"