09847567ae
"shell" step doesn't support check mode, which currently leads to failures, when Ansible is being run in check mode (because Ansible doesn't run command, assuming that command might have effect, and no "rc" or "output" is registered). Setting "check_mode: no" allows to run those "shell" commands in check mode (which is safe, because those shell commands doesn't have side effects).
53 lines
1.4 KiB
YAML
53 lines
1.4 KiB
YAML
---
|
|
- name: Bootstrap | Check if bootstrap is needed
|
|
raw: stat /opt/bin/.bootstrapped
|
|
register: need_bootstrap
|
|
failed_when: false
|
|
tags: facts
|
|
|
|
- name: Bootstrap | Run bootstrap.sh
|
|
script: bootstrap.sh
|
|
when: (need_bootstrap | failed)
|
|
|
|
- set_fact:
|
|
ansible_python_interpreter: "/opt/bin/python"
|
|
tags: facts
|
|
|
|
- name: Bootstrap | Check if we need to install pip
|
|
shell: "{{ansible_python_interpreter}} -m pip --version"
|
|
register: need_pip
|
|
failed_when: false
|
|
changed_when: false
|
|
check_mode: no
|
|
when: (need_bootstrap | failed)
|
|
tags: facts
|
|
|
|
- name: Bootstrap | Copy get-pip.py
|
|
copy: src=get-pip.py dest=~/get-pip.py
|
|
when: (need_pip | failed)
|
|
|
|
- name: Bootstrap | Install pip
|
|
shell: "{{ansible_python_interpreter}} ~/get-pip.py"
|
|
when: (need_pip | failed)
|
|
|
|
- name: Bootstrap | Remove get-pip.py
|
|
file: path=~/get-pip.py state=absent
|
|
when: (need_pip | failed)
|
|
|
|
- name: Bootstrap | Install pip launcher
|
|
copy: src=runner dest=/opt/bin/pip mode=0755
|
|
when: (need_pip | failed)
|
|
|
|
- name: Install required python modules
|
|
pip:
|
|
name: "{{ item }}"
|
|
with_items: "{{pip_python_modules}}"
|
|
|
|
- name: Check configured hostname
|
|
shell: hostname
|
|
register: configured_hostname
|
|
check_mode: no
|
|
|
|
- name: Assign inventory name to unconfigured hostnames
|
|
shell: sh -c "echo \"{{inventory_hostname}}\" > /etc/hostname; hostname \"{{inventory_hostname}}\""
|
|
when: (configured_hostname.stdout == 'localhost')
|