Ansible playbook for configuring the JMU CS VM provided by the UUG
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
packer Reorganize Packer options Dec 20, 2018
roles
scripts Upgrade to Linux Mint 19.1 Tessa Dec 19, 2018
.gitignore Packerize VM build (#229) Dec 9, 2018
CONTRIBUTING.md Add instructions for updating python file Feb 14, 2019
LICENSE
README.md Packerize VM build (#229) Dec 9, 2018
ansible.cfg
hosts
local.yml
oem.yml

README.md

JMU UUG virtual machine build script

This is a set of Ansible roles that can be used to configure a Linux Mint or Ubuntu system for JMU computer science courses. It is primarily used to deliver the Unix Users Group virtual machine, but can be run outside that VM using instructions later in this document. Extended end user documentation about using these tasks and the VM is available separately.

Installed packages and features

Common

  • Filezilla
  • JDK/JRE 10-11
  • SFTP connection to stu
  • Shortcuts to re-run tasks
  • Unzip
  • Vim
  • Vim-Gnome
  • VM management script
  • JMU wireless printing

CS101

  • Eclipse
  • Finch robot
  • Mint packages (basic-prog-pkgs role)
    • artha
    • bless
    • chromium-browser
    • geany
    • idle-python3.6
    • libreoffice
    • logisim
    • meld
    • sqlitebrowser
    • thonny
    • wireshark

CS149

  • Eclipse
  • jGRASP

CS159

  • Eclipse

CS261

  • Mint packages (adv-prog-pkgs role)
    • Compilers and interpreters
      • build-essential
      • g++
      • gcc
      • gdb
      • logisim
      • valgrind
    • Code editors
      • astyle
      • bvi
      • check
      • gedit
      • indent
      • nano
    • Source control
      • git
      • gitg
      • mercurial
      • meld
  • y86 tools
    • Assembler (yas)
    • Reference solution (y86ref)
    • Reference solution manual page (y86ref(1))
    • Simulator (ysim)

CS354

  • Gazebo9
  • ROS Melodic
  • Rosdep/catkin initialization
  • Rviz

CS361

  • Mint packages (adv-prog-pkgs role)
    • Compilers and interpreters
      • build-essential
      • g++
      • gcc
      • gdb
      • logisim
      • valgrind
    • Code editors
      • astyle
      • bvi
      • check
      • gedit
      • indent
      • nano
    • Source control
      • git
      • gitg
      • mercurial
      • meld

Manual use of these Ansible roles

apt-get install ansible git
git clone https://github.com/jmunixusers/cs-vm-build
cd cs-vm-build
ansible-playbook -i hosts -c local -K -t TAGS local.yml

or directly from GitHub:

ansible-pull -U https://github.com/jmunixusers/cs-vm-build --purge -i hosts -K -t TAGS

where TAGS is a comma separated list (with no spaces) of cs101, cs149, cs159, cs261, cs354, and/or cs361 as appropriate.

This was developed on and for Linux Mint, but can be adapted to any Debian-based distribution with minimal changes. Adaptions for distributions that do not use apt will require more extensive modifications.

Building the UUG VM

To build the UUG VM, configure a system with git, Oracle VirtualBox, Hashicorp Packer, and approximately 20GB of free disk space. VM builds are tested regularly on Linux and Windows hosts, but feedback on other platforms is always welcome.

Once the prerequisites are installed, change into the cs-vm-build/packer directory and execute packer build oem-build.json. This will take a considerable amount of time, depending on host resources available, but should output progress indicators along the way.

The build process can be customized by passing parameters to the packer build command using the -var flag. The supported parameters are:

  • git_repo - the repository containing the setup scripts to run before exporting the VM appliance. Defaults to https://github.com/jmunixusers/cs-vm-build.
  • git_branch - the branch of the above repository to choose. Defaults to master.
  • headless - whether or not to show the desktop session during installation. Defaults to true.

Contributing

Feedback and involvement is always welcome in JMU UUG projects. The issue tracker on this repository is a great place to start, whether you're looking for previous design discussions, want to ask a question, or would like to contribute additional functionality. The UUG can also be reached via Twitter or check our upcoming meeting schedule. For more suggestions on getting involved, please see the CONTRIBUTING document.

License

This project is licensed under the MIT license. See LICENSE for more information.