diff --git a/src/firewheel_repo_linux/linux/INSTALL b/src/firewheel_repo_linux/linux/INSTALL deleted file mode 100755 index 3c3d526..0000000 --- a/src/firewheel_repo_linux/linux/INSTALL +++ /dev/null @@ -1,109 +0,0 @@ -#!/bin/bash - -# Create a flag for verifying installation -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) -INSTALL_FLAG=$SCRIPT_DIR/.linux.base_objects.installed - - -####################################################### -# Checking if there this script has already been complete. -####################################################### -function check_flag() { - if [[ -f "$INSTALL_FLAG" ]]; then - echo >&2 "linux.base_objects is already installed!" - exit 117; # Structure needs cleaning - fi -} - - -####################################################### -# Download using wget and then checksum the downloaded files. -# -# It is important to verify that the downloaded files -# are the files are the same ones as expected. -# This function provides an outline of how to checksum files, -# but will need to be updated with the specific hashes/file names -# that have been downloaded. -# -# This function assumes that the passed in hashes are SHA-256 -####################################################### -function wget_and_checksum() { - downloads=("$@") - # Uses 2D arrays in bash: https://stackoverflow.com/a/44831174 - declare -n d - for d in "${downloads[@]}"; - do - wget "${d[0]}" - echo "${d[1]} ${d[2]}" | shasum -a 256 --check - done -} - -####################################################### -# A function to help users clean up a partial installation -# in the event of an error. -####################################################### -function cleanup() { - echo "Cleaning up linux.base_objects install" - rm -rf "vm_resources/*.tgz" - rm -rf $INSTALL_FLAG - exit 1 -} -trap cleanup ERR - -# Ensure we only complete the script once -check_flag - - -####################################################### -# Uncomment if there is data/VM resources/images to download. -# `file1`, `file2`, etc. should be space separated strings of -# (URL SHASUM-256 FILENAME). -# -# We recommend that explicit versions are used for all Images/VMRs to prevent -# possible differences between instances of a given Model Component. -# Please be mindful of the software versions as it can have unintended -# consequences on your Emulytics experiment. -# -# We require checksums of the files to assist users in verifying -# that they have downloaded the same version. -####################################################### -# Be sure to use SHA-256 hashes for the checksums (e.g. shasum -a 256 ) - - -# Create some nice defaults for users -# this includes a bashrc, vimrc, and SSH keys -vimrc_fn=".vimrc" -vimrc=("https://github.com/amix/vimrc/raw/3c26776552ecb436bd8090c973435a68dbe8cb62/vimrcs/basic.vim" "bde3c8e77682d22bde680919d3416524fbc4e13d8aaf2ed25bcd3bdc3b6875b1" "basic.vim") -bashrc_fn=".bashrc" -bashrc=("https://github.com/sudonitesh/beautiful-bash/raw/4ad53ee9d1b0e2104e9dd77ae4f74e71262395d5/.bashrc" "19fca5072753f1bf8da1d4770d7dfe409c84e29ad21bbe92abbe37b7232df249" "$bashrc_fn") - -tmux_cssh=("https://gitlab.com/peikk0/tmux-cssh/-/raw/a35957f7d9a0dbfd296b73dbb6f56ee4c193dc56/tmux-cssh" "cd44ed3321abc190a0a128b944b004857770e8ea18c03952e63a234cb3056098" "tmux-cssh") -files=(vimrc bashrc tmux_cssh) -wget_and_checksum "${files[@]}" - -mv "basic.vim" "$vimrc_fn" - - -# Create default set of SSH keys for the experiments -mkdir ".ssh" -ssh-keygen -f .ssh/id_rsa -N "" -echo -e "Host *\n\tStrictHostKeyChecking=no\n\tUserKnownHostsFile=/dev/null\n\tForwardX11Trusted yes\n" >> .ssh/config -pushd .ssh -cat id_rsa.pub >> authorized_keys - -# Fix permissions -chmod 600 authorized_keys -chmod 600 config -popd - -# Combine all the useful files -tar -czf "combined_profiles.tgz" ".ssh" "$bashrc_fn" "$vimrc_fn" - -mv "combined_profiles.tgz" "vm_resources/" -mv "tmux-cssh" "vm_resources/" - -# Clean up -rm -rf ".ssh" "$bashrc_fn" "$vimrc_fn" - -# Set the flag to notify of successful completion -touch $INSTALL_FLAG diff --git a/src/firewheel_repo_linux/linux/INSTALL/tasks.yml b/src/firewheel_repo_linux/linux/INSTALL/tasks.yml new file mode 100644 index 0000000..53d202e --- /dev/null +++ b/src/firewheel_repo_linux/linux/INSTALL/tasks.yml @@ -0,0 +1,63 @@ +--- +- name: Create VM resources directory + ansible.builtin.file: + path: "{{ download_dir }}" + state: directory + +- name: Create parent directories + ansible.builtin.file: + path: "{{ download_dir }}/{{ item.parent }}" + state: directory + loop: "{{ files }}" + +- name: Download and verify files + ansible.builtin.get_url: + url: "{{ item.url }}" + dest: "{{ download_dir }}/{{ item.parent }}/{{ item.dest }}" + checksum: "sha256:{{ item.sha256 }}" + loop: "{{ files }}" + +- name: Generate SSH key pair (if applicable) + ansible.builtin.openssh_keypair: + path: "{{ ssh_profile.path }}/id_rsa" + type: rsa + size: 2048 + when: ssh_profile.ssh_keypair | default(false) + +- name: Add public key to authorized_keys + ansible.builtin.copy: + content: "{{ lookup('file', ssh_profile.path + '/id_rsa.pub') }}" + dest: "{{ ssh_profile.path }}/authorized_keys" + when: ssh_profile.ssh_keypair | default(false) + +- name: Create SSH config file + ansible.builtin.copy: + content: | + Host * + StrictHostKeyChecking no + UserKnownHostsFile /dev/null + ForwardX11Trusted yes + dest: "{{ ssh_profile.path }}/config" + when: ssh_profile.ssh_keypair | default(false) + +- name: Set permissions for SSH files + ansible.builtin.file: + path: "{{ ssh_profile.path }}/{{ item.file }}" + mode: "{{ item.mode }}" + loop: "{{ ssh_profile.permissions }}" + when: ssh_profile.ssh_keypair | default(false) + +- name: Compress profiles into tarball + ansible.builtin.archive: + path: + - "{{ download_dir }}/profiles" + - "{{ ssh_profile.path }}" + dest: "{{ download_dir }}/combined_profiles.tgz" + format: gz + +- name: Clean up temporary files + ansible.builtin.file: + path: + - "{{ download_dir }}/profiles" + - "{{ ssh_profile.path }}" + state: absent diff --git a/src/firewheel_repo_linux/linux/INSTALL/vars.yml b/src/firewheel_repo_linux/linux/INSTALL/vars.yml new file mode 100644 index 0000000..aa11d51 --- /dev/null +++ b/src/firewheel_repo_linux/linux/INSTALL/vars.yml @@ -0,0 +1,33 @@ +--- +download_dir: "{{ mc_dir }}/vm_resources" +files: + - parent: "profiles" + dest: ".vimrc" + url: "https://github.com/amix/vimrc/raw/3c26776552ecb436bd8090c973435a68dbe8cb62/vimrcs/basic.vim" + sha256: "bde3c8e77682d22bde680919d3416524fbc4e13d8aaf2ed25bcd3bdc3b6875b1" + - parent: "profiles" + dest: ".bashrc" + url: "https://github.com/sudonitesh/beautiful-bash/raw/4ad53ee9d1b0e2104e9dd77ae4f74e71262395d5/.bashrc" + sha256: "19fca5072753f1bf8da1d4770d7dfe409c84e29ad21bbe92abbe37b7232df249" + - parent: "profiles" + dest: "tmux-cssh" + url: "https://gitlab.com/peikk0/tmux-cssh/-/raw/a35957f7d9a0dbfd296b73dbb6f56ee4c193dc56/tmux-cssh" + sha256: "cd44ed3321abc190a0a128b944b004857770e8ea18c03952e63a234cb3056098" + +ssh_profile: + path: "{{ download_dir }}/.ssh" + ssh_keypair: true + permissions: + - file: "authorized_keys" + mode: "0600" + - file: "config" + mode: "0600" + +required_files: + - destination: "{{ download_dir }}/combined_profiles.tgz" + - destination: "{{ download_dir }}/tmux-cssh" + - destination: "{{ mc_dir }}/vm_resources/chpasswd.sh" + - destination: "{{ mc_dir }}/vm_resources/configure_ips.sh" + - destination: "{{ mc_dir }}/vm_resources/set_hostname.sh" + - destination: "{{ mc_dir }}/vm_resources/set_netplan_interfaces.sh" + - destination: "{{ mc_dir }}/vm_resources/set_ulimit.sh" diff --git a/src/firewheel_repo_linux/ubuntu/bionic/INSTALL/tasks.yml b/src/firewheel_repo_linux/ubuntu/bionic/INSTALL/tasks.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/src/firewheel_repo_linux/ubuntu/bionic/INSTALL/tasks.yml @@ -0,0 +1 @@ +--- diff --git a/src/firewheel_repo_linux/ubuntu/bionic/INSTALL/vars.yml b/src/firewheel_repo_linux/ubuntu/bionic/INSTALL/vars.yml new file mode 100644 index 0000000..413b243 --- /dev/null +++ b/src/firewheel_repo_linux/ubuntu/bionic/INSTALL/vars.yml @@ -0,0 +1,4 @@ +--- +required_files: + - destination: "{{ mc_dir }}/images/ubuntu-18.04.5-server-amd64.qcow2.xz" + - destination: "{{ mc_dir }}/images/ubuntu-18.04.5-desktop-amd64.qcow2.xz" diff --git a/src/firewheel_repo_linux/ubuntu/jammy/INSTALL b/src/firewheel_repo_linux/ubuntu/jammy/INSTALL deleted file mode 100755 index 0bcea66..0000000 --- a/src/firewheel_repo_linux/ubuntu/jammy/INSTALL +++ /dev/null @@ -1,87 +0,0 @@ -#!/bin/bash - -# Create a flag for verifying installation -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) -INSTALL_FLAG=$SCRIPT_DIR/.linux.ubuntu2204.installed - -tarname="pssh_2.3.4-2_all_debs.tgz" - -####################################################### -# Checking if there this script has already been complete. -####################################################### -function check_flag() { - if [[ -f "$INSTALL_FLAG" ]]; then - echo >&2 "linux.ubuntu2204 is already installed!" - exit 117; # Structure needs cleaning - fi -} - - -####################################################### -# Download using wget and then checksum the downloaded files. -# -# It is important to verify that the downloaded files -# are the files are the same ones as expected. -# This function provides an outline of how to checksum files, -# but will need to be updated with the specific hashes/file names -# that have been downloaded. -# -# This function assumes that the passed in hashes are SHA-256 -####################################################### -function wget_and_checksum() { - downloads=("$@") - # Uses 2D arrays in bash: https://stackoverflow.com/a/44831174 - declare -n d - for d in "${downloads[@]}"; - do - wget "${d[0]}" - echo "${d[1]} ${d[2]}" | shasum -a 256 --check - done -} - -####################################################### -# A function to help users clean up a partial installation -# in the event of an error. -####################################################### -function cleanup() { - echo "Cleaning up linux.ubuntu2204 install" - rm -rf "vm_resources/debs/$tarname" - rm -rf $INSTALL_FLAG - exit 1 -} -trap cleanup ERR - -# Ensure we only complete the script once -check_flag - - -####################################################### -# Uncomment if there is data/VM resources/images to download. -# `file1`, `file2`, etc. should be space separated strings of -# (URL SHASUM-256 FILENAME). -# -# We recommend that explicit versions are used for all Images/VMRs to prevent -# possible differences between instances of a given Model Component. -# Please be mindful of the software versions as it can have unintended -# consequences on your Emulytics experiment. -# -# We require checksums of the files to assist users in verifying -# that they have downloaded the same version. -####################################################### -# Be sure to use SHA-256 hashes for the checksums (e.g. shasum -a 256 ) -pssh=("http://archive.ubuntu.com/ubuntu/pool/universe/p/pssh/pssh_2.3.4-2_all.deb" "08689810f7f7f87934de47b59c2c9791eeef61059cd45a9388a53035e56d941d" "pssh_2.3.4-2_all.deb") -python_pssh_libs=("http://archive.ubuntu.com/ubuntu/pool/universe/p/pssh/python3-psshlib_2.3.4-2_all.deb" "8e794c0ae1fa311f4f461ae42fe6d84b5dc8e0e425ce9fa37b2c1345fbc39e7b" "python3-psshlib_2.3.4-2_all.deb") -files=(pssh python_pssh_libs) -wget_and_checksum "${files[@]}" -echo "Downloaded and checksummed all files!" - -dirname="pssh_debs" -mkdir "$dirname" -mv "${pssh[2]}" "$dirname" -mv "${python_pssh_libs[2]}" "$dirname" -tar -czf "$tarname" "$dirname" -rm -rf "$dirname" -mv "$tarname" ./vm_resources/debs/ - -# Set the flag to notify of successful completion -touch $INSTALL_FLAG diff --git a/src/firewheel_repo_linux/ubuntu/jammy/INSTALL/tasks.yml b/src/firewheel_repo_linux/ubuntu/jammy/INSTALL/tasks.yml new file mode 100644 index 0000000..0fbf6a5 --- /dev/null +++ b/src/firewheel_repo_linux/ubuntu/jammy/INSTALL/tasks.yml @@ -0,0 +1,31 @@ +--- +- name: Create VM resources directory + ansible.builtin.file: + path: "{{ download_dir }}" + state: directory + +- name: Create parent directories + ansible.builtin.file: + path: "{{ download_dir }}/{{ item.name }}" + state: directory + loop: "{{ parents }}" + +- name: Download and verify files + ansible.builtin.get_url: + url: "{{ item.url }}" + dest: "{{ download_dir }}/{{ item.parent }}/{{ item.dest }}" + checksum: "sha256:{{ item.sha256 }}" + loop: "{{ files }}" + +- name: Compress parent directories into tarballs + ansible.builtin.archive: + path: "{{ download_dir }}/{{ item.name }}" + dest: "{{ download_dir }}/{{ item.tarball }}" + format: gz + loop: "{{ parents }}" + +- name: Remove parent directories + ansible.builtin.file: + path: "{{ download_dir }}/{{ item.name }}" + state: absent + loop: "{{ parents }}" diff --git a/src/firewheel_repo_linux/ubuntu/jammy/INSTALL/vars.yml b/src/firewheel_repo_linux/ubuntu/jammy/INSTALL/vars.yml new file mode 100644 index 0000000..8778102 --- /dev/null +++ b/src/firewheel_repo_linux/ubuntu/jammy/INSTALL/vars.yml @@ -0,0 +1,20 @@ +--- +download_dir: "{{ mc_dir }}/vm_resources/debs" +files: + - parent: "pssh_debs" + dest: "pssh_2.3.4-2_all.deb" + url: "http://archive.ubuntu.com/ubuntu/pool/universe/p/pssh/pssh_2.3.4-2_all.deb" + sha256: "08689810f7f7f87934de47b59c2c9791eeef61059cd45a9388a53035e56d941d" + - parent: "pssh_debs" + dest: "python3-psshlib_2.3.4-2_all.deb" + url: "http://archive.ubuntu.com/ubuntu/pool/universe/p/pssh/python3-psshlib_2.3.4-2_all.deb" + sha256: "8e794c0ae1fa311f4f461ae42fe6d84b5dc8e0e425ce9fa37b2c1345fbc39e7b" + +parents: + - name: "pssh_debs" + tarball: "pssh_2.3.4-2_all_debs.tgz" + +required_files: + - destination: "{{ download_dir }}/pssh_2.3.4-2_all_debs.tgz" + - destination: "{{ mc_dir }}/images/ubuntu-22.04-server-amd64.qcow2.tgz" + - destination: "{{ mc_dir }}/images/ubuntu-22.04-desktop-amd64.qcow2.tgz" diff --git a/src/firewheel_repo_linux/ubuntu/trusty/INSTALL b/src/firewheel_repo_linux/ubuntu/trusty/INSTALL deleted file mode 100755 index 85575c7..0000000 --- a/src/firewheel_repo_linux/ubuntu/trusty/INSTALL +++ /dev/null @@ -1,123 +0,0 @@ -#!/bin/bash - -# Create a flag for verifying installation -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) -INSTALL_FLAG=$SCRIPT_DIR/.linux.ubuntu1404.installed - -tarname="*.tgz" - -####################################################### -# Checking if there this script has already been complete. -####################################################### -function check_flag() { - if [[ -f "$INSTALL_FLAG" ]]; then - echo >&2 "linux.ubuntu1404 is already installed!" - exit 117; # Structure needs cleaning - fi -} - - -####################################################### -# Download using wget and then checksum the downloaded files. -# -# It is important to verify that the downloaded files -# are the files are the same ones as expected. -# This function provides an outline of how to checksum files, -# but will need to be updated with the specific hashes/file names -# that have been downloaded. -# -# This function assumes that the passed in hashes are SHA-256 -####################################################### -function wget_and_checksum() { - downloads=("$@") - # Uses 2D arrays in bash: https://stackoverflow.com/a/44831174 - declare -n d - for d in "${downloads[@]}"; - do - wget "${d[0]}" - echo "${d[1]} ${d[2]}" | shasum -a 256 --check - done -} - -####################################################### -# A function to help users clean up a partial installation -# in the event of an error. -####################################################### -function cleanup() { - echo "Cleaning up linux.ubuntu1404 install" - rm -rf "vm_resources/debs/$tarname" - rm -rf $INSTALL_FLAG - exit 1 -} -trap cleanup ERR - -# Ensure we only complete the script once -check_flag - - -####################################################### -# Uncomment if there is data/VM resources/images to download. -# `file1`, `file2`, etc. should be space separated strings of -# (URL SHASUM-256 FILENAME). -# -# We recommend that explicit versions are used for all Images/VMRs to prevent -# possible differences between instances of a given Model Component. -# Please be mindful of the software versions as it can have unintended -# consequences on your Emulytics experiment. -# -# We require checksums of the files to assist users in verifying -# that they have downloaded the same version. -####################################################### -# Be sure to use SHA-256 hashes for the checksums (e.g. shasum -a 256 ) -# Create the set of php5-fpm debian packages -dirname="php5-fpm" -mkdir "$dirname" -pushd "$dirname" -file1=("https://launchpad.net/~ubuntu-security/+archive/ubuntu/ppa/+build/8849399/+files/libxml2_2.9.1+dfsg1-3ubuntu4.7_amd64.deb" "7b51243d1f3ff7374c0ac0433b322ab6e3c803db7afc6a2a5bcdc19ce37c7ea6" "libxml2_2.9.1+dfsg1-3ubuntu4.7_amd64.deb") -file2=("http://launchpadlibrarian.net/420574937/php5-common_5.5.9+dfsg-1ubuntu4.29_amd64.deb" "1f5d38b52e0325e3d2f6cea9f749e9404159c0f14411c6affc66b9c685e98039" "php5-common_5.5.9+dfsg-1ubuntu4.29_amd64.deb") -file3=("http://launchpadlibrarian.net/166644209/php5-json_1.3.2-2build1_amd64.deb" "3e6543d597f85e12d7620997c4ca053ab4dcbfd570ba40a80dbb14f097fdcd2d" "php5-json_1.3.2-2build1_amd64.deb") -file4=("http://launchpadlibrarian.net/420574942/php5-fpm_5.5.9+dfsg-1ubuntu4.29_amd64.deb" "27b856825a0a02dcbcf12972db8d213a55036b6b155c856131011815bd67a94e" "php5-fpm_5.5.9+dfsg-1ubuntu4.29_amd64.deb") -file5=("http://launchpadlibrarian.net/323668248/libgnutls-openssl27_2.12.23-12ubuntu2.8_amd64.deb" "db5593d5ed61219ebf9f6a0959962496fbcfe50fe4ba53bbabc0b55a62cf79bd" "libgnutls-openssl27_2.12.23-12ubuntu2.8_amd64.deb") -file6=("http://launchpadlibrarian.net/323668244/libgnutls26_2.12.23-12ubuntu2.8_amd64.deb" "75417c39414ab8919ee02eb4f1761c412d92c10a9ac1839fcd1e04bcfc85f607" "libgnutls26_2.12.23-12ubuntu2.8_amd64.deb") -file7=("http://launchpadlibrarian.net/375021363/libgcrypt11_1.5.3-2ubuntu4.6_amd64.deb" "39ab5032aa4597366d2c33f31e06ba91ba2ad79c8f68aff8ffcfab704b256a2c" "libgcrypt11_1.5.3-2ubuntu4.6_amd64.deb") -files=(file1 file2 file3 file4 file5 file6 file7) -wget_and_checksum "${files[@]}" -echo "Downloaded and checksummed all files!" -popd - -tar -czf "${dirname}.tgz" "$dirname" -rm -rf "$dirname" - -# Save off nginx packages -dirname="nginx" -mkdir "$dirname" -pushd "$dirname" -file1=("http://launchpadlibrarian.net/396275967/nginx-full_1.4.6-1ubuntu3.9_amd64.deb" "096388ee57570971697259973e3f6c4845f4716b86de4dce2b56108af95ecb55" "nginx-full_1.4.6-1ubuntu3.9_amd64.deb") -file2=("http://launchpadlibrarian.net/396275654/nginx-common_1.4.6-1ubuntu3.9_all.deb" "5b0876c6daaaf4b38b79ac868da4da5292ae1cacb31f240e21576e4daaa4c2ea" "nginx-common_1.4.6-1ubuntu3.9_all.deb") -file3=("http://launchpadlibrarian.net/396275652/nginx_1.4.6-1ubuntu3.9_all.deb" "f378c38389dc640d44f3b2845fd7a5aaef57493fac1ee15bff734f82a172a308" "nginx_1.4.6-1ubuntu3.9_all.deb") -file4=("http://launchpadlibrarian.net/419388713/libxslt1.1_1.1.28-2ubuntu0.2_amd64.deb" "cf8f88e9618fba98eef83e6f88a7e2c2480e2bbaa302f99858c970570de7fe94" "libxslt1.1_1.1.28-2ubuntu0.2_amd64.deb") -file5=("http://launchpadlibrarian.net/303890383/libxpm4_3.5.10-1ubuntu0.1_amd64.deb" "800582e71ad963032c1aa27df85f05a50e3ecbb4d2be7a545888d9a2f80ba249" "libxpm4_3.5.10-1ubuntu0.1_amd64.deb") -file6=("http://launchpadlibrarian.net/161837330/libvpx1_1.3.0-2_amd64.deb" "cf537cdbb2fef2d2bf25664651030c8de2083916f4b4a8bd59c4350e5f21e190" "libvpx1_1.3.0-2_amd64.deb") -file7=("http://launchpadlibrarian.net/414706924/libtiff5_4.0.3-7ubuntu0.11_amd64.deb" "2219cdb57de2893a02b6c5cef554e97fce61018ad6d1277203f8bc29a8ce1dc4" "libtiff5_4.0.3-7ubuntu0.11_amd64.deb") -file8=("http://launchpadlibrarian.net/144550460/libjpeg8_8c-2ubuntu8_amd64.deb" "baaecbc8e7ef55fc1887365721a7771f7d533fabca38fca878668b9c8f7ee13f" "libjpeg8_8c-2ubuntu8_amd64.deb") -file9=("http://launchpadlibrarian.net/172895541/libjbig0_2.0-2ubuntu4.1_amd64.deb" "11e85606a22866224f2ce7283feaba0c207d32882ea98d946254def0ecbee63e" "libjbig0_2.0-2ubuntu4.1_amd64.deb") -file10=("http://launchpadlibrarian.net/377330737/libjpeg-turbo8_1.3.0-0ubuntu2.1_amd64.deb" "14bc0c28aa8218b370c40cf3e6a5ee39cf15f70b08be1293c94da91b55c2ff1e" "libjpeg-turbo8_1.3.0-0ubuntu2.1_amd64.deb") -file11=("http://launchpadlibrarian.net/413076346/libgd3_2.1.0-3ubuntu0.11_amd64.deb" "6442af257f59870bf45824a355280c650ae021297eebcffe84336d897c9a083f" "libgd3_2.1.0-3ubuntu0.11_amd64.deb") -file12=("http://launchpadlibrarian.net/162131271/fonts-dejavu-core_2.34-1ubuntu1_all.deb" "d7eb9a90ecf62b85dcf2f3bb84a0d66e41fef81141240c73e5cab3351553dc03" "libgd3_2.1.0-3ubuntu0.11_amd64.deb") -file13=("http://launchpadlibrarian.net/279293791/libfontconfig1_2.11.0-0ubuntu4.2_amd64.deb" "ccc0f4ecb0f66a27dbb74ec98fba8741567ff2118eab8559b9f5ef01a6a26e03" "libfontconfig1_2.11.0-0ubuntu4.2_amd64.deb") -file14=("http://launchpadlibrarian.net/279293672/fontconfig-config_2.11.0-0ubuntu4.2_all.deb" "544544d3da955ffbb276230d142875b33e60c2b7747c429542f4c4da5c41bda4" "fontconfig-config_2.11.0-0ubuntu4.2_all.deb") -files=(file1 file2 file3 file4 file5 file6 file7 file8 file9 file10 file11 file12 file13 file14) -wget_and_checksum "${files[@]}" -echo "Downloaded and checksummed all files!" -popd - -tar -czf "${dirname}_trusty_debs.tgz" "$dirname" -rm -rf "$dirname" - - - -# Move all tars into the right directory -mv *.tgz ./vm_resources/debs/ - -# Set the flag to notify of successful completion -touch $INSTALL_FLAG diff --git a/src/firewheel_repo_linux/ubuntu/trusty/INSTALL/tasks.yml b/src/firewheel_repo_linux/ubuntu/trusty/INSTALL/tasks.yml new file mode 100644 index 0000000..0fbf6a5 --- /dev/null +++ b/src/firewheel_repo_linux/ubuntu/trusty/INSTALL/tasks.yml @@ -0,0 +1,31 @@ +--- +- name: Create VM resources directory + ansible.builtin.file: + path: "{{ download_dir }}" + state: directory + +- name: Create parent directories + ansible.builtin.file: + path: "{{ download_dir }}/{{ item.name }}" + state: directory + loop: "{{ parents }}" + +- name: Download and verify files + ansible.builtin.get_url: + url: "{{ item.url }}" + dest: "{{ download_dir }}/{{ item.parent }}/{{ item.dest }}" + checksum: "sha256:{{ item.sha256 }}" + loop: "{{ files }}" + +- name: Compress parent directories into tarballs + ansible.builtin.archive: + path: "{{ download_dir }}/{{ item.name }}" + dest: "{{ download_dir }}/{{ item.tarball }}" + format: gz + loop: "{{ parents }}" + +- name: Remove parent directories + ansible.builtin.file: + path: "{{ download_dir }}/{{ item.name }}" + state: absent + loop: "{{ parents }}" diff --git a/src/firewheel_repo_linux/ubuntu/trusty/INSTALL/vars.yml b/src/firewheel_repo_linux/ubuntu/trusty/INSTALL/vars.yml new file mode 100644 index 0000000..6d5cf81 --- /dev/null +++ b/src/firewheel_repo_linux/ubuntu/trusty/INSTALL/vars.yml @@ -0,0 +1,71 @@ +--- +download_dir: "{{ mc_dir }}/vm_resources/debs" +files: + - parent: "php5-fpm" + dest: "libxml2_2.9.1+dfsg1-3ubuntu4.7_amd64.deb" + url: "https://launchpad.net/~ubuntu-security/+archive/ubuntu/ppa/+build/8849399/+files/libxml2_2.9.1+dfsg1-3ubuntu4.7_amd64.deb" + sha256: "7b51243d1f3ff7374c0ac0433b322ab6e3c803db7afc6a2a5bcdc19ce37c7ea6" + - parent: "php5-fpm" + dest: "php5-common_5.5.9+dfsg-1ubuntu4.29_amd64.deb" + url: "http://launchpadlibrarian.net/420574937/php5-common_5.5.9+dfsg-1ubuntu4.29_amd64.deb" + sha256: "1f5d38b52e0325e3d2f6cea9f749e9404159c0f14411c6affc66b9c685e98039" + - parent: "php5-fpm" + dest: "php5-json_1.3.2-2build1_amd64.deb" + url: "http://launchpadlibrarian.net/166644209/php5-json_1.3.2-2build1_amd64.deb" + sha256: "3e6543d597f85e12d7620997c4ca053ab4dcbfd570ba40a80dbb14f097fdcd2d" + - parent: "php5-fpm" + dest: "php5-fpm_5.5.9+dfsg-1ubuntu4.29_amd64.deb" + url: "http://launchpadlibrarian.net/420574942/php5-fpm_5.5.9+dfsg-1ubuntu4.29_amd64.deb" + sha256: "27b856825a0a02dcbcf12972db8d213a55036b6b155c856131011815bd67a94e" + - parent: "php5-fpm" + dest: "libgnutls-openssl27_2.12.23-12ubuntu2.8_amd64.deb" + url: "http://launchpadlibrarian.net/323668248/libgnutls-openssl27_2.12.23-12ubuntu2.8_amd64.deb" + sha256: "db5593d5ed61219ebf9f6a0959962496fbcfe50fe4ba53bbabc0b55a62cf79bd" + - parent: "php5-fpm" + dest: "libgnutls26_2.12.23-12ubuntu2.8_amd64.deb" + url: "http://launchpadlibrarian.net/323668244/libgnutls26_2.12.23-12ubuntu2.8_amd64.deb" + sha256: "75417c39414ab8919ee02eb4f1761c412d92c10a9ac1839fcd1e04bcfc85f607" + - parent: "php5-fpm" + dest: "libgcrypt11_1.5.3-2ubuntu4.6_amd64.deb" + url: "http://launchpadlibrarian.net/375021363/libgcrypt11_1.5.3-2ubuntu4.6_amd64.deb" + sha256: "39ab5032aa4597366d2c33f31e06ba91ba2ad79c8f68aff8ffcfab704b256a2c" + - parent: "nginx" + dest: "nginx-full_1.4.6-1ubuntu3.9_amd64.deb" + url: "http://launchpadlibrarian.net/396275967/nginx-full_1.4.6-1ubuntu3.9_amd64.deb" + sha256: "096388ee57570971697259973e3f6c4845f4716b86de4dce2b56108af95ecb55" + - parent: "nginx" + dest: "nginx-common_1.4.6-1ubuntu3.9_all.deb" + url: "http://launchpadlibrarian.net/396275654/nginx-common_1.4.6-1ubuntu3.9_all.deb" + sha256: "5b0876c6daaaf4b38b79ac868da4da5292ae1cacb31f240e21576e4daaa4c2ea" + - parent: "nginx" + dest: "nginx_1.4.6-1ubuntu3.9_all.deb" + url: "http://launchpadlibrarian.net/396275652/nginx_1.4.6-1ubuntu3.9_all.deb" + sha256: "f378c38389dc640d44f3b2845fd7a5aaef57493fac1ee15bff734f82a172a308" + - parent: "nginx" + dest: "libxslt1.1_1.1.28-2ubuntu0.2_amd64.deb" + url: "http://launchpadlibrarian.net/419388713/libxslt1.1_1.1.28-2ubuntu0.2_amd64.deb" + sha256: "cf8f88e9618fba98eef83e6f88a7e2c2480e2bbaa302f99858c970570de7fe94" + - parent: "nginx" + dest: "libxpm4_3.5.10-1ubuntu0.1_amd64.deb" + url: "http://launchpadlibrarian.net/303890383/libxpm4_3.5.10-1ubuntu0.1_amd64.deb" + sha256: "800582e71ad963032c1aa27df85f05a50e3ecbb4d2be7a545888d9a2f80ba249" + - parent: "nginx" + dest: "libvpx1_1.3.0-2_amd64.deb" + url: "http://launchpadlibrarian.net/161837330/libvpx1_1.3.0-2_amd64.deb" + sha256: "cf537cdbb2fef2d2bf25664651030c8de2083916f4b4a8bd59c4350e5f21e190" + - parent: "nginx" + dest: "libtiff5_4.0.3-7ubuntu0.11_amd64.deb" + url: "http://launchpadlibrarian.net/414706924/libtiff5_4.0.3-7ubuntu0.11_amd64.deb" + sha256: "2219cdb57de2893a02b6c5cef554e97fce61018ad6d1277203f8bc29a8ce1dc4" + +parents: + - name: "php5-fpm" + tarball: "php5-fpm.tgz" + - name: "nginx" + tarball: "nginx_trusty_debs.tgz" + +required_files: + - destination: "{{ download_dir }}/php5-fpm.tgz" + - destination: "{{ download_dir }}/nginx_trusty_debs.tgz" + - destination: "{{ mc_dir }}/images/ubuntu-14.04.5-server-amd64.qc2.xz" + - destination: "{{ mc_dir }}/images/ubuntu-14.04.5-desktop-amd64.qcow2.xz" diff --git a/src/firewheel_repo_linux/ubuntu/ubuntu/INSTALL b/src/firewheel_repo_linux/ubuntu/ubuntu/INSTALL deleted file mode 100755 index f125749..0000000 --- a/src/firewheel_repo_linux/ubuntu/ubuntu/INSTALL +++ /dev/null @@ -1,156 +0,0 @@ -#!/bin/bash - -# Create a flag for verifying installation -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) -INSTALL_FLAG=$SCRIPT_DIR/.linux.ubuntu.installed - -tarname="*.tgz" - -####################################################### -# Checking if there this script has already been complete. -####################################################### -function check_flag() { - if [[ -f "$INSTALL_FLAG" ]]; then - echo >&2 "linux.ubuntu is already installed!" - exit 117; # Structure needs cleaning - fi -} - - -####################################################### -# Download using wget and then checksum the downloaded files. -# -# It is important to verify that the downloaded files -# are the files are the same ones as expected. -# This function provides an outline of how to checksum files, -# but will need to be updated with the specific hashes/file names -# that have been downloaded. -# -# This function assumes that the passed in hashes are SHA-256 -####################################################### -function wget_and_checksum() { - downloads=("$@") - # Uses 2D arrays in bash: https://stackoverflow.com/a/44831174 - declare -n d - for d in "${downloads[@]}"; - do - wget "${d[0]}" - echo "${d[1]} ${d[2]}" | shasum -a 256 --check - done -} - -####################################################### -# A function to help users clean up a partial installation -# in the event of an error. -####################################################### -function cleanup() { - echo "Cleaning up linux.ubuntu install" - rm -rf "vm_resources/debs/$tarname" - rm -rf $INSTALL_FLAG - exit 1 -} -trap cleanup ERR - -# Ensure we only complete the script once -check_flag - - -####################################################### -# Uncomment if there is data/VM resources/images to download. -# `file1`, `file2`, etc. should be space separated strings of -# (URL SHASUM-256 FILENAME). -# -# We recommend that explicit versions are used for all Images/VMRs to prevent -# possible differences between instances of a given Model Component. -# Please be mindful of the software versions as it can have unintended -# consequences on your Emulytics experiment. -# -# We require checksums of the files to assist users in verifying -# that they have downloaded the same version. -####################################################### -# Be sure to use SHA-256 hashes for the checksums (e.g. shasum -a 256 ) - -# htop -htop_fn="htop_1.0.2-3_amd64.deb" -htop_dir="htop-1_0_2_debs" -htop=("http://archive.ubuntu.com/ubuntu/pool/universe/h/htop/htop_1.0.2-3_amd64.deb" "0311d8a26689935ca53e8e9252cb2d95a1fdc2f8278f4edb5733f555dad984a9" "$htop_fn") -htop_tar="htop-1_0_2_debs.tgz" -files=(htop) -wget_and_checksum "${files[@]}" -mkdir "$htop_dir" -mv "$htop_fn" "$htop_dir" -tar -czf "$htop_tar" "$htop_dir" -mv "$htop_tar" vm_resources/debs/ -rm -rf "$htop_dir" - -# expect -expect_fn="expect_5.45-7_amd64.deb" -libtcl_fn="libtcl8.6_8.6.5+dfsg-2_amd64.deb" -tcpexpect_fn="tcl-expect_5.45-7_amd64.deb" -expect_dir="expect_debs" -expect_tar="expect_5.45-7_amd64_debs.tgz" -expect=("http://archive.ubuntu.com/ubuntu/pool/universe/e/expect/expect_5.45-7_amd64.deb" "abad38a5b63d9f2e77da359d27a514e552cae280a90df21332d91ee6cf8dfe9c" "$expect_fn") -libtcl=("http://archive.ubuntu.com/ubuntu/pool/main/t/tcl8.6/libtcl8.6_8.6.5+dfsg-2_amd64.deb" "a061cf3a366b9d49b71a83441dc737cc2d0f2d8019543944f20a4d1d2622cdc7" "$libtcl_fn") -tclexpect=("http://archive.ubuntu.com/ubuntu/pool/universe/e/expect/tcl-expect_5.45-7_amd64.deb" "31076fdac0515f4b9c719af712a452e4797a232eb0d9970221ed0b0149fed43f" "$tcpexpect_fn") -files=(expect libtcl tclexpect) -wget_and_checksum "${files[@]}" -mkdir "$expect_dir" -mv "$expect_fn" "$expect_dir" -mv "$libtcl_fn" "$expect_dir" -mv "$tcpexpect_fn" "$expect_dir" -tar -czf "$expect_tar" "$expect_dir" -mv "$expect_tar" vm_resources/debs/ -rm -rf "$expect_dir" - -# openssh -ncurses_fn="ncurses-term_6.0+20160213-1ubuntu1_all.deb" -opensshclient_fn="openssh-client_7.2p2-4ubuntu2.10_amd64.deb" -opensshserver_fn="openssh-server_7.2p2-4ubuntu2.10_amd64.deb" -opensshsftpserver_fn="openssh-sftp-server_7.2p2-4ubuntu2.10_amd64.deb" -sshimportid_fn="ssh-import-id_5.5-0ubuntu1_all.deb" -ncurses=("http://archive.ubuntu.com/ubuntu/pool/main/n/ncurses/ncurses-term_6.0+20160213-1ubuntu1_all.deb" "2efb680d98af002b11948a4215c50259a799260c7fbb8b9f06e2d2f3736ab717" "$ncurses_fn") -opensshclient=("http://archive.ubuntu.com/ubuntu/pool/main/o/openssh/openssh-client_7.2p2-4ubuntu2.10_amd64.deb" "2e9a24614869da9ab5bffead28507c0781f748c818e048d2315eea172af36877" "$opensshclient_fn") -opensshserver=("http://archive.ubuntu.com/ubuntu/pool/main/o/openssh/openssh-server_7.2p2-4ubuntu2.10_amd64.deb" "9dd06c7275ca1d047a450b53a0d03c0f7c3d8df5d35988ee146280a900fefca4" "$opensshserver_fn") -opensshsftpserver=("http://archive.ubuntu.com/ubuntu/pool/main/o/openssh/openssh-sftp-server_7.2p2-4ubuntu2.10_amd64.deb" "fe0622c278799e4e6304d83bcb0f832888fb2082dbe4652c603a18e007c37a4b" "$opensshsftpserver_fn") -sshimportid=("http://archive.ubuntu.com/ubuntu/pool/main/s/ssh-import-id/ssh-import-id_5.5-0ubuntu1_all.deb" "d4f2886e698cccdf5013a5d52ee457f3469f8ffba8b15412de6fca17aea05674" "$sshimportid_fn") -files=(ncurses opensshclient opensshserver opensshsftpserver sshimportid) -wget_and_checksum "${files[@]}" -openssh_dir="openssh_debs" -mkdir "$openssh_dir" -for f in "$ncurses_fn" "$opensshclient_fn" "$opensshserver_fn" "$opensshsftpserver_fn" "$sshimportid_fn"; -do - mv "$f" "$openssh_dir" -done -openssh_tar="openSSH_7.2_debs.tgz" -tar -czf "$openssh_tar" "$openssh_dir" -mv "$openssh_tar" vm_resources/debs/ -rm -rf "$openssh_dir" - -# pssh -pssh_fn="pssh_2.3.1-1_all.deb" -pssh=("http://archive.ubuntu.com/ubuntu/pool/universe/p/pssh/pssh_2.3.1-1_all.deb" "eaad9c666e4ec709fcecde65a92db08fb8d8a1413c7aba06e10d6f4a44b78a38" "$pssh_fn") -files=(pssh) -wget_and_checksum "${files[@]}" -pssh_dir="pssh_debs" -pssh_tar="pssh_2.3.1-1_all_debs.tgz" -mkdir "$pssh_dir" -mv "$pssh_fn" "$pssh_dir" -tar -czf "$pssh_tar" "$pssh_dir" -mv "$pssh_tar" vm_resources/debs/ -rm -rf "$pssh_dir" - -# tmux -tmux_fn="tmux_2.1-3build1_amd64.deb" -tmux=("http://archive.ubuntu.com/ubuntu/pool/main/t/tmux/tmux_2.1-3build1_amd64.deb" "c018c7238ee14e9f3f42dcf374e563f58055b998c5ae5e89b1c99fafee1df022" "$tmux_fn") -files=(tmux) -wget_and_checksum "${files[@]}" -tmux_dir="tmux_debs" -tmux_tar="tmux_2.1_debs.tgz" -mkdir "$tmux_dir" -mv "$tmux_fn" "$tmux_dir" -tar -czf "$tmux_tar" "$tmux_dir" -mv "$tmux_tar" vm_resources/debs/ -rm -rf "$tmux_dir" - -# Set the flag to notify of successful completion -touch $INSTALL_FLAG diff --git a/src/firewheel_repo_linux/ubuntu/ubuntu/INSTALL/tasks.yml b/src/firewheel_repo_linux/ubuntu/ubuntu/INSTALL/tasks.yml new file mode 100644 index 0000000..0fbf6a5 --- /dev/null +++ b/src/firewheel_repo_linux/ubuntu/ubuntu/INSTALL/tasks.yml @@ -0,0 +1,31 @@ +--- +- name: Create VM resources directory + ansible.builtin.file: + path: "{{ download_dir }}" + state: directory + +- name: Create parent directories + ansible.builtin.file: + path: "{{ download_dir }}/{{ item.name }}" + state: directory + loop: "{{ parents }}" + +- name: Download and verify files + ansible.builtin.get_url: + url: "{{ item.url }}" + dest: "{{ download_dir }}/{{ item.parent }}/{{ item.dest }}" + checksum: "sha256:{{ item.sha256 }}" + loop: "{{ files }}" + +- name: Compress parent directories into tarballs + ansible.builtin.archive: + path: "{{ download_dir }}/{{ item.name }}" + dest: "{{ download_dir }}/{{ item.tarball }}" + format: gz + loop: "{{ parents }}" + +- name: Remove parent directories + ansible.builtin.file: + path: "{{ download_dir }}/{{ item.name }}" + state: absent + loop: "{{ parents }}" diff --git a/src/firewheel_repo_linux/ubuntu/ubuntu/INSTALL/vars.yml b/src/firewheel_repo_linux/ubuntu/ubuntu/INSTALL/vars.yml new file mode 100644 index 0000000..e6a420a --- /dev/null +++ b/src/firewheel_repo_linux/ubuntu/ubuntu/INSTALL/vars.yml @@ -0,0 +1,66 @@ +--- +download_dir: "{{ mc_dir }}/vm_resources/debs" +files: + - parent: "htop" + dest: "htop_1.0.2-3_amd64.deb" + url: "http://archive.ubuntu.com/ubuntu/pool/universe/h/htop/htop_1.0.2-3_amd64.deb" + sha256: "0311d8a26689935ca53e8e9252cb2d95a1fdc2f8278f4edb5733f555dad984a9" + - parent: "expect" + dest: "expect_5.45-7_amd64.deb" + url: "http://archive.ubuntu.com/ubuntu/pool/universe/e/expect/expect_5.45-7_amd64.deb" + sha256: "abad38a5b63d9f2e77da359d27a514e552cae280a90df21332d91ee6cf8dfe9c" + - parent: "expect" + dest: "libtcl8.6_8.6.5+dfsg-2_amd64.deb" + url: "http://archive.ubuntu.com/ubuntu/pool/main/t/tcl8.6/libtcl8.6_8.6.5+dfsg-2_amd64.deb" + sha256: "a061cf3a366b9d49b71a83441dc737cc2d0f2d8019543944f20a4d1d2622cdc7" + - parent: "expect" + dest: "tcl-expect_5.45-7_amd64.deb" + url: "http://archive.ubuntu.com/ubuntu/pool/universe/e/expect/tcl-expect_5.45-7_amd64.deb" + sha256: "31076fdac0515f4b9c719af712a452e4797a232eb0d9970221ed0b0149fed43f" + - parent: "openssh" + dest: "ncurses-term_6.0+20160213-1ubuntu1_all.deb" + url: "http://archive.ubuntu.com/ubuntu/pool/main/n/ncurses/ncurses-term_6.0+20160213-1ubuntu1_all.deb" + sha256: "2efb680d98af002b11948a4215c50259a799260c7fbb8b9f06e2d2f3736ab717" + - parent: "openssh" + dest: "openssh-client_7.2p2-4ubuntu2.10_amd64.deb" + url: "http://archive.ubuntu.com/ubuntu/pool/main/o/openssh/openssh-client_7.2p2-4ubuntu2.10_amd64.deb" + sha256: "2e9a24614869da9ab5bffead28507c0781f748c818e048d2315eea172af36877" + - parent: "openssh" + dest: "openssh-server_7.2p2-4ubuntu2.10_amd64.deb" + url: "http://archive.ubuntu.com/ubuntu/pool/main/o/openssh/openssh-server_7.2p2-4ubuntu2.10_amd64.deb" + sha256: "9dd06c7275ca1d047a450b53a0d03c0f7c3d8df5d35988ee146280a900fefca4" + - parent: "openssh" + dest: "openssh-sftp-server_7.2p2-4ubuntu2.10_amd64.deb" + url: "http://archive.ubuntu.com/ubuntu/pool/main/o/openssh/openssh-sftp-server_7.2p2-4ubuntu2.10_amd64.deb" + sha256: "fe0622c278799e4e6304d83bcb0f832888fb2082dbe4652c603a18e007c37a4b" + - parent: "openssh" + dest: "ssh-import-id_5.5-0ubuntu1_all.deb" + url: "http://archive.ubuntu.com/ubuntu/pool/main/s/ssh-import-id/ssh-import-id_5.5-0ubuntu1_all.deb" + sha256: "d4f2886e698cccdf5013a5d52ee457f3469f8ffba8b15412de6fca17aea05674" + - parent: "pssh" + dest: "pssh_2.3.1-1_all.deb" + url: "http://archive.ubuntu.com/ubuntu/pool/universe/p/pssh/pssh_2.3.1-1_all.deb" + sha256: "eaad9c666e4ec709fcecde65a92db08fb8d8a1413c7aba06e10d6f4a44b78a38" + - parent: "tmux" + dest: "tmux_2.1-3build1_amd64.deb" + url: "http://archive.ubuntu.com/ubuntu/pool/main/t/tmux/tmux_2.1-3build1_amd64.deb" + sha256: "c018c7238ee14e9f3f42dcf374e563f58055b998c5ae5e89b1c99fafee1df022" + +parents: + - name: "htop" + tarball: "htop-1_0_2_debs.tgz" + - name: "expect" + tarball: "expect_5.45-7_amd64_debs.tgz" + - name: "openssh" + tarball: "openSSH_7.2_debs.tgz" + - name: "pssh" + tarball: "pssh_2.3.1-1_all_debs.tgz" + - name: "tmux" + tarball: "tmux_2.1_debs.tgz" + +required_files: + - destination: "{{ download_dir }}/htop-1_0_2_debs.tgz" + - destination: "{{ download_dir }}/expect_5.45-7_amd64_debs.tgz" + - destination: "{{ download_dir }}/openSSH_7.2_debs.tgz" + - destination: "{{ download_dir }}/pssh_2.3.1-1_all_debs.tgz" + - destination: "{{ download_dir }}/tmux_2.1_debs.tgz" diff --git a/src/firewheel_repo_linux/ubuntu/xenial/INSTALL/tasks.yml b/src/firewheel_repo_linux/ubuntu/xenial/INSTALL/tasks.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/src/firewheel_repo_linux/ubuntu/xenial/INSTALL/tasks.yml @@ -0,0 +1 @@ +--- diff --git a/src/firewheel_repo_linux/ubuntu/xenial/INSTALL/vars.yml b/src/firewheel_repo_linux/ubuntu/xenial/INSTALL/vars.yml new file mode 100644 index 0000000..cb4db9c --- /dev/null +++ b/src/firewheel_repo_linux/ubuntu/xenial/INSTALL/vars.yml @@ -0,0 +1,4 @@ +--- +required_files: + - destination: "{{ mc_dir }}/images/ubuntu-16.04.4-server-amd64.qcow2.xz" + - destination: "{{ mc_dir }}/images/ubuntu-16.04.4-desktop-amd64.qcow2.xz"