edcd5bf67f
A freshly-installed CoreOS system does not always have a hostname configured. This causes problems for etcd and BGP mesh configuration for Calico. Assign the Ansible inventory name as hostname as part of CoreOS bootstrap, if the hostname is the default ("localhost").
48 lines
1.3 KiB
YAML
48 lines
1.3 KiB
YAML
---
|
|
- name: Bootstrap | Check if bootstrap is needed
|
|
raw: stat /opt/bin/.bootstrapped
|
|
register: need_bootstrap
|
|
ignore_errors: True
|
|
|
|
- name: Bootstrap | Run bootstrap.sh
|
|
script: bootstrap.sh
|
|
when: need_bootstrap | failed
|
|
|
|
- set_fact:
|
|
ansible_python_interpreter: "/opt/bin/python"
|
|
|
|
- name: Bootstrap | Check if we need to install pip
|
|
shell: "{{ansible_python_interpreter}} -m pip --version"
|
|
register: need_pip
|
|
ignore_errors: True
|
|
changed_when: false
|
|
when: need_bootstrap | failed
|
|
|
|
- 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
|
|
|
|
- name: Assign inventory name to unconfigured hostnames
|
|
shell: sh -c "echo \"{{inventory_hostname}}\" > /etc/hostname; hostname \"{{inventory_hostname}}\""
|
|
when: configured_hostname.stdout == 'localhost'
|