- Project: Vagrantboxes
- Use it:
vagrant init terrywang/archlinux && vagrant up
This is a minimal base box built for Vagrant. Initially created using VirtualBox 4.2.2 (now 7.0.18) on Linux x86_64, guest additions installed. Packaged using Vagrant 2.4.0 (initially 1.3.4).
This Arch Linux x86_64 base box was built using the archlinux-2013.02.01-dual.iso. Arch Linux is a rolling release so just run pacman -Syu to stay cutting edge. If shit happens and breaks the system, it's time to level up troubleshooting skills ;-)
NOTE: In November 2012, Arch Linux switched to
systemdas its default init system. In January 2013initsriptswas removed from its official repositories. The base box is up-to-date as of 8 January, 2024 (UTC+11).
- Release: Installed using
archlinux-2013.02.01-dual.iso - Kernel:
6.9 - VirtualBox Guest Additions
7.0.18installed using packages:virtualbox-guest-utils - Default boot target =>
multi-user.target - System timezone set to
UTCviasystemd'stimedatectl set-timezone UTC yay- Yet Another Yogurt replacesyaourtas new AUR helper- Users and passwords
root/vagrantvagrant/vagrant(Public Key authentication, password-less sudo)
- File Systems Layout
- Virtual Hard Disk Capacity 20GB, Dynamically allocated
/dev/sda1=>/ext420GB/dev/sda2=>/homeext42.3GB- reserved blocks percentage:
/=> 0%,/home=> 0% - In case more storage space is needed, refer to issue #23 to resize the virtual hard disk and then resize partition and grow the filesystem.
Alternatively, create a new virtual hard disk usingVBoxManage createmedium, attach it usingVBoxManage storageattach. Then create a physical volume using the new HDD, add it to existing volume group, either grow existing logical volumes or create new ones, as you wish.
- Networking
- Networking mode - NAT
- Port forwarding configured for NAT =>
VBoxManage modifyvm "archlinux" --natpf1 "guestssh,tcp,,2222,,22" - Default hostname =>
arch.band.it - NIC name changed from Predictable Network Interface name
enp0s3to traditionaleth0using udev rule =>/etc/udev/rules.d/66-persistent-net.rules. Alternatively,net.ifnames=0can be passed as kernel command line parameter at boot for those who prefer traditional names.
- Kernel parameters at runtime
- Due to the deprecation of
/etc/sysctl.conf,/etc/sysctl.d/99-sysctl.confhas been added to make kernel parameters persistent across reboots.
- Due to the deprecation of
- Additional packages installed (including AUR)
TL;DRdecoupled the list of modern utils (and productivity tools) to a separately managed-->modern_utilswiki page ;-)bash-completion,zsh,fish+Oh My Fishfzf,,fppautojump,direnvhtop,,dstatdool,glances,inxi,bottom,,bashtop,bpytopbtopvmtouchiotop,ioping,smem,lsof,fatrace,ftop,schedtoolcoreutils,moreutils,inetutils,bind-tools- modern utils:
procs,fd(findalternative written in Rust),eza(lsreplacement written in Rust),bottom,bandwhich,topgrade(on top of upgrade), see/root/modern_utils.mdfor more details pv(monitor the progress of data through a pipe)progress(coreutils progress viewer)up(Ultimate Plumber for pipes),peco(simplistic interactive filtering tool)sharutils,makeselfsshfs,nfs-utils,ddrescue,dd_rescue,gptfdisk,parted,ncdu,duf,entrack,ag(silver-searcher),rg(ripgrep),locate(plocate),cloc,tokeicolordiff,multitail,gawk,stow,fdupesjq,gronxsv(CSV CLI toolkit written in Rust)vimwithvim-plug(minimalist Vim plugin manager) andEditorConfignnn(snappy file manager for ninjas, type less, do more, way faster)ranger,vifm(vim-like file managers),fff(simple file manager writtent in bash)tmux(with~/.tmux.conf),reptyr(reparent a running program to a new terminal),detachsl,figlet,cowsay,ponysay,octocatsay, andfortune-modfor funethtool,iftop,nethogs,iperf3,corkscrew,sslh,netcat,socat,nmap,ngrep,dropwatch,connect,trickle,ipcalc,bwm-ng,whois,bmon,dhcping,fping,hpingkdigprovided byknotfor advanced DNS lookup, specifically for DNS over TLS (DoT)conntrack-tools,iptstate,nftablestcpdump,scapydmidecode,lshw,hwinfostrace,ltrace,gdb,binwalkaudit,lynis,ssh-auditsrm,wipeduc- a collection of tools for inspecting and visualising disk usagediskonaut- Terminal disk space navigator in Rustncdu(Ncursesdu),duf(a betterdfin Go)wireguard-toolssysstat,collectlsyszan fzf terminal UI for systemctlsymlinks(symbolic link maintenance utility)aspas drop-in replacement forabsas per Deprecation of ABS tool and rsync endpointpkgctlreplacesaspas per Git migration completedpkgfilea ALPM (pacman) .files metadata explorer
systemd(now255) services (unit files), journal size and core dump collection behaviorsshd.service(enabled)dhcpcd.service(enabled)vboxservice.service(enabled)haveged.service(enabled)- NOTE:
systemd216+ made changes to core dump again, collection behavior can now be tuned in/etc/systemd/coredump.conf. Core dumps are stored in/var/lib/systemd/coredumpby settingStorage=external. - NOTE:
systemdjournal size has been limited to 100MB by settingSystemMaxUse=100Min/etc/systemd/journald.conf. By default it is set to 10% of the size of the respective file system.
ca-certificates- Common CA Certificates- CNNIC and WoSign certificates (6 in total) have been blacklisted for security reasons, see
/etc/ca-certificates/trust-source/blacklist/. - See
man 8 update-ca-trustfor more information. Use of/etc/ca-certificates.confhas been deprecated. - Use
update-ca-trustandtrustto apply changes.
- CNNIC and WoSign certificates (6 in total) have been blacklisted for security reasons, see
- Misc
- Security hardened OpenSSH SSH client configuration can be found in
~terry/.ssh/config. See -> Secure Enhannced OpenSSH client configuration for information. sysstatwithSADC_OPTIONS="-S XALL"set in/etc/conf.d/syssat.pacman5.2 switched compression algorithm fromxztozstdfor faster compression and decompression, while maintaining a compression ratio comparable withxz. Default package file extension is.pkg.tar.zst.Pac-Manstylepacmanby addingILoveCandyin/etc/pacman.conf.- Since
systemd243systemd-resolvedhas been configured for DNS Privacy using DNS over TLS (DoT). However, the service is NOT enabled by default due tosystemd-resolved's limitedresolvconfinterface. To enable,systemd-resolvconfneeds to replaceopenresolv.
- Security hardened OpenSSH SSH client configuration can be found in
NOT like the Oracle Linux base boxes, Ruby, Chef and Puppet are NOT pre-installed so as to make the box as slim as possible. With the rise of Ansible, its agent-less model is preferred in most cases, end of story. rbenv + ruby-build, pyenv, nvm, goenv and rustup are recommended to manage respective toolchain.
Download the base box and get the box started
$ mkdir test_environment
$ cd test_environment
$ vagrant init terrywang/archlinux
$ vagrant up
$ vagrant sshNOTE: A sample Vagrantfile can be found here =>
Vagrantfile.