From: Hartmut Goebel <h.goebel@crazy-compilers.com>
To: 65131@debbugs.gnu.org
Subject: [bug#65131] [PATCH 00/32] Add vagrant, some vagrant plugins and required ruby modules
Date: Mon, 7 Aug 2023 20:24:03 +0200 [thread overview]
Message-ID: <cover.1691432343.git.h.goebel@crazy-compilers.com> (raw)
This series add Vagrant, a utility for managing the lifecycle of virtual
machines, and some (non-) trivial plugins for it, as well as the required
packages.
This series contains some plugins (esp. vagrant-libvirt) to test whether
vagrant's plugins-mechanism actually works in Guix. (And indeed, quite some
adjustments had to be made to vagrant make this work.)
Using this setup I was able to
- install plugins (per-user=global and per-project=local)
- show list of system plugins
- search for boxes (vargant cloud search)
- download a box (done by vagrant up)
- list downloaded boxes (vagrant box list)
- start a virtual machine using libvirt (vagrant up)
- added an unidirectional synced folders using rsync
- added a bidirectional synced folders using 9p virtfs
- copy data into the machine using "vagrant scp"
- reload, stop and destroy the box
Not working for me:
- synced folders using virtiofs: 'requires shared memory — this might be
caused by my local setup or missing stuff in Vagrantfile
Here is the code I used for testing:
...8<----
./pre-inst-env guix shell \
-C openssh coreutils rsync \
--network --share=/tmp --expose=/var/run/libvirt \
vagrant vagrant-vai vagrant-cachier vagrant-reload vagrant-libvirt nss-certs
the in the shell:
export SSL_CERT_DIR=$GUIX_ENVIRONMENT/etc/ssl/certs
export VAGRANT_DEFAULT_PROVIDER=libvirt
mkdir -p /tmp/vagrant-test/xxx/
cd /tmp/vagrant-test/
HOME=$PWD
cd xxx
cat > Vagrantfile <<EOF
Vagrant.configure("2") do |config|
config.vm.box = "generic/alpine317" # reasonable small
config.vm.synced_folder "a", "/vagrant/rsynced", type: "rsync"
#config.vm.synced_folder "b", "/vagrant/9p", type: "9p"
#config.vm.synced_folder "c", "/vagrant/virtio", type: "virtio"
# for testing vagrant-vai
config.vm.provision :vai do |ansible|
ansible.inventory_dir = 'ansible/inventory'
end
end
EOF
rm -rf {a,b,c}
mkdir {a,b,c}
# test plugin management
vagrant plugin list
vagrant plugin install vagrant-scp
vagrant plugin install --local vagrant-timezone
vagrant plugin list --local
plugin uninstall vagrant-timezone --local
vagrant plugin list --local
# test download of box and starting machine
touch a/file-from-A.txt
vagrant up
# test plugin vagrant-scp
vagrant scp Vagrantfile default:xxx.txt
vagrant ssh -c 'ls'
# test file-sync - you need to enable different options in the Vagrantfile
# to test them an. then run 'vagrant reload'
touch a/file-from-A.txt
vagrant reload # to trigger rsync
touch b/file-from-B.txt c/file-from-C.txt
vagrant ssh -c 'touch /vagrant/9p/file-from-9p.txt'
vagrant ssh -c 'touch /vagrant/rsynced/file-from-rsynced.txt'
vagrant ssh -c 'touch /vagrant/virtio/file-from-virtio.txt'
vagrant ssh -c 'ls -F /vagrant/*/'
ls {a,b,c}
vagrant destroy -f
...8<----
Hartmut Goebel (32):
gnu: Add ruby-excon.
gnu: Add ruby-ipaddr.
gnu: Add ruby-net-ftp.
gnu: Add ruby-fake-ftp.
gnu: Add ruby-net-sftp.
gnu: Add ruby-net-telnet.
gnu: Add ruby-pairing-heap.
gnu: Add ruby-stringio.
gnu: Add ruby-stream.
gnu: Add ruby-rgl.
gnu: Add ruby-sfl.
gnu: Add ruby-specinfra.
gnu: Add ruby-serverspec.
gnu: Add ruby-time.
gnu: Add ruby-google-protobuf.
gnu: Add ruby-googleapis-common-protos-types.
gnu: Add ruby-grpc.
gnu: Add ruby-vagrant-cloud.
gnu: Add ruby-vagrant-spec.
gnu: Add ruby-vagrant-spec-helper-basic.
gnu: Add ruby-hashicorp-checkpoint.
gnu: ruby-childprocess: Update to 4.1.0.
gnu: Add vagrant.
gnu: Add vagrant-vai.
gnu: Add vagrant-cachier.
gnu: Add vagrant-reload.
gnu: Add ruby-libvirt.
gnu: Add ruby-fog-core.
gnu: Add ruby-fog-json.
gnu: Add ruby-fog-xml.
gnu: Add ruby-fog-libvirt.
gnu: Add vagrant-libvirt.
gnu/local.mk | 3 +
...ant-Support-system-installed-plugins.patch | 172 +++++
.../vagrant-Use-a-private-temporary-dir.patch | 119 ++++
...rant-silence-warning-about-installer.patch | 24 +
gnu/packages/ruby.scm | 621 +++++++++++++++++-
gnu/packages/virtualization.scm | 363 ++++++++++
6 files changed, 1296 insertions(+), 6 deletions(-)
create mode 100644 gnu/packages/patches/vagrant-Support-system-installed-plugins.patch
create mode 100644 gnu/packages/patches/vagrant-Use-a-private-temporary-dir.patch
create mode 100644 gnu/packages/patches/vagrant-bin-vagrant-silence-warning-about-installer.patch
base-commit: 39fbc041f92489ec30075a85937c8a38723752dc
--
2.30.9
next reply other threads:[~2023-08-07 18:34 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-07 18:24 Hartmut Goebel [this message]
2023-08-07 18:26 ` [bug#65131] [PATCH 01/32] gnu: Add ruby-excon Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 02/32] gnu: Add ruby-ipaddr Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 03/32] gnu: Add ruby-net-ftp Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 04/32] gnu: Add ruby-fake-ftp Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 05/32] gnu: Add ruby-net-sftp Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 06/32] gnu: Add ruby-net-telnet Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 07/32] gnu: Add ruby-pairing-heap Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 08/32] gnu: Add ruby-stringio Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 09/32] gnu: Add ruby-stream Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 10/32] gnu: Add ruby-rgl Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 11/32] gnu: Add ruby-sfl Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 12/32] gnu: Add ruby-specinfra Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 13/32] gnu: Add ruby-serverspec Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 14/32] gnu: Add ruby-time Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 15/32] gnu: Add ruby-google-protobuf Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 16/32] gnu: Add ruby-googleapis-common-protos-types Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 17/32] gnu: Add ruby-grpc Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 18/32] gnu: Add ruby-vagrant-cloud Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 19/32] gnu: Add ruby-vagrant-spec Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 20/32] gnu: Add ruby-vagrant-spec-helper-basic Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 21/32] gnu: Add ruby-hashicorp-checkpoint Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 22/32] gnu: ruby-childprocess: Update to 4.1.0 Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 23/32] gnu: Add vagrant Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 24/32] gnu: Add vagrant-vai Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 25/32] gnu: Add vagrant-cachier Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 26/32] gnu: Add vagrant-reload Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 27/32] gnu: Add ruby-libvirt Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 28/32] gnu: Add ruby-fog-core Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 29/32] gnu: Add ruby-fog-json Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 30/32] gnu: Add ruby-fog-xml Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 31/32] gnu: Add ruby-fog-libvirt Hartmut Goebel
2023-08-07 18:26 ` [bug#65131] [PATCH 32/32] gnu: Add vagrant-libvirt Hartmut Goebel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1691432343.git.h.goebel@crazy-compilers.com \
--to=h.goebel@crazy-compilers.com \
--cc=65131@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).