--- - name: List ubuntu_packages set_fact: ubuntu_packages: - python - python-apt - python-pip - dbus - name: Check if bootstrap is needed raw: dpkg -l | cut -d' ' -f3 | grep -e ^{{ item }}$ register: need_bootstrap failed_when: false changed_when: false # This command should always run, even in check mode check_mode: false with_items: "{{ ubuntu_packages }}" environment: {} tags: - facts - name: Check http::proxy in /etc/apt/apt.conf raw: grep -qsi 'Acquire::http::proxy' /etc/apt/apt.conf register: need_http_proxy failed_when: false changed_when: false # This command should always run, even in check mode check_mode: false environment: {} when: - http_proxy is defined - name: Add http_proxy to /etc/apt/apt.conf if http_proxy is defined raw: echo 'Acquire::http::proxy "{{ http_proxy }}";' >> /etc/apt/apt.conf become: true environment: {} when: - http_proxy is defined - need_http_proxy.rc != 0 - name: Check https::proxy in /etc/apt/apt.conf raw: grep -qsi 'Acquire::https::proxy' /etc/apt/apt.conf register: need_https_proxy failed_when: false changed_when: false # This command should always run, even in check mode check_mode: false environment: {} when: - https_proxy is defined - name: Add https_proxy to /etc/apt/apt.conf if https_proxy is defined raw: echo 'Acquire::https::proxy "{{ https_proxy }}";' >> /etc/apt/apt.conf become: true environment: {} when: - https_proxy is defined - need_https_proxy.rc != 0 - name: Install python and pip raw: apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y {{ ubuntu_packages | join(" ") }} become: true environment: {} when: - need_bootstrap.results | map(attribute='rc') | sort | last | bool - set_fact: ansible_python_interpreter: "/usr/bin/python" tags: - facts