diff --git a/ansible/mrc_1/__MACOSX/._mrc_1 b/ansible/mrc_1/__MACOSX/._mrc_1 new file mode 100755 index 0000000000000000000000000000000000000000..7348b79b53f953eeaa5d659e86349ad978de673f Binary files /dev/null and b/ansible/mrc_1/__MACOSX/._mrc_1 differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/._.DS_Store b/ansible/mrc_1/__MACOSX/mrc_1/._.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..1500cf2a4523ad02a690ddc28d0579725addb2b8 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/._.DS_Store differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/._host_vars b/ansible/mrc_1/__MACOSX/mrc_1/._host_vars new file mode 100755 index 0000000000000000000000000000000000000000..0eea21e4388200485959746b4135f58d45711883 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/._host_vars differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/._mrc.yaml b/ansible/mrc_1/__MACOSX/mrc_1/._mrc.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1500cf2a4523ad02a690ddc28d0579725addb2b8 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/._mrc.yaml differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/._roles b/ansible/mrc_1/__MACOSX/mrc_1/._roles new file mode 100755 index 0000000000000000000000000000000000000000..0eea21e4388200485959746b4135f58d45711883 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/._roles differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/._run-mrc.sh b/ansible/mrc_1/__MACOSX/mrc_1/._run-mrc.sh new file mode 100644 index 0000000000000000000000000000000000000000..1500cf2a4523ad02a690ddc28d0579725addb2b8 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/._run-mrc.sh differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/._unimelb-comp90024-2021-grp-62-openrc.sh b/ansible/mrc_1/__MACOSX/mrc_1/._unimelb-comp90024-2021-grp-62-openrc.sh new file mode 100644 index 0000000000000000000000000000000000000000..1500cf2a4523ad02a690ddc28d0579725addb2b8 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/._unimelb-comp90024-2021-grp-62-openrc.sh differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/host_vars/._mrc.yaml b/ansible/mrc_1/__MACOSX/mrc_1/host_vars/._mrc.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1500cf2a4523ad02a690ddc28d0579725addb2b8 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/host_vars/._mrc.yaml differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/roles/._.DS_Store b/ansible/mrc_1/__MACOSX/mrc_1/roles/._.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..1500cf2a4523ad02a690ddc28d0579725addb2b8 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/roles/._.DS_Store differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/roles/._openstack-common b/ansible/mrc_1/__MACOSX/mrc_1/roles/._openstack-common new file mode 100755 index 0000000000000000000000000000000000000000..0eea21e4388200485959746b4135f58d45711883 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/roles/._openstack-common differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/roles/._openstack-images b/ansible/mrc_1/__MACOSX/mrc_1/roles/._openstack-images new file mode 100755 index 0000000000000000000000000000000000000000..0eea21e4388200485959746b4135f58d45711883 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/roles/._openstack-images differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/roles/._openstack-instance b/ansible/mrc_1/__MACOSX/mrc_1/roles/._openstack-instance new file mode 100755 index 0000000000000000000000000000000000000000..0eea21e4388200485959746b4135f58d45711883 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/roles/._openstack-instance differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/roles/._openstack-security-group b/ansible/mrc_1/__MACOSX/mrc_1/roles/._openstack-security-group new file mode 100755 index 0000000000000000000000000000000000000000..0eea21e4388200485959746b4135f58d45711883 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/roles/._openstack-security-group differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/roles/._openstack-volume b/ansible/mrc_1/__MACOSX/mrc_1/roles/._openstack-volume new file mode 100755 index 0000000000000000000000000000000000000000..0eea21e4388200485959746b4135f58d45711883 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/roles/._openstack-volume differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/roles/._openstack-volume-snapshot b/ansible/mrc_1/__MACOSX/mrc_1/roles/._openstack-volume-snapshot new file mode 100755 index 0000000000000000000000000000000000000000..0eea21e4388200485959746b4135f58d45711883 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/roles/._openstack-volume-snapshot differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-common/._.DS_Store b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-common/._.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..1500cf2a4523ad02a690ddc28d0579725addb2b8 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-common/._.DS_Store differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-common/._tasks b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-common/._tasks new file mode 100755 index 0000000000000000000000000000000000000000..0eea21e4388200485959746b4135f58d45711883 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-common/._tasks differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-common/tasks/._main.yaml b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-common/tasks/._main.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1500cf2a4523ad02a690ddc28d0579725addb2b8 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-common/tasks/._main.yaml differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-images/._.DS_Store b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-images/._.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..1500cf2a4523ad02a690ddc28d0579725addb2b8 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-images/._.DS_Store differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-images/._tasks b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-images/._tasks new file mode 100755 index 0000000000000000000000000000000000000000..0eea21e4388200485959746b4135f58d45711883 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-images/._tasks differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-images/tasks/._main.yaml b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-images/tasks/._main.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1500cf2a4523ad02a690ddc28d0579725addb2b8 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-images/tasks/._main.yaml differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-instance/._.DS_Store b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-instance/._.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..1500cf2a4523ad02a690ddc28d0579725addb2b8 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-instance/._.DS_Store differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-instance/._tasks b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-instance/._tasks new file mode 100755 index 0000000000000000000000000000000000000000..0eea21e4388200485959746b4135f58d45711883 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-instance/._tasks differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-instance/tasks/._main.yaml b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-instance/tasks/._main.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1500cf2a4523ad02a690ddc28d0579725addb2b8 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-instance/tasks/._main.yaml differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-security-group/._.DS_Store b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-security-group/._.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..1500cf2a4523ad02a690ddc28d0579725addb2b8 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-security-group/._.DS_Store differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-security-group/._tasks b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-security-group/._tasks new file mode 100755 index 0000000000000000000000000000000000000000..0eea21e4388200485959746b4135f58d45711883 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-security-group/._tasks differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-security-group/tasks/._main.yaml b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-security-group/tasks/._main.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1500cf2a4523ad02a690ddc28d0579725addb2b8 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-security-group/tasks/._main.yaml differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-volume-snapshot/._.DS_Store b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-volume-snapshot/._.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..1500cf2a4523ad02a690ddc28d0579725addb2b8 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-volume-snapshot/._.DS_Store differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-volume-snapshot/._tasks b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-volume-snapshot/._tasks new file mode 100755 index 0000000000000000000000000000000000000000..0eea21e4388200485959746b4135f58d45711883 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-volume-snapshot/._tasks differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-volume-snapshot/tasks/._main.yaml b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-volume-snapshot/tasks/._main.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1500cf2a4523ad02a690ddc28d0579725addb2b8 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-volume-snapshot/tasks/._main.yaml differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-volume/._tasks b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-volume/._tasks new file mode 100755 index 0000000000000000000000000000000000000000..0eea21e4388200485959746b4135f58d45711883 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-volume/._tasks differ diff --git a/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-volume/tasks/._main.yaml b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-volume/tasks/._main.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1500cf2a4523ad02a690ddc28d0579725addb2b8 Binary files /dev/null and b/ansible/mrc_1/__MACOSX/mrc_1/roles/openstack-volume/tasks/._main.yaml differ diff --git a/ansible/mrc_1/mrc_1/.DS_Store b/ansible/mrc_1/mrc_1/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..303519d62799ae1fb120892d70f23ee65dacfea9 Binary files /dev/null and b/ansible/mrc_1/mrc_1/.DS_Store differ diff --git a/ansible/mrc_1/mrc_1/host_vars/couchdb.yaml b/ansible/mrc_1/mrc_1/host_vars/couchdb.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1b46e5db5ddc3bf8b3704b4ba7ac5c6e73d2623d --- /dev/null +++ b/ansible/mrc_1/mrc_1/host_vars/couchdb.yaml @@ -0,0 +1,6 @@ +- hosts: mrc.db + vars: + user: 'admin' + password: 'admin' + cookie: 'alexis' + ansible_python_interpreter: /usr/bin/python3.8 \ No newline at end of file diff --git a/ansible/mrc_1/mrc_1/host_vars/mrc.yaml b/ansible/mrc_1/mrc_1/host_vars/mrc.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1bc54776a076eb8101467c03d54f05117db272d1 --- /dev/null +++ b/ansible/mrc_1/mrc_1/host_vars/mrc.yaml @@ -0,0 +1,39 @@ +# Common vars +availability_zone: melbourne-qh2-uom + +# Volume +volumes: + - vol_name: demo-vol-1-1 + vol_size: 10 + - vol_name: demo-vol-1-2 + vol_size: 10 + - vol_name: demo-vol-2-1 + vol_size: 10 + - vol_name: demo-vol-2-2 + vol_size: 10 + +#Security group +security_groups: + - name: demo_ssh + description: "Demo security group for SSH access" + protocol: tcp + port_range_min: 22 + port_range_max: 22 + remote_ip_prefix: 0.0.0.0/0 + - name: demo_http + description: "Demo security group for HTTP" + protocol: tcp + port_range_min: 80 + port_range_max: 80 + remote_ip_prefix: 0.0.0.0/0 + +#Instance +instances: + - name: demo-1 + volumes: ['demo-vol-1-1', 'demo-vol-1-2'] + #- name: + volumes: ['demo-vol-2-1', 'demo-vol-2-2'] + +instance_image: f8b79936-6616-4a22-b55d-0d0a1d27bceb +instance_key_name: couchTestKey +instance_flavor: uom.mse.1c4g \ No newline at end of file diff --git a/ansible/mrc_1/mrc_1/inventory.ini b/ansible/mrc_1/mrc_1/inventory.ini new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/ansible/mrc_1/mrc_1/mrc.yaml b/ansible/mrc_1/mrc_1/mrc.yaml new file mode 100644 index 0000000000000000000000000000000000000000..04437eaba5cb44c9d25c3d7ff420fe9a31adefdc --- /dev/null +++ b/ansible/mrc_1/mrc_1/mrc.yaml @@ -0,0 +1,14 @@ +- hosts: localhost + vars: + ansible_python_interpreter: /usr/bin/python3.8 + vars_files: + - host_vars/mrc.yaml + gather_facts: true + + roles: + - role: openstack-common + - role: openstack-images + - role: openstack-volume + - role: openstack-security-group + - role: openstack-instance +# - role: openstack-volume-snapshot \ No newline at end of file diff --git a/ansible/mrc_1/mrc_1/roles/.DS_Store b/ansible/mrc_1/mrc_1/roles/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a678e9ccbf602db43c82f66b7eb3fe52b6f7be06 Binary files /dev/null and b/ansible/mrc_1/mrc_1/roles/.DS_Store differ diff --git a/ansible/mrc_1/mrc_1/roles/openstack-common/.DS_Store b/ansible/mrc_1/mrc_1/roles/openstack-common/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..be96e3e647ce5519c2c4cfefb36bf36645fb9fcf Binary files /dev/null and b/ansible/mrc_1/mrc_1/roles/openstack-common/.DS_Store differ diff --git a/ansible/mrc_1/mrc_1/roles/openstack-common/tasks/main.yaml b/ansible/mrc_1/mrc_1/roles/openstack-common/tasks/main.yaml new file mode 100644 index 0000000000000000000000000000000000000000..efa78107786e5e68b63b8ed472754f03de773f8e --- /dev/null +++ b/ansible/mrc_1/mrc_1/roles/openstack-common/tasks/main.yaml @@ -0,0 +1,22 @@ +- name: Install pip + become: yes + apt: + name: ['python3-pip'] + state: latest + update_cache: yes + when: ansible_distribution == "Ubuntu" +# sudo apt-get update; sudo apt-get install python-pip + +- name: Update pip + become: yes + pip: + name: ['pip'] + state: latest +# pip install --upgrade pip + +- name: Install openstacksdk + become: yes + pip: + name: ['openstacksdk'] + state: latest +# pip install openstacksdk \ No newline at end of file diff --git a/ansible/mrc_1/mrc_1/roles/openstack-couchdb/tasks/main.yml b/ansible/mrc_1/mrc_1/roles/openstack-couchdb/tasks/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..7a2e1d8fe972c3127924e7ba9e8b11e4d633e76d --- /dev/null +++ b/ansible/mrc_1/mrc_1/roles/openstack-couchdb/tasks/main.yml @@ -0,0 +1,15 @@ +- name: Bind the clustered interface to all IP addresses availble on this machine + + command: curl -X PUT http://{{ database_user }}:{{ database_password }}@127.0.0.1:5984/_node/_local/_config/chttpd/bind_address -d '"0.0.0.0"' + +- name: Bind the clustered interface to all IP addresses availble on this machine + + command: curl -X PUT http://{{ database_user }}:{{ database_password }}@127.0.0.1:5984/_node/_local/_config/httpd/bind_address -d '"0.0.0.0"' + +- name: Set the UUID of the node to + + command: curl -X PUT http://{{ database_user }}:{{ database_password }}@127.0.0.1:5984/_node/_local/_config/couchdb/uuid -d '"{{ database_uuid }}"' + +- name: Set the shared http secret for cookie creation + + command: curl -X PUT http://{{ database_user }}:{{ database_password }}@127.0.0.1:5984/_node/_local/_config/couch_httpd_auth/secret -d '"{{ database_secret }}" \ No newline at end of file diff --git a/ansible/mrc_1/mrc_1/roles/openstack-images/.DS_Store b/ansible/mrc_1/mrc_1/roles/openstack-images/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..fb81acb434381dab2a77292b929357eaf44dd81c Binary files /dev/null and b/ansible/mrc_1/mrc_1/roles/openstack-images/.DS_Store differ diff --git a/ansible/mrc_1/mrc_1/roles/openstack-images/tasks/main.yaml b/ansible/mrc_1/mrc_1/roles/openstack-images/tasks/main.yaml new file mode 100644 index 0000000000000000000000000000000000000000..79fbfbf139092edce88bf192b79679cd98c51e8f --- /dev/null +++ b/ansible/mrc_1/mrc_1/roles/openstack-images/tasks/main.yaml @@ -0,0 +1,15 @@ +# Show all available Openstack images +- name: Retrieve all available Openstack images + os_image_info: + register: image_result + +- name: Get image names and Ids + set_fact: + image_facts: "{{ image_facts|default([]) + [ {'name': item.name, 'id': item.id} ] }}" + loop: '{{ image_result.openstack_image }}' + when: item.name is defined + +- name: Show images + debug: + msg: "Image name: {{ item.name }}; Image id: {{ item.id }}" + loop: '{{ image_facts }}' diff --git a/ansible/mrc_1/mrc_1/roles/openstack-instance/.DS_Store b/ansible/mrc_1/mrc_1/roles/openstack-instance/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..dab08dd871431ca9132d86d21e0aad1abbe1b54e Binary files /dev/null and b/ansible/mrc_1/mrc_1/roles/openstack-instance/.DS_Store differ diff --git a/ansible/mrc_1/mrc_1/roles/openstack-instance/tasks/main.yaml b/ansible/mrc_1/mrc_1/roles/openstack-instance/tasks/main.yaml new file mode 100644 index 0000000000000000000000000000000000000000..5f1ca243a2afce766549237608cd8038ecfe38df --- /dev/null +++ b/ansible/mrc_1/mrc_1/roles/openstack-instance/tasks/main.yaml @@ -0,0 +1,31 @@ +--- +# Create an instance on MRC +- name: Create an instance + os_server: + name: '{{ item.name }}' + image: '{{ instance_image }}' + key_name: '{{ instance_key_name }}' + flavor: '{{ instance_flavor }}' + availability_zone: '{{ availability_zone }}' + security_groups: '{{ sg_names }}' + volumes: '{{ item.volumes }}' + auto_floating_ip: yes + wait: yes + timeout: 600 + state: present + loop: '{{ instances }}' + register: os_instance + +- debug: + msg: "Instance {{ item.openstack.name }} has been created. IP address is {{ item.openstack.public_v4 }}" + loop: '{{ os_instance.results }}' + when: item.openstack is defined + +- name: Wait for connection + wait_for: + host: "{{ item.openstack.public_v4 }}" + port: 22 + timeout: 240 + search_regex: OpenSSH + loop: '{{ os_instance.results }}' + when: item.openstack is defined \ No newline at end of file diff --git a/ansible/mrc_1/mrc_1/roles/openstack-security-group/.DS_Store b/ansible/mrc_1/mrc_1/roles/openstack-security-group/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..98d5e0394ffe78a5d2ed6c0e1232f86632b3c93f Binary files /dev/null and b/ansible/mrc_1/mrc_1/roles/openstack-security-group/.DS_Store differ diff --git a/ansible/mrc_1/mrc_1/roles/openstack-security-group/tasks/main.yaml b/ansible/mrc_1/mrc_1/roles/openstack-security-group/tasks/main.yaml new file mode 100644 index 0000000000000000000000000000000000000000..3ee4b190b4a909be9dc7fb2e23b84bc19c87e26e --- /dev/null +++ b/ansible/mrc_1/mrc_1/roles/openstack-security-group/tasks/main.yaml @@ -0,0 +1,27 @@ +--- +# Create a security group +- name: Create a security group + os_security_group: + name: '{{ item.name }}' + description: '{{ item.description }}' + state: present + loop: '{{ security_groups }}' + +- name: Create a list of security group names + set_fact: + sg_names: '{{ sg_names|default([]) + [ item.name ] }}' + loop: '{{ security_groups }}' + +- debug: + msg: "Security group(s) {{ sg_names }} have been created." + +# Create security group rules +- name: Create security group rules + os_security_group_rule: + security_group: '{{ item.name }}' + protocol: '{{ item.protocol }}' + port_range_min: '{{ item.port_range_min }}' + port_range_max: '{{ item.port_range_max }}' + remote_ip_prefix: '{{ item.remote_ip_prefix }}' + state: present + loop: '{{ security_groups }}' \ No newline at end of file diff --git a/ansible/mrc_1/mrc_1/roles/openstack-volume-snapshot/.DS_Store b/ansible/mrc_1/mrc_1/roles/openstack-volume-snapshot/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..03c72bd1edce31e5bf5890819cd238efb6ac6980 Binary files /dev/null and b/ansible/mrc_1/mrc_1/roles/openstack-volume-snapshot/.DS_Store differ diff --git a/ansible/mrc_1/mrc_1/roles/openstack-volume-snapshot/tasks/main.yaml b/ansible/mrc_1/mrc_1/roles/openstack-volume-snapshot/tasks/main.yaml new file mode 100644 index 0000000000000000000000000000000000000000..be7c6b137500549ec580dc48e689397a73e46298 --- /dev/null +++ b/ansible/mrc_1/mrc_1/roles/openstack-volume-snapshot/tasks/main.yaml @@ -0,0 +1,12 @@ +--- +# create volume snapshot +- name: Create volume snapshot + os_volume_snapshot: + state: present + volume: '{{ item.vol_name }}' + display_name: "{{ item.vol_name }}-{{ lookup('pipe', 'date +%Y-%m-%d-%H-%M-%S') }}" + wait: yes # wait until the snapshot is created + timeout: 600 + force: yes + availability_zone: '{{ availability_zone }}' + loop: '{{ volumes }}' \ No newline at end of file diff --git a/ansible/mrc_1/mrc_1/roles/openstack-volume/tasks/main.yaml b/ansible/mrc_1/mrc_1/roles/openstack-volume/tasks/main.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e85e7fe5dc6f8573e7535e51fd8b5495e98155e2 --- /dev/null +++ b/ansible/mrc_1/mrc_1/roles/openstack-volume/tasks/main.yaml @@ -0,0 +1,21 @@ +--- +# Create volumes from vars +- name: Create volume(s) on NeCTAR + os_volume: + display_name: '{{ item.vol_name }}' + size: '{{ item.vol_size }}' + availability_zone: '{{ availability_zone }}' + wait: yes + timeout: 600 + state: present + loop: '{{ volumes }}' + register: os_vol + +# Get a list of volume Ids from the reutrn value of os_volume +- name: Create a list of volume Ids + set_fact: + os_vol_ids: '{{ os_vol_ids|default([]) + [ item.id ] }}' + loop: '{{ os_vol.results }}' + +- debug: + msg: "Volume {{ os_vol_ids }} has been created" \ No newline at end of file diff --git a/ansible/mrc_1/mrc_1/run-mrc.sh b/ansible/mrc_1/mrc_1/run-mrc.sh new file mode 100644 index 0000000000000000000000000000000000000000..eab80d75af9b12cd4f807dde6773dbdb36c8a61b --- /dev/null +++ b/ansible/mrc_1/mrc_1/run-mrc.sh @@ -0,0 +1 @@ +. ./unimelb-comp90024-2021-grp-62-openrc.sh; ansible-playbook mrc.yaml diff --git a/ansible/mrc_1/mrc_1/unimelb-comp90024-2021-grp-62-openrc.sh b/ansible/mrc_1/mrc_1/unimelb-comp90024-2021-grp-62-openrc.sh new file mode 100644 index 0000000000000000000000000000000000000000..3383b973793d27219e8c12b75e80bfa362ede95c --- /dev/null +++ b/ansible/mrc_1/mrc_1/unimelb-comp90024-2021-grp-62-openrc.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash +# To use an OpenStack cloud you need to authenticate against the Identity +# service named keystone, which returns a **Token** and **Service Catalog**. +# The catalog contains the endpoints for all services the user/tenant has +# access to - such as Compute, Image Service, Identity, Object Storage, Block +# Storage, and Networking (code-named nova, glance, keystone, swift, +# cinder, and neutron). +# +# *NOTE*: Using the 3 *Identity API* does not necessarily mean any other +# OpenStack API is version 3. For example, your cloud provider may implement +# Image API v1.1, Block Storage API v2, and Compute API v2.0. OS_AUTH_URL is +# only for the Identity API served through keystone. +export OS_AUTH_URL=https://keystone.rc.nectar.org.au:5000/v3/ +# With the addition of Keystone we have standardized on the term **project** +# as the entity that owns the resources. +export OS_PROJECT_ID=c82f39882d974dbf8b5c925fb3eb4448 +export OS_PROJECT_NAME="unimelb-comp90024-2021-grp-62" +export OS_USER_DOMAIN_NAME="Default" +if [ -z "$OS_USER_DOMAIN_NAME" ]; then unset OS_USER_DOMAIN_NAME; fi +export OS_PROJECT_DOMAIN_ID="default" +if [ -z "$OS_PROJECT_DOMAIN_ID" ]; then unset OS_PROJECT_DOMAIN_ID; fi +# unset v2.0 items in case set +unset OS_TENANT_ID +unset OS_TENANT_NAME +# In addition to the owning entity (tenant), OpenStack stores the entity +# performing the action as the **user**. +export OS_USERNAME="alejandro.ariasrodriguez@student.unimelb.edu.au" +# With Keystone you pass the keystone password. +echo "Please enter your OpenStack Password for project $OS_PROJECT_NAME as user $OS_USERNAME: " +#read -sr OS_PASSWORD_INPUT +export OS_PASSWORD='NmQ0Y2IyOTkwOGIwZTQw' +# If your configuration has multiple regions, we set that information here. +# OS_REGION_NAME is optional and only valid in certain environments. +export OS_REGION_NAME="Melbourne" +# Don't leave a blank variable, unset it if it was empty +if [ -z "$OS_REGION_NAME" ]; then unset OS_REGION_NAME; fi +export OS_INTERFACE=public +export OS_IDENTITY_API_VERSION=3 \ No newline at end of file