| --- |
| - 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: Clone XOS repo |
| git: |
| repo={{ xos_repo_url }} |
| dest={{ xos_repo_dest }} |
| version={{ xos_repo_branch }} |
| force=yes |
| |
| - name: Clone service-profile repo |
| git: |
| repo={{ service_profile_repo_url }} |
| dest={{ service_profile_repo_dest }} |
| version={{ service_profile_repo_branch }} |
| force=yes |
| |
| - 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 image |
| become: yes |
| command: docker pull {{ item }} |
| with_items: |
| - xosproject/xos-postgres |
| tags: |
| - skip_ansible_lint # Should replace with http://docs.ansible.com/ansible/docker_module.html, when replacements are stable |
| |
| - 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 |