Last active
          March 29, 2022 16:56 
        
      - 
      
- 
        Save smijar/7a4d9ec890035688473a915ec1932b1a to your computer and use it in GitHub Desktop. 
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | # -*- mode: ruby -*- | |
| # vi: set ft=ruby : | |
| # sudo virsh net-list --all | |
| # sudo virsh net-dumpxml $NETWORK_NAME | |
| # sudo virsh list --all | |
| # add your own ssh key to be able to checkout github submodules/private repos | |
| vm_script = <<-SCRIPT | |
| #!/bin/bash | |
| set -euxo pipefail | |
| echo hello, world! | |
| sudo chmod +x /dev/kvm | |
| sudo lscpu | grep Virtualization | |
| cd /tmp | |
| sudo dnf update -y | |
| # install docker | |
| echo "installing Docker CE" | |
| sudo dnf remove docker \ | |
| docker-client \ | |
| docker-client-latest \ | |
| docker-common \ | |
| docker-latest \ | |
| docker-latest-logrotate \ | |
| docker-logrotate \ | |
| docker-selinux \ | |
| docker-engine-selinux \ | |
| docker-engine -y | |
| sudo dnf install dnf-plugins-core -y | |
| sudo dnf config-manager \ | |
| --add-repo \ | |
| https://download.docker.com/linux/fedora/docker-ce.repo | |
| sudo dnf install docker-ce docker-ce-cli containerd.io -y | |
| # enable and start docker daemon | |
| echo "service enable and start docker" | |
| sudo systemctl enable docker | |
| if [ groupadd docker ]; then echo "group added"; fi | |
| sudo usermod -aG docker $USER | |
| # apply changes without logging out | |
| sudo newgrp docker | |
| # install docker-compose | |
| # ref: https://computingforgeeks.com/install-and-use-docker-compose-on-fedora/ | |
| curl -s https://api.github.com/repos/docker/compose/releases/latest \ | |
| | grep browser_download_url \ | |
| | grep docker-compose-linux-x86_64 \ | |
| | cut -d '"' -f 4 \ | |
| | wget -qi - | |
| chmod +x docker-compose-linux-x86_64 | |
| sudo mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose | |
| # install git | |
| sudo dnf install git -y | |
| # install node | |
| sudo dnf install nodejs -y | |
| # install golang | |
| sudo dnf -y install go | |
| # install retype | |
| sudo npm install retypeapp --global | |
| # install kubectl | |
| cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo | |
| [kubernetes] | |
| name=Kubernetes | |
| baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 | |
| enabled=1 | |
| gpgcheck=1 | |
| repo_gpgcheck=1 | |
| gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg | |
| EOF | |
| sudo yum install -y kubectl | |
| # install sdkman and java and maven | |
| echo "installing sdkman and java" | |
| curl -s "https://get.sdkman.io" | bash | |
| echo 'source "$HOME/.sdkman/bin/sdkman-init.sh"' | tee -a $HOME/.bash_profile | |
| # install java and maven | |
| # have to do this as the sdkman script has unbounded variable or something | |
| set +u | |
| source "$HOME/.sdkman/bin/sdkman-init.sh" | |
| sdk install java 11.0.11.hs-adpt | |
| sdk install maven | |
| # install | |
| git clone https://github.com/pyenv/pyenv.git ~/.pyenv | |
| # for Bash | |
| echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile | |
| echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile | |
| echo 'eval "$(pyenv init -)"' >> ~/.bash_profile | |
| # minikube | |
| # https://minikube.sigs.k8s.io/docs/start/ | |
| curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.x86_64.rpm | |
| sudo rpm -ivh minikube-latest.x86_64.rpm | |
| # minikube dashboard to launch the dashboard | |
| # kind | |
| # https://kind.sigs.k8s.io/docs/user/quick-start/#installing-with-a-package-manager | |
| curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.11.1/kind-linux-amd64 | |
| chmod +x ./kind | |
| sudo mv ./kind /usr/local/bin/ | |
| # Install AWS CLI | |
| # https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html | |
| echo "installing AWS CLI" | |
| curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" | |
| unzip awscliv2.zip | |
| sudo ./aws/install | |
| # install azure-cli | |
| # https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-linux?pivots=dnf | |
| echo "installing Azure CLI" | |
| sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc | |
| echo -e "[azure-cli] | |
| name=Azure CLI | |
| baseurl=https://packages.microsoft.com/yumrepos/azure-cli | |
| enabled=1 | |
| gpgcheck=1 | |
| gpgkey=https://packages.microsoft.com/keys/microsoft.asc" | sudo tee /etc/yum.repos.d/azure-cli.repo | |
| sudo dnf install azure-cli -y | |
| # recording | |
| sudo dnf install asciinema -y | |
| sudo dnf install jq -y | |
| SCRIPT | |
| Vagrant.configure("2") do |config| | |
| #inline: "echo Hello, World" | |
| config.vm.box = "fedora/34-cloud-base" | |
| # first, $ vagrant plugin install vagrant-sshfs-works on all platforms | |
| config.vm.synced_folder "./shared", "/vagrant", type: "sshfs" | |
| # this option did not rsync files to host | |
| # config.vm.synced_folder "~/dev", "/vagrant/dev", type: "rsync", | |
| # rsync__exclude: ".git/" | |
| # this mapped the local fs but gave permission error, go going back to rsync | |
| # config.vm.synced_folder "./", "/vagrant", type: "9p", disabled: false, accessmode: "squash", owner: "1000" | |
| # config.vm.synced_folder "~/dev", "/home/vagrant/dev", type: "9p", disabled: false, accessmode: "squash", owner: "1000" | |
| config.vm.provider :libvirt do |libvirt| | |
| # Enable KVM nested virtualization | |
| libvirt.nested = true | |
| #host-model is deprecated at rhel 8 use pass-through instead | |
| libvirt.cpu_mode = "host-passthrough" | |
| # Increase memory allocation for CRC requirements | |
| libvirt.cpus = "4" | |
| libvirt.memory = 10238 | |
| libvirt.machine_virtual_size = 100 | |
| end | |
| config.vm.provision "shell" do |s| | |
| #s.inline = "echo hello" | |
| s.inline = vm_script | |
| end | |
| end | 
  
    Sign up for free
    to join this conversation on GitHub.
    Already have an account?
    Sign in to comment