Create a Vagrantfile which provisions a VM
Hi, thanks for your interest in our Devops Engineering position. As part of the interview process, we'd like you to setup a simple web application and database.
- Fork this repo to your personal GitHub profile
- Clone this repo to your computer
- Modify the initial Vagrantfile to setup the web application.
- Add any code/scripts needed to provision the server.
- Add to the bottom of this README.md file details on how to run you project locally.
- Make a pull request for us to review your code.
- Use the specified Ubuntu 16.04 box as the starting point
- Install the following components
- The latest MySQL
- The latest Apache2
- The latest PHP 7.X
- Configure the following components
- Create a "Users" table in the database with the following columns
- "FirstName"
- "LastName"
- "Age"
- "CreatedAtTimestamp"
- The database username and password should be "testdb"
- Run the http/application server on port 80 on the guest
- Create a "phpinfo.php" page which shows the PHP details
- Create a "Users" table in the database with the following columns
- Expose the following to the host
- Your application server should be reachable on http://localhost:8001
- Your phpinfo.php page should be at http://localhost:8001/phpinfo.php
- Your database server on port 3001
- Create a webapp/single page that allows the following
- Include forms to allow user input of "FirstName" "LastName" and "Age" and to persist it to the database
- Include a way to view the full "Users" table
- NOTE: This can be done in any language.
- Use any form of provisioning you'd like (Ansible, Chef, Puppet, Salt, sh/csh/bash/ksh scripting)
- Allow SSH access to the VM while it is running
- Use open source libraries
- Use multiple provisioners or bootstrap your own
- Use multiple VMs to run the different components
- Meeting the project requirements listed above
- Code quality
- Bonus points section completion
Feel free to reach out to us for clarifications.
Thanks and good luck!