blob: cc5b95572f88aeea54a61c1f6da7d20627ba4a7a [file] [log] [blame]
---
- hosts: xos-1
remote_user: ubuntu
tasks:
- name: Include configuration vars
include_vars: xos-setup-vars.yml
- name: Install prerequisites
apt:
name={{ item }}
update_cache=yes
cache_valid_time=3600
become: yes
with_items:
- git
- make
- curl
- python-novaclient
- python-neutronclient
- python-keystoneclient
- python-glanceclient
- name: Check to see if xos_install/orchestration directory exists
local_action: stat path="{{ playbook_dir }}/xos_install/orchestration"
register: orchestration
# Two methods to install:
# 1) If running from cord-in-a-box, then xos_install/orchestration will
# be populated with the checked-out xos repositories, and we can
# now copy them to the XOS VM.
# 2) If not running from cord-in-a-box, then xos_install will not
# exist, and we will check out the repos using git.
- name: Copy repositories to the XOS VM
synchronize:
src: "{{ playbook_dir }}/xos_install/orchestration/"
dest: "{{ orchestration_dest }}"
when:
orchestration.stat.exists == True
- name: Clone XOS repo
git:
repo={{ xos_repo_url }}
dest={{ xos_repo_dest }}
version={{ xos_repo_branch }}
force=yes
when:
orchestration.stat.exists == False
- name: Clone service-profile repo
git:
repo={{ service_profile_repo_url }}
dest={{ service_profile_repo_dest }}
version={{ service_profile_repo_branch }}
force=yes
when:
orchestration.stat.exists == False
- name: Copy over SSH keys
copy:
src=~/.ssh/{{ item }}
dest={{ service_profile_repo_dest }}/{{ xos_configuration }}/
owner={{ ansible_user_id }} mode=0600
with_items:
- id_rsa
- id_rsa.pub
- name: copy over node_key
copy:
src={{ node_private_key }}
dest={{ service_profile_repo_dest }}/{{ xos_configuration }}/node_key
owner={{ ansible_user_id }} mode=0600
- name: Download Glance VM images
get_url:
url={{ item.url }}
checksum={{ item.checksum }}
dest={{ service_profile_repo_dest }}/{{ xos_configuration }}/images/{{ item.name }}.img
with_items: "{{ xos_images }}"
- name: Pull database and cord-app-build image
become: yes
command: docker pull {{ item }}
with_items:
- xosproject/xos-postgres
- xosproject/cord-app-build
tags:
- skip_ansible_lint # FIXME: use new 2.2 docker modules when available
- name: Pull docker images for XOS
when: not xos_container_rebuild
become: yes
command: docker pull {{ item }}
with_items:
- xosproject/xos-base
- name: Rebuild XOS containers
when: xos_container_rebuild
command: make {{ item }}
chdir="{{ xos_repo_dest }}/containers/xos/"
with_items:
- base