--- # tasks file for bootstrap - name: wait for the host wait_for: port: "{{ ansible_port | default('22') }}" host: "{{ (ansible_ssh_host | default(ansible_host) | default(inventory_hostname)) }}" connection: local become: no when: - ansible_connection is defined - ansible_connection != "docker" - bootstrap_wait_for_host - name: test connection wait_for_connection: timeout: "{{ bootstrap_timeout }}" register: bootstrap_connect changed_when: no ignore_errors: yes - name: find package manager remote_user: "{{ bootstrap_remote_user | default(omit) }}" become: no check_mode: no block: - name: register apk raw: apk --version register: apk changed_when: no failed_when: no - name: register apt_get raw: apt-get --version register: apt_get changed_when: no failed_when: no - name: register dnf raw: dnf --version register: dnf changed_when: no failed_when: no - name: register emerge raw: emerge --version register: emerge changed_when: no failed_when: no - name: register pacman raw: pacman --version register: pacman changed_when: no failed_when: no - name: register pkg raw: pkg --version register: pkg changed_when: no failed_when: no - name: register pkg_add raw: pkg_info register: pkg_add changed_when: no failed_when: no - name: register yum raw: yum --version register: yum changed_when: no failed_when: no - name: register zypper raw: zypper --version register: zypper changed_when: no failed_when: no - name: install using found package manager remote_user: "{{ bootstrap_remote_user | default(omit) }}" block: - name: install software with apk raw: "apk update ; apk add {{ bootstrap_apk_packages }}" when: - apk.rc == 0 register: apkresult changed_when: - "'Installing' in apkresult.stdout" until: apkresult is succeeded retries: "{{ bootstrap_retries }}" - name: install software with apt-get raw: "apt-get update ; apt-get -y install {{ bootstrap_apt_packages }}" when: - apt_get.rc == 0 - zypper.rc != 0 register: apt_getresult changed_when: - "' 0 newly installed' not in apt_getresult.stdout" until: apt_getresult is succeeded retries: "{{ bootstrap_retries }}" - name: install software with dnf raw: "dnf -y install {{ bootstrap_dnf_packages }}" when: - dnf.rc == 0 register: dnfresult changed_when: - "'Nothing' not in dnfresult.stdout" until: dnfresult is succeeded retries: "{{ bootstrap_retries }}" - name: install software with emerge raw: "{{ bootstrap_emerge_command }}" when: - emerge.rc == 0 register: emergeresult changed_when: - "'changed' in emergeresult.stdout" until: emergeresult is succeeded retries: "{{ bootstrap_retries }}" - name: install software with pacman raw: "pacman -Sy ; pacman -T {{ bootstrap_pacman_packages }} || pacman -S --noconfirm {{ bootstrap_pacman_packages }}" when: - pacman.rc == 0 register: pacmanresult changed_when: - "' installing python' in pacmanresult.stdout" until: pacmanresult is succeeded retries: "{{ bootstrap_retries }}" - name: install software with pkg raw: > ASSUME_ALWAYS_YES=YES pkg install {{ bootstrap_pkg_packages }} ; ln -s /usr/local/bin/python /usr/bin/python || exit 0 when: - pkg.rc == 0 register: pkgresult changed_when: - "'Extracting python' in pkgresult.stdout" until: pkgresult is succeeded retries: "{{ bootstrap_retries }}" - name: install software with pkg_add raw: pkg_add -Iz {{ bootstrap_pkg_add_packages }} when: - pkg_add.rc == 0 register: pkg_add_getresult changed_when: - "': ok' in pkg_add_getresult.stdout" until: pkg_add_getresult is succeeded retries: "{{ bootstrap_retries }}" - name: install software with yum raw: "yum -y install {{ bootstrap_yum_packages }}" when: - yum.rc == 0 register: yumresult changed_when: - "'Nothing' not in yumresult.stdout" until: yumresult is succeeded retries: "{{ bootstrap_retries }}" - name: install software with zypper raw: "zypper -n install {{ bootstrap_zypper_packages }}" when: - zypper.rc == 0 register: zypperresult changed_when: - "'Nothing' not in zypperresult.stdout" failed_when: no until: zypperresult is succeeded retries: "{{ bootstrap_retries }}" - name: gather facts setup: become: no - name: add community repository for alpine lineinfile: path: /etc/apk/repositories line: "{{ bootstrap_alpine_community_repo }}" when: - ansible_distribution == "Alpine" - name: install bootstrap packages package: name: "{{ bootstrap_packages }}" state: present register: packageresult until: packageresult is succeeded - name: install software to support stable modules package: name: "{{ bootstrap_stable_packages }}" state: present when: - bootstrap_stable_packages is defined register: packagestableresult until: packagestableresult is succeeded notify: - gather facts - name: install software to support preview modules package: name: "{{ bootstrap_preview_packages }}" state: present when: - bootstrap_preview | bool - bootstrap_preview_packages is defined register: packagepreviewresult until: packagepreviewresult is succeeded notify: - gather facts - name: flush handlers meta: flush_handlers