68 lines
2.3 KiB
YAML
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"
|