Skip to content

Commit

Permalink
Simplify things for vagrant-libvirt
Browse files Browse the repository at this point in the history
Since I now daily drive linux, there's no need for me to use VirtualBox
anymore, instead I'm just using vagrant-libvirt, so cleaning up things
for that.
  • Loading branch information
Molter73 committed Aug 22, 2024
1 parent 86ff1be commit c0640bd
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 83 deletions.
44 changes: 6 additions & 38 deletions Vagrantfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,57 +3,25 @@ home_path = ENV['HOME']

def synced_folder(config, src, dst)
config.vm.synced_folder src, dst,
type: 'nfs',
nfs_export: false,
nfs_udp: false
type: 'virtiofs'
end

Vagrant.configure("2") do |c|
c.vm.define 'fedora', primary: true do |fedora|
fedora.vm.box = 'fedora/38-cloud-base'
fedora.vm.box = 'fedora/40-cloud-base'
fedora.vm.hostname = 'fedora'

synced_folder(fedora, "#{go_path}/src/", "#{go_path}/src/")
synced_folder(fedora, "#{home_path}/artifacts/", "/artifacts/")

fedora.vm.network 'private_network', ip: '192.168.56.10'

# VBox specific configuration
fedora.vm.provider 'virtualbox' do |vbox|
vbox.gui = false
vbox.name = 'fedora'
vbox.cpus = 6
vbox.memory = 16384
vbox.customize ['modifyvm', :id, '--groups', '/devenv']
vbox.customize ['guestproperty', 'set', :id, '/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold', 1000]
fedora.vm.provider 'libvirt' do |libvirt|
libvirt.cpus = 18
libvirt.memory = 32768
libvirt.memorybacking :access, :mode => "shared"
end

fedora.vm.provision 'ansible' do |ansible|
ansible.playbook = 'provision/provision.yml'
end
end

c.vm.define 'ubuntu' do |ubuntu|
ubuntu.vm.box = 'ubuntu/jammy64'
ubuntu.vm.hostname = 'ubuntu'

synced_folder(ubuntu, "#{go_path}/src/" ,"#{go_path}/src/")
ubuntu.vm.synced_folder "#{home_path}/artifacts/", "/artifacts/"

ubuntu.vm.network 'private_network', ip: '192.168.56.11'

# VBox specific configuration
ubuntu.vm.provider 'virtualbox' do |vbox|
vbox.gui = false
vbox.name = 'ubuntu'
vbox.cpus = 6
vbox.memory = 16384
vbox.customize ['modifyvm', :id, '--groups', '/devenv']
vbox.customize ['guestproperty', 'set', :id, '/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold', 1000]
end

ubuntu.vm.provision 'ansible' do |ansible|
ansible.playbook = 'provision/provision.yml'
end
end
end
87 changes: 42 additions & 45 deletions provision/redhat.yml
Original file line number Diff line number Diff line change
@@ -1,28 +1,20 @@
- name: Setup kubernetes repo
copy:
dest: /etc/yum.repos.d/kubernetes.repo
content: |
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-$basearch
enabled=1
gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
- name: Install utilities
dnf:
name:
- gcc-c++
- clang
- ccache
- glibc-devel.i686
- libcap-devel
- bpftool
- git
- make
- jq
- cmake
- wget
- golang
- kernel-devel
- kubectl
- libbpf-devel
- socat
- podman
- podman-docker
- podman-remote
- elfutils-libelf-devel
- perl-IPC-Cmd
- NetworkManager-initscripts-ifcfg-rh
state: latest

Expand All @@ -31,37 +23,42 @@
name: "*"
state: latest

- name: Silence podman warning on docker emulation
file:
path: /etc/containers/nodocker
state: touch
mode: u=rw,g=r,o=r
- name: which ccache
ansible.builtin.command: which ccache
register: ccache_path

- name: Enable podman API
systemd:
name: podman.socket
enabled: true
state: started
- name: Create local bin directory
ansible.builtin.file:
path: /home/vagrant/.local/bin
state: directory
owner: vagrant
group: vagrant

- name: Add authorized key for root user
ansible.posix.authorized_key:
user: root
state: present
exclusive: true
key: "{{ lookup('file', lookup('env','HOME') + '/.ssh/fedora38.pub') }}"
- name: gcc-ccache symlink
ansible.builtin.file:
src: "{{ ccache_path.stdout }}"
dest: /home/vagrant/.local/bin/gcc
owner: vagrant
group: vagrant
state: link

- name: Enable Root Login
lineinfile:
dest: /etc/ssh/sshd_config
regexp: '^PermitRootLogin'
line: "PermitRootLogin yes"
state: present
backup: yes
- name: g++-ccache symlink
ansible.builtin.file:
src: "{{ ccache_path.stdout }}"
dest: /home/vagrant/.local/bin/g++
owner: vagrant
group: vagrant
state: link

- name: Add $HOME/.local/bin to $PATH
ansible.builtin.lineinfile:
path: /home/vagrant/.bash_profile
line: PATH="/home/vagrant/.local/bin:$PATH"

- name: Restart sshd
systemd:
name: sshd
state: restarted
- name: Don't use ccache by default
ansible.builtin.lineinfile:
path: /home/vagrant/.bash_profile
line: export CCACHE_DISABLE=true

- name: Use vi as editor
lineinfile:
Expand Down

0 comments on commit c0640bd

Please sign in to comment.