windmill/playbooks/nodepool-builder.yaml

97 lines
2.7 KiB
YAML

# Copyright 2016 Red Hat, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
---
- name: Install nodepool-builder
hosts: nodepool-builder
pre_tasks:
# NOTE(pabelanger): Because of ordering issues with clouds.yaml and
# nodepool, create the required home direcotry first (pre task). So we can
# add the clouds.yaml file.
- name: Create nodepool user directories
include_role:
name: openstack.nodepool
vars:
nodepool_task_manager:
- pre
# TODO(pabelanger): This should be moved into ansible-role-os-client-config.
- name: Create os-client-config directories
become: yes
file:
group: nodepool
owner: nodepool
path: /var/lib/nodepool/.config/openstack
state: directory
- name: Copy clouds.yaml into place
become: yes
copy:
dest: /var/lib/nodepool/.config/openstack/clouds.yaml
group: nodepool
mode: 0400
owner: nodepool
src: "{{ windmill_config_git_dest }}/nodepool/clouds.yaml"
- name: Template disk-image-create wrapper script
become: yes
template:
dest: /usr/local/bin/disk-image-create
group: root
mode: 0755
owner: root
src: nodepool-builder/usr/local/bin/disk-image-create.j2
tasks:
- name: Setup openstack.sudoers role
include_role:
name: openstack.sudoers
- name: Setup openstack.diskimage-builder role
include_role:
name: openstack.diskimage-builder
- name: Setup openstack.shade role
include_role:
name: openstack.shade
- name: Setup openstack.nodepool role
include_role:
name: openstack.nodepool
- name: Install nodepool elements directory
become: yes
copy:
dest: /etc/nodepool/
group: nodepool
mode: preserve
owner: nodepool
src: "{{ windmill_config_git_dest }}/nodepool/elements"
- name: Setup openstack.ssh role
include_role:
name: openstack.ssh
- name: Setup openstack.logrotate role
include_role:
name: openstack.logrotate
post_tasks:
- name: Run nodepool-server validation
include_role:
name: test.nodepool-builder
vars_files:
- vars/nodepool.yaml