diff options
| author | Carlos Konstanski <ckonstanski@pippiandcarlos.com> | 2017-12-13 18:54:21 -0700 |
|---|---|---|
| committer | Carlos Konstanski <ckonstanski@pippiandcarlos.com> | 2017-12-13 18:54:21 -0700 |
| commit | 32086f62131e1b813e2f3d97bc2c78f66c6a3154 (patch) | |
| tree | 2005059011aea64121af64de5b3567fd0dcbca3b /spin_up_bare_vm.yaml | |
| parent | 21fa10807bb475bff42a997ac4add3cc7e6346f9 (diff) | |
adding files
Diffstat (limited to 'spin_up_bare_vm.yaml')
| -rwxr-xr-x | spin_up_bare_vm.yaml | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/spin_up_bare_vm.yaml b/spin_up_bare_vm.yaml new file mode 100755 index 0000000..5ece10d --- /dev/null +++ b/spin_up_bare_vm.yaml @@ -0,0 +1,169 @@ +#!/usr/bin/env ansible-playbook +--- +- name: "Spin up Openbook v3 node" + hosts: localhost + vars: + user_domain_name: "{{ lookup('env', 'OS_USER_DOMAIN_NAME') }}" + project_domain_name: "{{ lookup('env', 'OS_PROJECT_DOMAIN_NAME') }}" + username: "{{ lookup('env', 'OS_USERNAME') }}" + password: "{{ lookup('env', 'OS_PASSWORD') }}" + project_name: "{{ lookup('env', 'OS_PROJECT_NAME') }}" + endpoint: "{{ lookup('env', 'OS_AUTH_URL') }}" + region: "{{ lookup('env', 'OS_REGION_NAME') }}" + interface: "{{ lookup('env', 'OS_INTERFACE') }}" + identity_api_version: "{{ lookup('env', 'OS_IDENTITY_API_VERSION') }}" + image_api_version: "{{ lookup('env', 'OS_IMAGE_API_VERSION') }}" + dns_servers: "{{ lookup('env', 'DNS_SERVERS') }}" + flavor_name: "{{ lookup('env', 'FLAVOR_NAME') }}" + image_name: "{{ lookup('env', 'IMAGE_NAME') }}" + keypair_user: "{{ lookup('env', 'KEYPAIR_USER') }}" + pubkey_path: "{{ lookup('env', 'PUBKEY_PATH') }}" + router_name: "{{ lookup('env', 'ROUTER_NAME') }}" + private_network_name: "{{ lookup('env', 'PRIVATE_NETWORK_NAME') }}" + private_network_cidr: "{{ lookup('env', 'PRIVATE_NETWORK_CIDR') }}" + public_network_cidrs: "{{ lookup('env', 'PUBLIC_NETWORK_CIDRS') }}" + ext_network_name: "{{ lookup('env', 'EXT_NETWORK_NAME') }}" + instance_name: "openbook-{{ lookup('env', 'OPENBOOK_ENVIRONMENT') }}-v3" + tasks: + - name: "Ensure image exists" + shell: | + OS_IDENTITY_API_VERSION='{{ identity_api_version }}' \ + OS_IMAGE_API_VERSION='{{ image_api_version }}' \ + OS_USER_DOMAIN_NAME='{{ user_domain_name }}' \ + OS_PROJECT_DOMAIN_NAME='{{ project_domain_name }}' \ + OS_USERNAME='{{ username }}' \ + OS_PASSWORD='{{ password }}' \ + OS_PROJECT_NAME='{{ project_name }}' \ + OS_AUTH_URL='{{ endpoint }}' \ + OS_REGION_NAME='{{ region }}' \ + OS_INTERFACE='{{ interface }}' \ + OS_IDENTITY_API_VERSION='{{ identity_api_version }}' \ + OS_IMAGE_API_VERSION='{{ image_api_version }}' \ + {{ playbook_dir }}/files/image.sh \ + '{{ image_name }}' + + - name: "Ensure flavor exists" + shell: | + OS_IDENTITY_API_VERSION='{{ identity_api_version }}' \ + OS_IMAGE_API_VERSION='{{ image_api_version }}' \ + OS_USER_DOMAIN_NAME='{{ user_domain_name }}' \ + OS_PROJECT_DOMAIN_NAME='{{ project_domain_name }}' \ + OS_USERNAME='{{ username }}' \ + OS_PASSWORD='{{ password }}' \ + OS_PROJECT_NAME='{{ project_name }}' \ + OS_AUTH_URL='{{ endpoint }}' \ + OS_REGION_NAME='{{ region }}' \ + OS_INTERFACE='{{ interface }}' \ + OS_IDENTITY_API_VERSION='{{ identity_api_version }}' \ + OS_IMAGE_API_VERSION='{{ image_api_version }}' \ + {{ playbook_dir }}/files/flavor.sh \ + '{{ flavor_name }}' + + - name: "Configure security groups" + shell: | + OS_IDENTITY_API_VERSION='{{ identity_api_version }}' \ + OS_IMAGE_API_VERSION='{{ image_api_version }}' \ + OS_USER_DOMAIN_NAME='{{ user_domain_name }}' \ + OS_PROJECT_DOMAIN_NAME='{{ project_domain_name }}' \ + OS_USERNAME='{{ username }}' \ + OS_PASSWORD='{{ password }}' \ + OS_PROJECT_NAME='{{ project_name }}' \ + OS_AUTH_URL='{{ endpoint }}' \ + OS_REGION_NAME='{{ region }}' \ + OS_INTERFACE='{{ interface }}' \ + OS_IDENTITY_API_VERSION='{{ identity_api_version }}' \ + OS_IMAGE_API_VERSION='{{ image_api_version }}' \ + {{ playbook_dir }}/files/securitygroup.sh \ + '{{ private_network_cidr }}' \ + '{{ public_network_cidrs }}' + + - name: "Configure networks" + shell: | + OS_IDENTITY_API_VERSION='{{ identity_api_version }}' \ + OS_IMAGE_API_VERSION='{{ image_api_version }}' \ + OS_USER_DOMAIN_NAME='{{ user_domain_name }}' \ + OS_PROJECT_DOMAIN_NAME='{{ project_domain_name }}' \ + OS_USERNAME='{{ username }}' \ + OS_PASSWORD='{{ password }}' \ + OS_PROJECT_NAME='{{ project_name }}' \ + OS_AUTH_URL='{{ endpoint }}' \ + OS_REGION_NAME='{{ region }}' \ + OS_INTERFACE='{{ interface }}' \ + OS_IDENTITY_API_VERSION='{{ identity_api_version }}' \ + OS_IMAGE_API_VERSION='{{ image_api_version }}' \ + {{ playbook_dir }}/files/network.sh \ + '{{ router_name }}' \ + '{{ private_network_name }}' \ + '{{ private_network_cidr }}' \ + '{{ ext_network_name }}' \ + '{{ dns_servers }}' + register: network_id + + - name: "Configure SSH keypair" + shell: | + OS_IDENTITY_API_VERSION='{{ identity_api_version }}' \ + OS_IMAGE_API_VERSION='{{ image_api_version }}' \ + OS_USER_DOMAIN_NAME='{{ user_domain_name }}' \ + OS_PROJECT_DOMAIN_NAME='{{ project_domain_name }}' \ + OS_USERNAME='{{ username }}' \ + OS_PASSWORD='{{ password }}' \ + OS_PROJECT_NAME='{{ project_name }}' \ + OS_AUTH_URL='{{ endpoint }}' \ + OS_REGION_NAME='{{ region }}' \ + OS_INTERFACE='{{ interface }}' \ + OS_IDENTITY_API_VERSION='{{ identity_api_version }}' \ + OS_IMAGE_API_VERSION='{{ image_api_version }}' \ + {{ playbook_dir }}/files/keypair.sh \ + '{{ keypair_user }}_keypair' \ + '{{ pubkey_path }}' \ + + - name: "Customize cloud.cfg" + shell: | + OS_REGION_NAME='{{ region }}' \ + DNS_SERVERS='{{ dns_servers }}' \ + {{ playbook_dir }}/files/cloud.sh \ + '{{ keypair_user }}' \ + '{{ pubkey_path }}' \ + '{{ dns_servers }}' + + - name: "Spin up instance" + shell: | + OS_IDENTITY_API_VERSION='{{ identity_api_version }}' \ + OS_IMAGE_API_VERSION='{{ image_api_version }}' \ + OS_USER_DOMAIN_NAME='{{ user_domain_name }}' \ + OS_PROJECT_DOMAIN_NAME='{{ project_domain_name }}' \ + OS_USERNAME='{{ username }}' \ + OS_PASSWORD='{{ password }}' \ + OS_PROJECT_NAME='{{ project_name }}' \ + OS_AUTH_URL='{{ endpoint }}' \ + OS_REGION_NAME='{{ region }}' \ + OS_INTERFACE='{{ interface }}' \ + OS_IDENTITY_API_VERSION='{{ identity_api_version }}' \ + OS_IMAGE_API_VERSION='{{ image_api_version }}' \ + {{ playbook_dir }}/files/instance.sh \ + '{{ flavor_name }}' \ + '{{ image_name }}' \ + '{{ network_id.stdout }}' \ + '{{ keypair_user }}_keypair' \ + '{{ instance_name }}' \ + '{{ ext_network_name }}' + register: ip_name + + # - name: "Configure DNS in OpenStack" + # shell: | + # OS_IDENTITY_API_VERSION='{{ identity_api_version }}' \ + # OS_IMAGE_API_VERSION='{{ image_api_version }}' \ + # OS_USER_DOMAIN_NAME='{{ user_domain_name }}' \ + # OS_PROJECT_DOMAIN_NAME='{{ project_domain_name }}' \ + # OS_USERNAME='{{ username }}' \ + # OS_PASSWORD='{{ password }}' \ + # OS_PROJECT_NAME='{{ project_name }}' \ + # OS_AUTH_URL='{{ endpoint }}' \ + # OS_REGION_NAME='{{ region }}' \ + # OS_INTERFACE='{{ interface }}' \ + # OS_IDENTITY_API_VERSION='{{ identity_api_version }}' \ + # OS_IMAGE_API_VERSION='{{ image_api_version }}' \ + # {{ playbook_dir }}/files/dns.sh \ + # '{{ ip_name.stdout_lines[1] }}' \ + # '{{ ip_name.stdout_lines[0] }}' + # register: dns_fqdn |
