HW1 Solution

$35.00 $29.05

You'll get a: . zip file solution, download link after Payment

Category: Tag:


This homework will all you to practice with basic virtualization technology and familiarize you with building node CLI programs.


You will start with a starter code base and modify it to fulfill the homework criteria.





Please do the following before you start the homework.


Prepare your GitHub Repo.


Sign into NCSU’s GitHub.


  1. Create a privaterepo called HW1-DevOps.


  1. Go to Settings, Collaborators and Teams, and add the TAs and instructor as a collaborator (using their unity id).


Samim Mirhosseini Ghamsa smirhos@ncsu.edu, Jeremiah Percy Dsouza jdsouza@ncsu.edu, Christopher Parnin cjparnin@ncsu.edu


Do not create any content, yet


Clone and set-url


Clone the following repo. Then modify the remote so that it now will point to your HW1-DevOps repo.



git clone http://github.com/CSC-DevOps/V

cd V


git remote -v


git remote set-url origin https://github.ncsu.edu/<unity>/HW1-DevOps


Install and test


Install the npm packages, then create a symlink for running your program.



npm install


npm link


Try it out.



v up

It is expected to see some errors, as the program is not complete.



Executing VBoxManage import “/Users/cjparnin/.bakerx/.persist/images/bionic/box.ovf” –vsys 0 –vmname V–Users-cjparnin-classes-519-V


Executing VBoxManage modifyvm “V–Users-cjparnin-classes-519-V” –memory 1024 –cpus 1


Executing VBoxManage modifyvm V–Users-cjparnin-classes-519-V –uart1 0x3f8 4 —

uartmode1 disconnected


Running VM customizations…


Executing VBoxManage startvm V–Users-cjparnin-classes-519-V –type emergencystop

Executing VBoxManage startvm V–Users-cjparnin-classes-519-V –type headless


Waiting 60000ms for machine to boot.


Base Requirements




VM setup (40 points)


Add the following required components to your project by editing


the customize(name) function inside commands/up.js. You will want to take advantage of the VBoxManage.execute wrapper to execute VirtualBox commands.


Add a NIC with NAT networking.


Add a port forward from 2800 => 22 for guestssh.


Add a port forward from 8080 => 9000 for a node application.


Post-Configuration (25 points)


Add the following required components to your project by editing


the postconfiguration(name) function inside the commands/up.js. You will want to take advantage of the ssh command wrapper to send commands to the VM.


Install nodejs, npm, git


Clone https://github.com/CSC-DevOps/App Install the npm packages


SSH and App (25 points)


Add a new command by creating a ssh.js inside the commands directory. When running v ssh it should ssh into your VM (25 points).

Implement and demonstrate running v ssh.


Manually run node main.js start 9000.

Demonstrate you can visit localhost:8080 to see your running App.


Extra Requirements


You can complete some or all of the following activities for extra credit by modifying your code.


Create a second NIC with either host-only or bridged networking enabled. Demonstrate that you can use your IP address to visit <address>:9000 to see your running App. (5 points)


Create a shared sync folder. This is fairly involved, only attempt if experienced—

limited help will be provided from teaching staff. (10 points)


Screencast (10)



Create a screencast of your assignment:


Demonstrate running your code to provision the VM (v up), running your customization and post-configuration steps, and ssh (v ssh) and a starting your App. Demonstrate your app running on your browser. Demonstrate any extra requirements fulfilled.


For guidelines, software, and recommendations see Screencasts.





Compete VM setup (40) Post-Configuration (25) SSH/APP (25)


Screencast (10)


Extra requirements (+5/+10) Answer a question (+5)


Max possible score: 120/100.





Please a submit a link to your repo here.


In your repository, have your code, link to a screencast.


The assignment is due Friday, Jan 31st before midnight.