联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp2

您当前位置:首页 >> Web作业Web作业

日期:2020-04-03 11:10

ACIT 4640 - Systems and network provisioning

Final assignment

This is a group assignment. You will work on it with the same partner(s) as the previous project assignments.


Step 1 - Find a project / application to provision


Find an application, service or project to deploy. The requirements are:

?you must use CentOS 7 as the base operating system

?the application must have a 3-tier model, with frontend / middleware / backend

?example: in the todoapp, we have

ofrontend: Nginx

omiddleware: NodeJS

obackend: MongoDB

?it cannot be the todoapp, Wordpress or the hichat application used during the exams

?it must be easy to validate that the application works

oideally with a web browser (web service or API)


Submit your proposal to D2L before Tuesday 31 March 8PM at the latest. (text format)

Use the following format for your submission (example for the TODOAPP service).


Application name:TODOAPP

Source code:https://github.com/timoguic/ACIT4640-todo-app

Application usage:Web application to manage todo lists in the browser.

Frontend:Nginx

Middleware:NodeJS

Backend:MongoDB

Validation method:Open URL in web browser

Add new todo

Check box to mark todo as done


If applicable, you can also add URLs where the application can be seen "live" (for instance: Heroku demo provided by the author of the application).


Grading:

?1 mark if your application fits the requirements

?if your application does not fit the requirements, there will be a 50% penalty


It is recommended that you discuss your proposals during next class (30/31 March).

Step 2 – Write the Ansible playbook for your application


Create a working Ansible playbook to provision your application from scratch.


Make sure that your playbook follows the best practices:

?use variables

?use templates

?use roles, with dependencies

?use handlers to limit running unnecessary actions



Step 3 – Provision the AWS environment to provision your app in the cloud


Create a new role. This role will allow you to manage (create, delete, and get information about) your AWS instances. Use the dynamic inventory feature of Ansible, and the `ec2` family of modules.


Use tags to create two functionalities:

?provisionprovision the virtual machine and network in AWS

?cleanupdestroys the virtual machine and environment in AWS



Step 4 – Provision the application in the cloud


Combine the functionalities above to obtain a playbook called `final_acit4640.yml`. Please use this exact file name!


The playbook must have the following features, based on tags:


?ansible-playbook final_acit4640.yml --tags provision


Creates the AWS virtual environment if it does not already exist


?ansible-playbook final_acit4640.yml --tags cleanup


Destroys the AWS virtual environment if it exists


?ansible-playbook final_acit4640.yml --tags deploy


Tries to deploy the application to the AWS virtual environment if it exists. Displays the URL of the running service at the end of the playbook. If the AWS environment does not exist, do nothing.



?ansible-playbook final_acit4640.yml --tags info


Prints information about the service:

owhether the AWS environment exists or not

owhether the service is running or not


?ansible-playbook final_acit4640.yml


Tries to provision the AWS environment, and then the application on it. If everything succeeds, prints the URL of the service at the end of the run.


Grading rubric


Preliminary research about the application1 mark

Application provisioning13 marks

Use of roles and dependencies2 marks

Use of variables2 marks

Use of templates2 marks

Use of handlers2 marks

Provisioning steps (efficiency, best practices and use of Ansible modules)5 marks

No deploy tag0 for this section

AWS provisioning: provision tag5 marks

Creation of the virtual environment5 marks

Virtual environment is created even if it exists0 for this section

No provision tag0 for this section

AWS provisioning: cleanup tag2 marks

Cleanup of the virtual environment2 marks

No cleanup tag0 for this section

Provisioning information: info tag4 marks

Information about the virtual environment: IP address1 marks

Information about the application (status of the services)3 marks

No info tag0 for this section

TOTAL25 marks


You can get bonus marks if your application / service is not in the list I provided on D2L, or if it is very complex to set up (more than 3 services). If the application is not available or broken after running the playbook, you will get 0 for the whole application provisioning section.


Submission


Push your source code to GitHub. Make sure that you do NOT push your AWS keys!


Add the final_project tag to your work, and make sure you push the tag to GitHub too.


Submit the link to your repository on D2L (Assignments > Final project).


Note:

You will need to set up a time to meet and demo your application and answer questions. This must happen before Thursday 16 April, 6PM. We will meet using Zoom for the demos.


Please organize it as soon as possible - there is a limited number of hours per day. Students who are not present during their group demo will receive 0.


No late submissions will be accepted. If you do not demo your program, you will get 0.


版权所有:编程辅导网 2018 All Rights Reserved 联系方式:QQ:99515681 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。