Move everything off of Ansible

This commit is contained in:
Greg Hellings
2023-08-22 00:18:02 -05:00
parent d0672aa88c
commit b43b95e124
80 changed files with 525 additions and 111 deletions
-25
View File
@@ -12,20 +12,7 @@
- name: Help with debugging
ansible.builtin.debug:
msg: "Detected distro: {{ ansible_facts['distribution'] }}"
- name: get build time
become: true
ansible.builtin.copy:
content: "{{ ansible_facts.date_time.date }} {{ ansible_facts.date_time.hour }}:{{ ansible_facts.date_time.minute }}"
dest: /etc/vagrant_box_build_time
owner: root
group: root
mode: 0644
roles:
- role: latest
when:
- ansible_facts.distribution not in no_touchy
- role: devroles.system.epel
- role: virtualbox
@@ -41,18 +28,6 @@
when:
- packer_builder_type == 'qemu'
- role: init
when:
- ansible_facts.distribution not in no_touchy
- role: locale
when:
- ansible_facts.distribution not in no_touchy
- role: vagrant
when:
- ansible_facts.distribution not in no_touchy
- role: cleanup
when:
- ansible_facts.distribution not in no_touchy
+12
View File
@@ -0,0 +1,12 @@
#!/usr/bin/env bash
set -ex
pacman -Syyu --noconfirm
echo << EOF > /etc/ssh/sshd_config.d/00-vagrant_accept_pubkey.conf
UseDNS no
PubkeyAcceptedKeyTypes +ssh-rsa
EOF
# Clear the pacman cache
pacman -Sc --noconfirm
+2 -9
View File
@@ -33,13 +33,6 @@ grub-mkconfig -o /boot/grub/grub.cfg
# Create and configure the vagrant user
groupadd vagrant
useradd vagrant -g vagrant -G wheel -d /home/vagrant
useradd vagrant -g vagrant -G wheel -m
[ -d /home/vagrant ] || exit 1
echo "vagrant:vagrant" | chpasswd
# Configure vagrant user's SSH key
mkdir -m 0700 -p ~vagrant/.ssh
cat > ~vagrant/.ssh/authorized_keys << EOKEYS
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key
EOKEYS
chmod 600 ~vagrant/.ssh/authorized_keys
chown -R vagrant:vagrant ~vagrant/
+2 -1
View File
@@ -24,9 +24,10 @@ sed -e 's/\s*\([\+0-9a-zA-Z]*\).*/\1/' << EOF | fdisk ${disk}
# default start
# default to full disk
p # print, for debugging
r # return to normal mode
w # write the partition table and exit
EOF
sleep 10 # Let me at least read it!
#t # set partition type
#1 # on partition 1
#4 # BIOS boot
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
pacman -Sy --noconfirm qemu-guest-agent
systemctl start qemu-guest-agent
systemctl enable qemu-guest-agent
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
pacman -Sy --noconfirm virtualbox-guest-utils-nox
systemctl start vboxservice
systemctl enable vboxservice
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -ex
pacman -Sy --noconfirm open-vm-tools
+4 -7
View File
@@ -90,18 +90,16 @@ ex -s /etc/ssh/sshd_config <<EOF
EOF
cat >>/etc/sysconfig/sshd <<EOF
echo << EOF > /etc/ssh/sshd_config.d/00-vagrant_accept_pubkey.conf
PubkeyAcceptedKeyTypes +ssh-rsa
EOF
# Decrease connection time by preventing reverse DNS lookups
# (see https://lists.centos.org/pipermail/centos-devel/2016-July/014981.html
# and man sshd for more information)
OPTIONS="-u0"
EOF
# Default insecure vagrant key
mkdir -m 0700 -p /home/vagrant/.ssh
echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key" >> /home/vagrant/.ssh/authorized_keys
chmod 600 /home/vagrant/.ssh/authorized_keys
chown -R vagrant:vagrant /home/vagrant/.ssh
# Fix for issue #76, regular users can gain admin privileges via su
ex -s /etc/pam.d/su <<'EOF'
# allow vagrant to use su, but prevent others from becoming root or vagrant
@@ -152,4 +150,3 @@ rm -rf /etc/ssh/ssh_host_*
hostnamectl set-hostname localhost.localdomain
rm -rf /etc/udev/rules.d/70-*
%end
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
dnf -y update
dnf clean all
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
dnf install -y qemu-guest-agent
systemctl start qemu-guest-agent
systemctl enable qemu-guest-agent
+10
View File
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
set -ex
packages="bzip2 dkms kernel-devel kernel-headers make perl gcc"
dnf install -y ${packages} # Intentionally not quoted
mount -t auto /home/vagrant/VBoxGuestAdditions.iso /mnt
/mnt/VBoxLinuxAdditions.run install 2>&1 | tee /root/vbox_addon_install.log
dnf uninstall -y ${packages} # Also intentionally not quoted
umount /mnt
rm /home/vagrant/VBoxGuestAdditions.iso
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -ex
dnf install -y open-vm-tools
+2 -2
View File
@@ -1,5 +1,5 @@
distro = "centos"
version = "8stream"
distro = "centos-stream"
version = "8"
iso = {
url = "http://mirror.centos.org/centos/8-stream/isos/x86_64/CentOS-Stream-8-x86_64-latest-boot.iso"
checksum = "029ead89f720becd5ee2a8cf9935aad12fda7494d61674710174b4674b357530"
@@ -12,8 +12,8 @@ done
sha="$(cat "${checksums}" | grep latest-boot | grep SHA256 | cut -d' ' -f 4)"
cat << HERPDERP > "${name}"
distro = "centos"
version = "8stream"
distro = "centos-stream"
version = "8"
iso = {
url = "http://mirror.centos.org/centos/8-stream/isos/x86_64/CentOS-Stream-8-x86_64-latest-boot.iso"
checksum = "${sha}"
+4 -7
View File
@@ -99,18 +99,16 @@ ex -s /etc/ssh/sshd_config <<EOF
EOF
cat >>/etc/sysconfig/sshd <<EOF
echo << EOF > /etc/ssh/sshd_config.d/00-vagrant_accept_pubkey.conf
PubkeyAcceptedKeyTypes +ssh-rsa
EOF
# Decrease connection time by preventing reverse DNS lookups
# (see https://lists.centos.org/pipermail/centos-devel/2016-July/014981.html
# and man sshd for more information)
OPTIONS="-u0"
EOF
# Default insecure vagrant key
mkdir -m 0700 -p /home/vagrant/.ssh
echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key" >> /home/vagrant/.ssh/authorized_keys
chmod 600 /home/vagrant/.ssh/authorized_keys
chown -R vagrant:vagrant /home/vagrant/.ssh
# Fix for issue #76, regular users can gain admin privileges via su
ex -s /etc/pam.d/su <<'EOF'
# allow vagrant to use su, but prevent others from becoming root or vagrant
@@ -161,4 +159,3 @@ rm -rf /etc/ssh/ssh_host_*
hostnamectl set-hostname localhost.localdomain
rm -rf /etc/udev/rules.d/70-*
%end
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
dnf -y update
dnf clean all
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
dnf install -y qemu-guest-agent
systemctl start qemu-guest-agent
systemctl enable qemu-guest-agent
+10
View File
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
set -ex
packages="bzip2 dkms kernel-devel kernel-headers make perl gcc"
dnf install -y ${packages} # Intentionally not quoted
mount -t auto /home/vagrant/VBoxGuestAdditions.iso /mnt
/mnt/VBoxLinuxAdditions.run install 2>&1 | tee /root/vbox_addon_install.log
dnf uninstall -y ${packages} # Also intentionally not quoted
umount /mnt
rm /home/vagrant/VBoxGuestAdditions.iso
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -ex
dnf install -y open-vm-tools
+2 -2
View File
@@ -1,5 +1,5 @@
distro = "centos"
version = "9stream"
distro = "centos-stream"
version = "9"
iso = {
url = "https://mirror.stream.centos.org/9-stream/BaseOS/x86_64/iso/CentOS-Stream-9-latest-x86_64-boot.iso"
checksum = "be2104d6deac0bf5e52e7262511b7acd3cab0dff96ddef1f2604b2de892e060d"
@@ -14,8 +14,8 @@ sha="$(cat "${checksums}" | awk '/SHA256/ {print $4}')"
rm "${checksums}"
cat << HERPDERP > "${name}"
distro = "centos"
version = "9stream"
distro = "centos-stream"
version = "9"
iso = {
url = "${baseurl}"
checksum = "${sha}"
+3
View File
@@ -50,5 +50,8 @@ BOOTPROTO="dhcp"
ONBOOT="yes"
TYPE="Ethernet"
EOF
sed -i -E -e 's/^.*UseDNS.*$/UseDNS no/'
echo "PubkeyAcceptedKeyTypes +ssh-rsa" >> /etc/ssh/sshd_config
%end
+8
View File
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
set -ex
yum -y update
yum remove make perl gcc kernel-devel kernel-headers bzip2
yum clean all
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
yum install -y qemu-guest-agent
systemctl start qemu-guest-agent
systemctl enable qemu-guest-agent
+10
View File
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
set -ex
packages="bzip2 dkms kernel-devel kernel-headers make perl gcc"
yum install -y ${packages} # Intentionally not quoted
mount -t auto /home/vagrant/VBoxGuestAdditions.iso /mnt
/mnt/VBoxLinuxAdditions.run install 2>&1 | tee /root/vbox_addon_install.log
yum uninstall -y ${packages} # Also intentionally not quoted
umount /mnt
rm /home/vagrant/VBoxGuestAdditions.iso
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -ex
yum install -y open-vm-tools
+14
View File
@@ -0,0 +1,14 @@
#!/usr/bin/env bash
set -ex
apt update
apt upgrade -y
# Configure sshd to be faster
echo << EOF > /etc/ssh/sshd_config.d/00-vagrant_accept_pubkey.conf
UseDNS no
PubkeyAcceptedKeyTypes +ssh-rsa
EOF
# Clean up after ourselves
apt-get clean
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
apt install -y qemu-guest-agent
systemctl start qemu-guest-agent
systemctl enable qemu-guest-agent
+10
View File
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
set -ex
packages="bzip2 dkms build-essential linux-headers-$(uname -r)"
apt install -y ${packages} # Intentionally not quoted
mount -t auto /home/vagrant/VBoxGuestAdditions.iso /mnt
/mnt/VBoxLinuxAdditions.run install 2>&1 | tee /root/vbox_addon_install.log
apt remove -y ${packages} # Also intentionally not quoted
umount /mnt
rm /home/vagrant/VBoxGuestAdditions.iso
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -ex
apt install -y open-vm-tools
+14
View File
@@ -0,0 +1,14 @@
#!/usr/bin/env bash
set -ex
apt update
apt upgrade -y
# Configure sshd to be faster
echo << EOF > /etc/ssh/sshd_config.d/00-vagrant_accept_pubkey.conf
UseDNS no
PubkeyAcceptedKeyTypes +ssh-rsa
EOF
# Clean up after ourselves
apt-get clean
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
apt install -y qemu-guest-agent
systemctl start qemu-guest-agent
systemctl enable qemu-guest-agent
+10
View File
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
set -ex
packages="bzip2 dkms build-essential linux-headers-$(uname -r)"
apt install -y ${packages} # Intentionally not quoted
mount -t auto /home/vagrant/VBoxGuestAdditions.iso /mnt
/mnt/VBoxLinuxAdditions.run install 2>&1 | tee /root/vbox_addon_install.log
apt remove -y ${packages} # Also intentionally not quoted
umount /mnt
rm /home/vagrant/VBoxGuestAdditions.iso
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -ex
apt install -y open-vm-tools
+14
View File
@@ -0,0 +1,14 @@
#!/usr/bin/env bash
set -ex
apt update
apt upgrade -y
# Configure sshd to be faster
echo << EOF > /etc/ssh/sshd_config.d/00-vagrant_accept_pubkey.conf
UseDNS no
PubkeyAcceptedKeyTypes +ssh-rsa
EOF
# Clean up after ourselves
apt-get clean
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
apt install -y qemu-guest-agent
systemctl start qemu-guest-agent
systemctl enable qemu-guest-agent
+10
View File
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
set -ex
packages="bzip2 dkms build-essential linux-headers-$(uname -r)"
apt install -y ${packages} # Intentionally not quoted
mount -t auto /home/vagrant/VBoxGuestAdditions.iso /mnt
/mnt/VBoxLinuxAdditions.run install 2>&1 | tee /root/vbox_addon_install.log
apt remove -y ${packages} # Also intentionally not quoted
umount /mnt
rm /home/vagrant/VBoxGuestAdditions.iso
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -ex
apt install -y open-vm-tools
+14
View File
@@ -0,0 +1,14 @@
#!/usr/bin/env bash
set -ex
apt update
apt upgrade -y
# Configure sshd to be faster
echo << EOF > /etc/ssh/sshd_config.d/00-vagrant_accept_pubkey.conf
UseDNS no
PubkeyAcceptedKeyTypes +ssh-rsa
EOF
# Clean up after ourselves
apt-get clean
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
apt install -y qemu-guest-agent
systemctl start qemu-guest-agent
systemctl enable qemu-guest-agent
+10
View File
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
set -ex
packages="bzip2 dkms build-essential linux-headers-$(uname -r)"
apt install -y ${packages} # Intentionally not quoted
mount -t auto /home/vagrant/VBoxGuestAdditions.iso /mnt
/mnt/VBoxLinuxAdditions.run install 2>&1 | tee /root/vbox_addon_install.log
apt remove -y ${packages} # Also intentionally not quoted
umount /mnt
rm /home/vagrant/VBoxGuestAdditions.iso
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -ex
apt install -y open-vm-tools
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
dnf -y update
dnf clean all
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
dnf install -y qemu-guest-agent
systemctl start qemu-guest-agent
systemctl enable qemu-guest-agent
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
dnf install -y virtualbox-guest-additions
systemctl start vboxservice
systemctl enable vboxservice
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -ex
dnf install -y open-vm-tools
+1 -12
View File
@@ -156,12 +156,7 @@ truncate -s 0 /etc/machine-id
sed -i 's,Defaults\\s*requiretty,Defaults !requiretty,' /etc/sudoers
echo 'vagrant ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/vagrant-nopasswd
sed -i 's/.*UseDNS.*/UseDNS no/' /etc/ssh/sshd_config
mkdir -m 0700 -p ~vagrant/.ssh
cat > ~vagrant/.ssh/authorized_keys << EOKEYS
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key
EOKEYS
chmod 600 ~vagrant/.ssh/authorized_keys
chown -R vagrant:vagrant ~vagrant/.ssh/
#'k
cat > /etc/ssh/sshd_config.d/10-vagrant-insecure-rsa-key.conf <<EOF
# For now the vagrant insecure key is an rsa key
@@ -169,12 +164,6 @@ cat > /etc/ssh/sshd_config.d/10-vagrant-insecure-rsa-key.conf <<EOF
PubkeyAcceptedKeyTypes=+ssh-rsa
EOF
# Further suggestion from @purpleidea (James Shubin) - extend key to root users as well
mkdir -m 0700 -p /root/.ssh
cp /home/vagrant/.ssh/authorized_keys /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
chown -R root:root /root/.ssh
ssh-keygen -A
%end
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
dnf -y update
dnf clean all
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
dnf install -y qemu-guest-agent
systemctl start qemu-guest-agent
systemctl enable qemu-guest-agent
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
dnf install -y virtualbox-guest-additions
systemctl start vboxservice
systemctl enable vboxservice
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -ex
dnf install -y open-vm-tools
+1 -12
View File
@@ -149,12 +149,7 @@ truncate -s 0 /etc/machine-id
sed -i 's,Defaults\\s*requiretty,Defaults !requiretty,' /etc/sudoers
echo 'vagrant ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/vagrant-nopasswd
sed -i 's/.*UseDNS.*/UseDNS no/' /etc/ssh/sshd_config
mkdir -m 0700 -p ~vagrant/.ssh
cat > ~vagrant/.ssh/authorized_keys << EOKEYS
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key
EOKEYS
chmod 600 ~vagrant/.ssh/authorized_keys
chown -R vagrant:vagrant ~vagrant/.ssh/
#'
cat > /etc/ssh/sshd_config.d/10-vagrant-insecure-rsa-key.conf <<EOF
# For now the vagrant insecure key is an rsa key
@@ -162,12 +157,6 @@ cat > /etc/ssh/sshd_config.d/10-vagrant-insecure-rsa-key.conf <<EOF
PubkeyAcceptedKeyTypes=+ssh-rsa
EOF
# Further suggestion from @purpleidea (James Shubin) - extend key to root users as well
mkdir -m 0700 -p /root/.ssh
cp /home/vagrant/.ssh/authorized_keys /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
chown -R root:root /root/.ssh
ssh-keygen -A
%end
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
dnf -y update
dnf clean all
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
dnf install -y qemu-guest-agent
systemctl start qemu-guest-agent
systemctl enable qemu-guest-agent
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
dnf install -y virtualbox-guest-additions
systemctl start vboxservice
systemctl enable vboxservice
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -ex
dnf install -y open-vm-tools
+1 -12
View File
@@ -142,12 +142,7 @@ truncate -s 0 /etc/machine-id
sed -i 's,Defaults\\s*requiretty,Defaults !requiretty,' /etc/sudoers
echo 'vagrant ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/vagrant-nopasswd
sed -i 's/.*UseDNS.*/UseDNS no/' /etc/ssh/sshd_config
mkdir -m 0700 -p ~vagrant/.ssh
cat > ~vagrant/.ssh/authorized_keys << EOKEYS
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key
EOKEYS
chmod 600 ~vagrant/.ssh/authorized_keys
chown -R vagrant:vagrant ~vagrant/.ssh/
#'
cat > /etc/ssh/sshd_config.d/10-vagrant-insecure-rsa-key.conf <<EOF
# For now the vagrant insecure key is an rsa key
@@ -155,12 +150,6 @@ cat > /etc/ssh/sshd_config.d/10-vagrant-insecure-rsa-key.conf <<EOF
PubkeyAcceptedKeyTypes=+ssh-rsa
EOF
# Further suggestion from @purpleidea (James Shubin) - extend key to root users as well
mkdir -m 0700 -p /root/.ssh
cp /home/vagrant/.ssh/authorized_keys /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
chown -R root:root /root/.ssh
ssh-keygen -A
%end
+1
View File
@@ -0,0 +1 @@
#!/usr/bin/env bash
@@ -3,6 +3,7 @@
{
imports = [
./hardware-configuration.nix
#PROVIDER_PLACEHOLDER
];
# Packages installed on the whole system
@@ -17,8 +18,10 @@
#xserver.enable = true;
};
# User setup
users.groups.vagrant = {};
users.users.vagrant = {
isNormalUser = true;
group = "vagrant";
extraGroups = [ "wheel" ];
password = "vagrant";
};
+1 -6
View File
@@ -5,11 +5,6 @@ set -ex
echo "vagrant:vagrant" | chpasswd
echo "root:vagrant" | chpasswd
# Configure vagrant user's SSH key
mkdir -m 0700 -p ~vagrant/.ssh
curl -o /home/vagrant/.ssh/authorized_keys https://raw.githubusercontent.com/hashicorp/vagrant/master/keys/vagrant.pub
chmod 600 ~vagrant/.ssh/authorized_keys
# Set ownership of things vagrant should own
chown -R vagrant:wheel ~vagrant/
chown -R vagrant:vagrant ~vagrant/
chown -R vagrant:wheel /etc/nixos
+12
View File
@@ -0,0 +1,12 @@
#!/usr/bin/env bash
set -ex
sed -i -e 's,#PROVIDER_PLACEHOLDER,guest-agent.nix,' /etc/nixos/configuration.nix
cat << EOF > /etc/nixos/guest-agent.nix
{...}:
{
services.qemuGuest.enable = true;
}
EOF
chown vagrant:vagrant /etc/nixos/guest-agent.nix
nixos-rebuild switch
+15
View File
@@ -0,0 +1,15 @@
#!/usr/bin/env bash
set -ex
sed -i -e 's,#PROVIDER_PLACEHOLDER,guest-agent.nix,' /etc/nixos/configuration.nix
cat << EOF > /etc/nixos/guest-agent.nix
{...}:
{
virtualisation.virtualbox.guest = {
enable = true;
x11 = false;
};
}
EOF
chown vagrant:vagrant /etc/nixos/guest-agent.nix
nixos-rebuild switch
+15
View File
@@ -0,0 +1,15 @@
#!/usr/bin/env bash
set -ex
sed -i -e 's,#PROVIDER_PLACEHOLDER,guest-agent.nix,' /etc/nixos/configuration.nix
cat << EOF > /etc/nixos/guest-agent.nix
{...}:
{
virtualisation.vmware.guest = {
enable = true;
headless = false;
};
}
EOF
chown vagrant:vagrant /etc/nixos/guest-agent.nix
nixos-rebuild switch
+18
View File
@@ -0,0 +1,18 @@
#!/usr/bin/env bash
set -ex
apt remove cloud-init -y
apt update
apt upgrade -y
# Do some magic with init
sed -i -E -e 's,^(ACTIVE_CONSOLES="/dev/tty).*",\11,' /etc/default/console-setup
echo << EOF > /etc/ssh/sshd_config.d/00-vagrant_accept_pubkey.conf
UseDNS no
PubkeyAcceptedKeyTypes +ssh-rsa
EOF
# Clean up after ourselves
apt-get clean
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
apt install -y qemu-guest-agent
systemctl start qemu-guest-agent
systemctl enable qemu-guest-agent
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
apt install -y virtualbox-guest-dkms
systemctl start vboxservice
systemctl enable vboxservice
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -ex
apt install -y open-vm-tools
+19
View File
@@ -0,0 +1,19 @@
#!/usr/bin/env bash
set -ex
apt remove cloud-init -y
apt update
apt upgrade -y
# Do some magic with init
sed -i -E -e 's,^(ACTIVE_CONSOLES="/dev/tty).*",\11,' /etc/default/console-setup
# Make sshd faster
echo << EOF > /etc/ssh/sshd_config.d/00-vagrant_accept_pubkey.conf
UseDNS no
PubkeyAcceptedKeyTypes +ssh-rsa
EOF
# Clean up after ourselves
apt-get clean
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
apt install -y qemu-guest-agent
systemctl start qemu-guest-agent
systemctl enable qemu-guest-agent
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
apt install -y virtualbox-guest-dkms
systemctl start vboxservice
systemctl enable vboxservice
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -ex
apt install -y open-vm-tools
+19
View File
@@ -0,0 +1,19 @@
#!/usr/bin/env bash
set -ex
apt remove cloud-init -y
apt update
apt upgrade -y
# Do some magic with init
sed -i -E -e 's,^(ACTIVE_CONSOLES="/dev/tty).*",\11,' /etc/default/console-setup
# Make sshd faster
echo << EOF > /etc/ssh/sshd_config.d/00-vagrant_accept_pubkey.conf
UseDNS no
PubkeyAcceptedKeyTypes +ssh-rsa
EOF
# Clean up after ourselves
apt-get clean
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
apt install -y qemu-guest-agent
systemctl start qemu-guest-agent
systemctl enable qemu-guest-agent
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
apt install -y virtualbox-guest-utils
systemctl start vboxservice
systemctl enable vboxservice
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -ex
apt install -y open-vm-tools
+11
View File
@@ -0,0 +1,11 @@
#!/usr/bin/env bash
set -ex
# Configure vagrant user's SSH key
mkdir -m 0700 -p ~vagrant/.ssh
curl -L -o ~vagrant/.ssh/authorized_keys "https://raw.githubusercontent.com/hashicorp/vagrant/master/keys/vagrant.pub"
chmod 600 ~vagrant/.ssh/authorized_keys
chown -R vagrant:vagrant ~vagrant/
# Set the build time
date -Iseconds > /etc/vagrant_box_build_time
+19 -10
View File
@@ -26,20 +26,29 @@ build {
"source.vmware-iso.x86_64"
]
provisioner "ansible" {
playbook_file = "ansible/playbook.yml"
galaxy_file = "ansible/requirements.yml"
user = local.ssh.username
use_sftp = true
ansible_ssh_extra_args = [
#"-o", "HostKeyAlgorithms=+ssh-rsa",
#"-o", "PubkeyAcceptedKeyTypes=+ssh-rsa",
"-o", "IdentitiesOnly=yes"
]
# If anything needs specific support for one of the distros
provisioner "shell" {
execute_command = "sudo -S sh -c '{{ .Vars }} {{ .Path }}'"
only = ["qemu.x86_64"]
script = "distros/${var.distro}/${var.version}/qemu.sh"
}
provisioner "shell" {
execute_command = "sudo -S sh -c '{{ .Vars }} {{ .Path }}'"
only = ["virtualbox-iso.x86_64"]
script = "distros/${var.distro}/${var.version}/virtualbox.sh"
}
provisioner "shell" {
execute_command = "sudo -S sh -c '{{ .Vars }} {{ .Path }}'"
only = ["vmware-iso.x86_64"]
script = "distros/${var.distro}/${var.version}/vmware.sh"
}
# Generic wrapping up the provisioner before packaging
provisioner "shell" {
execute_command = "sudo -S sh -c '{{ .Vars }} {{ .Path }}'"
scripts = [
"scripts/vagrant.sh",
"distros/${var.distro}/${var.version}/finalize.sh",
"scripts/minimize.sh"
]
}
+5 -1
View File
@@ -28,7 +28,11 @@ source "qemu" "x86_64" {
qemuargs = [
#["-chardev", "stdio,id=char0,logfile=serial-output-qemu-${var.arch}-${var.distro}-${var.version},signal=off"],
#["-serial", "chardev:char0"]
#["-serial", "chardev:char0"],
["-chardev", "socket,host=localhost,port=9876,server=on,wait=off,id=qga0"],
["-device", "virtio-serial"],
["-device", "virtserialport,chardev=qga0,name=org.qemu.guest_agent.0"],
["-qmp", "tcp:localhost:4444,server,wait=off"],
]
accelerator = var.qemu_accelerator
+1 -1
View File
@@ -59,7 +59,7 @@ def main():
sed -e f's#@@BOX@@#file:///home/greg/src/vms/vms/{box}#' -e f's/@@BOX_NAME@@/{p.name}/' Vagrantfile.in > Vagrantfile
vagrant box add @(box) --name @(p.name)
if str(p.parent.name) in ["virtualbox", "libvirt", "vmware"]:
vagrant up --provider vmware_fusion
vagrant up --provider @(p.parent.name)
else:
print(f"Now whatcha wanna go and do that for? {box}")
continue
+2
View File
@@ -6,6 +6,8 @@ Vagrant.configure('2') do |c|
v.connect_via_ssh = false
#v.username = 'root'
v.memory = 2048
# QEmu Guest Agent channel
v.qemu_use_agent = true
end
c.vm.provider :virtualbox do |v|
v.gui = false