ansible/playbooks/transient_cloud_instance.yml

68 lines
2.3 KiB
YAML

#
# setup a transient instance in the Fedora infrastructure private cloud
#
# This playbook is used to spin up a transient instance for someone to test something.
# In particular transient instances will all be terminated at least by the next
# maint window for the cloud, but ideally people will terminate instances they
# are done using.
#
# If you have an application or longer term item that should always be around
# please use the persistent playbook instead.
#
# You MUST pass a name to it, ie: -e 'name=somethingdescriptive'
# You can optionally override defaults by passing any of the following:
# image=imagename (default is centos70_x86_64)
# instance_type=some instance type (default is m1.small)
# root_auth_users='user1 user2 user3' (default is sysadmin-main group)
#
# Note: if you run this playbook with the same name= multiple times
# openstack is smart enough to just return the current ip of that instance
# and go on. This way you can re-run if you want to reconfigure it without
# reprovisioning it.
#
- name: check/create instance
hosts: lockbox01.phx2.fedoraproject.org
user: root
gather_facts: False
vars_files:
- /srv/web/infra/ansible/vars/global.yml
- /srv/private/ansible/vars.yml
- /srv/web/infra/ansible/vars/fedora-cloud.yml
- /srv/private/ansible/files/openstack/passwords.yml
vars:
image: "{{ centos70_x86_64 }}"
instance_type: m1.small
tasks:
- name: fail when name is not provided
fail: msg="Please specify the name of the instance"
when: name is not defined
- include: "{{ tasks }}/transient_cloud.yml"
- name: provision instance
hosts: tmp_just_created
gather_facts: True
environment:
ANSIBLE_HOST_KEY_CHECKING: False
vars_files:
- /srv/web/infra/ansible/vars/global.yml
- "/srv/private/ansible/vars.yml"
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
tasks:
- name: install cloud-utils (yum)
yum: pkg=cloud-utils state=present
when: ansible_distribution_major_version|int < 22
- name: install cloud-utils (dnf)
command: dnf install -y cloud-utils
when: ansible_distribution_major_version|int > 21 and ansible_cmdline.ostree is not defined
- include: "{{ tasks }}/cloud_setup_basic.yml"
handlers:
- include: "{{ handlers }}/restart_services.yml"