--- # tasks file for bootstrap - name: include assert.yml include_tasks: assert.yml - name: wait for 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" - ansible_connection != "container" - bootstrap_wait_for_host | bool - name: prepare system block: - name: test connection wait_for_connection: timeout: "{{ bootstrap_timeout }}" register: bootstrap_connect changed_when: no rescue: - name: gather bootstrap facts include_tasks: "gather_facts.yml" - name: install bootstrap packages raw: "{{ bootstrap_install.raw }}" register: bootstrap_install_packages changed_when: (bootstrap_install.stdout_regex in bootstrap_install_packages.stdout and bootstrap_os_family in ['Alpine', 'Archlinux', 'Gentoo']) or ( bootstrap_install.stdout_regex not in bootstrap_install_packages.stdout and bootstrap_os_family in ['Debian', 'RedHat', 'Suse']) vars: ansible_user: "{{ bootstrap_user }}" always: - name: set bootstrap ansible_user set_fact: bootstrap_ansible_user: "{{ ansible_user | default(omit) if bootstrap_connect is succeeded else bootstrap_user }}" changed_when: no - name: ensure system is prepared block: - name: gather ansible facts setup: - name: install bootstrap packages package: name: "{{ item }}" state: present loop: "{{ bootstrap_facts_packages.split() }}" vars: ansible_user: "{{ bootstrap_ansible_user | default(omit) }}"