summaryrefslogtreecommitdiffstats
path: root/playbooks/init/basic_facts.yml
diff options
context:
space:
mode:
authorMichael Gugino <mgugino@redhat.com>2018-01-22 11:02:12 -0500
committerMichael Gugino <mgugino@redhat.com>2018-01-22 11:43:10 -0500
commit7b33ab6dad2f9775a4e206ec90bc10ce46ae02f6 (patch)
tree8648caf9b8d2b2cf86426dca1d365052e42ab43c /playbooks/init/basic_facts.yml
parent986b28f8eca1856559a44c4b73770a4eab4930f4 (diff)
downloadopenshift-7b33ab6dad2f9775a4e206ec90bc10ce46ae02f6.tar.gz
openshift-7b33ab6dad2f9775a4e206ec90bc10ce46ae02f6.tar.bz2
openshift-7b33ab6dad2f9775a4e206ec90bc10ce46ae02f6.tar.xz
openshift-7b33ab6dad2f9775a4e206ec90bc10ce46ae02f6.zip
Install base_packages earlier
Currently, openshift_facts requires pyyaml to be installed. This package is installed via init/base_packages.yml, which is currently called after init/facts.yml. This results in a situation where installs will fail due to missing python dependency. This commit splits init/facts.yml into two, and allows base_packages.yml to be run before the openshift_facts.py plugin is executed.
Diffstat (limited to 'playbooks/init/basic_facts.yml')
-rw-r--r--playbooks/init/basic_facts.yml69
1 files changed, 69 insertions, 0 deletions
diff --git a/playbooks/init/basic_facts.yml b/playbooks/init/basic_facts.yml
new file mode 100644
index 000000000..06a4e7291
--- /dev/null
+++ b/playbooks/init/basic_facts.yml
@@ -0,0 +1,69 @@
+---
+- name: Ensure that all non-node hosts are accessible
+ hosts: oo_masters_to_config:oo_etcd_to_config:oo_lb_to_config:oo_nfs_to_config
+ any_errors_fatal: true
+ tasks:
+
+- name: Initialize basic host facts
+ # l_init_fact_hosts is passed in via play during control-plane-only
+ # upgrades and scale-up plays; otherwise oo_all_hosts is used.
+ hosts: "{{ l_init_fact_hosts | default('oo_all_hosts') }}"
+ roles:
+ - role: openshift_facts
+ tasks:
+ # TODO: Should this role be refactored into health_checks??
+ - name: Run openshift_sanitize_inventory to set variables
+ import_role:
+ name: openshift_sanitize_inventory
+
+ - name: Detecting Operating System from ostree_booted
+ stat:
+ path: /run/ostree-booted
+ register: ostree_booted
+
+ # TODO(michaelgugino) remove this line once CI is updated.
+ - name: set openshift_deployment_type if unset
+ set_fact:
+ openshift_deployment_type: "{{ deployment_type }}"
+ when:
+ - openshift_deployment_type is undefined
+ - deployment_type is defined
+
+ - name: initialize_facts set fact openshift_is_atomic and openshift_is_containerized
+ set_fact:
+ openshift_is_atomic: "{{ ostree_booted.stat.exists }}"
+ openshift_is_containerized: "{{ ostree_booted.stat.exists or (containerized | default(false) | bool) }}"
+
+ # TODO: Should this be moved into health checks??
+ # Seems as though any check that happens with a corresponding fail should move into health_checks
+ # Fail as early as possible if Atomic and old version of Docker
+ - when:
+ - openshift_is_atomic | bool
+ block:
+
+ # See https://access.redhat.com/articles/2317361
+ # and https://github.com/ansible/ansible/issues/15892
+ # NOTE: the "'s can not be removed at this level else the docker command will fail
+ # NOTE: When ansible >2.2.1.x is used this can be updated per
+ # https://github.com/openshift/openshift-ansible/pull/3475#discussion_r103525121
+ - name: Determine Atomic Host Docker Version
+ shell: 'CURLY="{"; docker version --format "$CURLY{json .Server.Version}}"'
+ register: l_atomic_docker_version
+
+ - name: assert atomic host docker version is 1.12 or later
+ assert:
+ that:
+ - l_atomic_docker_version.stdout | replace('"', '') is version_compare('1.12','>=')
+ msg: Installation on Atomic Host requires Docker 1.12 or later. Please upgrade and restart the Atomic Host.
+
+- name: Initialize special first-master variables
+ hosts: oo_first_master
+ roles:
+ - role: openshift_facts
+ tasks:
+ - set_fact:
+ # We need to setup openshift_client_binary here for special uses of delegate_to in
+ # later roles and plays.
+ first_master_client_binary: "{{ openshift_client_binary }}"
+ #Some roles may require this to be set for first master
+ openshift_client_binary: "{{ openshift_client_binary }}"