Created
January 17, 2023 13:36
-
-
Save wgroenewold/7af31896d5cb861bb575e9b188cad50f to your computer and use it in GitHub Desktop.
Create an instance on merlin cluster (RUG) in Ansible
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
- name: Create an instance on merlin cluster (RUG) in Ansible | |
hosts: localhost | |
remote_user: "{{ merlin_username }}" | |
vars: | |
ansible_python_interpreter: python | |
openstack_api_timeout: 180 | |
os_auth: { | |
'auth_url': '', | |
'password': '', | |
'project_domain_id': '', | |
'project_id': '', | |
'project_name': '', | |
'user_domain_name': '', | |
'username': '' | |
} | |
external_network_name: vlan1066 | |
keypair_name: | |
merlin_username: | |
private_network_name: some_private_network | |
private_subnet_name: some_private_subnet | |
router_name: some_router | |
security_group_name: default | |
server_name: some_server | |
ssh_port: 22 | |
subnet_cidr: 192.0.2.0/24 | |
volume_name: some_volume | |
tasks: | |
- name: Create private network | |
openstack.cloud.network: | |
name: "{{ private_network_name }}" | |
auth: "{{ os_auth }}" | |
state: present | |
- name: Create private subnet | |
openstack.cloud.subnet: | |
name: "{{ private_subnet_name }}" | |
auth: "{{ os_auth }}" | |
cidr: "{{ subnet_cidr }}" | |
network_name: "{{ private_network_name }}" | |
state: present | |
- name: Create router | |
openstack.cloud.router: | |
name: "{{ router_name }}" | |
network: "{{ external_network_name }}" | |
interfaces: | |
- net: "{{ private_network_name }}" | |
subnet: "{{ private_subnet_name }}" | |
auth: "{{ os_auth }}" | |
state: present | |
- name: Create volume | |
openstack.cloud.volume: | |
auth: "{{ os_auth }}" | |
size: 10 | |
state: present | |
display_name: "{{ volume_name }}" | |
- name: Create server | |
openstack.cloud.server: | |
name: "{{ server_name }}" | |
auth: "{{ os_auth }}" | |
flavor: m1.small | |
image: Ubuntu 22.04 LTS | |
key_name: "{{ keypair_name }}" | |
nics: | |
- net-name: "{{ external_network_name }}" | |
- net-name: "{{ private_network_name }}" | |
state: present | |
security_groups: "{{ security_group_name }}" | |
- name: Create floating IP | |
openstack.cloud.floating_ip: | |
auth: "{{ os_auth }}" | |
network: "{{ external_network_name }}" | |
server: "{{ server_name }}" | |
state: present | |
- name: Add volume to server | |
openstack.cloud.server_volume: | |
auth: "{{ os_auth }}" | |
server: "{{ server_name }}" | |
state: present | |
volume: "{{ volume_name }}" | |
- name: Create security group | |
openstack.cloud.security_group: | |
auth: "{{ os_auth }}" | |
name: "{{ security_group_name }}" | |
state: present | |
- name: Allow ping | |
openstack.cloud.security_group_rule: | |
auth: "{{ os_auth }}" | |
security_group: "{{ security_group_name }}" | |
protocol: icmp | |
remote_ip_prefix: 0.0.0.0/0 | |
- name: Allow SSH | |
openstack.cloud.security_group_rule: | |
auth: "{{ os_auth }}" | |
security_group: "{{ security_group_name }}" | |
protocol: tcp | |
port_range_min: "{{ ssh_port }}" | |
port_range_max: "{{ ssh_port }}" | |
- name: Show info | |
openstack.cloud.server_info: | |
auth: "{{ os_auth }}" | |
server: "{{ server_name }}" | |
register: result | |
- debug: | |
msg: You can now ssh ubuntu@{{ result['openstack_servers'][0]['accessIPv4'] }} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment