Git Product home page Git Product logo

warewulf-vagrant's Introduction

Warewulf v4 Provisioning in VirtualBox with Vagrant

Introduction

Vagrant project to provision a Warewulf v4 cluster running CentOS 8.

  • mgr - warewulf headnode
  • cn0 - warewulf compute node 0
  • cn1 - warewulf compute node 1

Prerequisites

You need working VirtualBox and Vagrant installations to use this repository.

All capabilities were developed and tested with:

  • macOS 21.0.1
  • Oracle VirtualBox 6.1.30 r148432 (without VirtualBox 6.1.30 Oracle VM VirtualBox Extension Pack), and
  • Vagrant 2.2.19

Quick Start

If you don't want to (re)configure anything and just want to bring up the manager node and some compute nodes then:

Provision everything in one go...

./bootstrap.sh
vagrant up

In testing, the entire 3 node cluster was fully provisioned and running in under 9 minutes with manager node install and configuration taking the bulk (8 minutes) of that time. Compute nodes boot diskless in under a minute.

Tips

Important

  • VirtualBox 6.1.28 introduced a change that breaks this deployement without modification to the host configuration that will not be corrected by bootstrap.sh. Follow the instructions in the Host-Only Networking section of the VirtualBox user guide for instructions for configuration of /etc/vbox/networks.conf.

warewulf-vagrant's People

Contributors

tcooper avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

warewulf-vagrant's Issues

Filesystem in the Virtualbox for the manager not large enough

Upon 'vagrant up' I get the following error:

    mgr: (11/19): libselinux-devel-2.9-5.el8.x86_64.rpm  4.4 MB/s | 199 kB     00:00
    mgr: (12/19): libsepol-devel-2.9-3.el8.x86_64.rpm    2.1 MB/s |  86 kB     00:00
    mgr: (13/19): libverto-devel-0.3.0-5.el8.x86_64.rpm  457 kB/s |  17 kB     00:00
    mgr: (14/19): golang-src-1.17.7-1.module+el8.6.0+824 6.0 MB/s | 9.0 MB     00:01
    mgr: (15/19): openssl-devel-1.1.1k-6.el8_5.x86_64.rp 6.6 MB/s | 2.3 MB     00:00
    mgr: (16/19): pcre2-devel-10.32-2.el8.x86_64.rpm     7.0 MB/s | 604 kB     00:00
    mgr: (17/19): pcre2-utf16-10.32-2.el8.x86_64.rpm     4.9 MB/s | 228 kB     00:00
    mgr: (18/19): pcre2-utf32-10.32-2.el8.x86_64.rpm     4.9 MB/s | 219 kB     00:00
    mgr: (19/19): golang-bin-1.17.7-1.module+el8.6.0+824  23 MB/s |  98 MB     00:04
    mgr: --------------------------------------------------------------------------------
    mgr: Total                                            23 MB/s | 115 MB     00:04
    mgr: Running transaction check
    mgr: Transaction check succeeded.
    mgr: Running transaction test
    mgr: The downloaded packages were saved in cache until the next successful transaction.
    mgr: You can remove cached packages by executing 'dnf clean packages'.
    mgr: Error: Transaction test error:
    mgr:   installing package golang-bin-1.17.7-1.module+el8.6.0+824+8e984c20.x86_64 needs 81MB on the / filesystem
    mgr:   installing package golang-1.17.7-1.module+el8.6.0+824+8e984c20.x86_64 needs 89MB on the / filesystem
    mgr:   installing package dhcp-server-12:4.3.6-47.el8.x86_64 needs 91MB on the / filesystem
    mgr:   installing package tftp-server-5.2-24.el8.x86_64 needs 91MB on the / filesystem
    mgr: 
    mgr: Error Summary
    mgr: -------------
    mgr: Disk Requirements:
    mgr:    At least 91MB more space needed on the / filesystem.
    mgr: 
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.

Provide container creation scripts for CentOS replacement

Is your feature request related to a problem? Please describe.
Examples exist for creating a container image for CentOS 8. CentOS 8 will no longer be supported at the end of 2021. What will be the solution then?

Describe the solution you'd like
Provide container creation example(s) for alternate EL derived operating systems such as Rocky Linux.

Describe alternatives you've considered
None.

Add support for alternate providers

Is your feature request related to a problem? Please describe.
The Vagrantfile currently only supports the virtualbox provider.

Describe the solution you'd like
Add support for additional provider(s).

Describe alternatives you've considered
None

Cannot use another container for compute nodes.

Hi,

likely not a bug in your repo, but I'm not sure how to debug this for the moment, so I share it here just in case. I want to try to create an alternative container for cn1, so in the mgr I do:

sudo dnf install singularity
sudo singularity build --sandbox rocky8-own docker://warewulf/rocky:8
sudo wwctl container import rocky8-own  rocky8-own
sudo wwctl node set --container rocky8-own cn1

Then, in the host I do:

vagrant halt cn1
vagrant up cn1

I don't see any obvious error messages, and VirtualBox boots up until it shows the message cn1 login, but I the host I get a time out message:

angelv@sieladon:.../Vagrant/warewulf-vagrant$ vagrant up cn1
Bringing machine 'cn1' up with 'virtualbox' provider...
==> cn1: Checking if box 'onyxpoint/empty' version '1.0.0' is up to date...
==> cn1: Clearing any previously set forwarded ports...
==> cn1: Fixed port collision for 22 => 2222. Now on port 2201.
==> cn1: Clearing any previously set network interfaces...
==> cn1: Preparing network interfaces based on configuration...
    cn1: Adapter 1: nat
    cn1: Adapter 2: hostonly
==> cn1: Forwarding ports...
    cn1: 22 (guest) => 2201 (host) (adapter 1)
==> cn1: Running 'pre-boot' VM customizations...
==> cn1: Booting VM...
==> cn1: Waiting for machine to boot. This may take a few minutes...
    cn1: SSH address: 127.0.0.1:2201
    cn1: SSH username: vagrant
    cn1: SSH auth method: private key
Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.

If you look above, you should be able to see the error(s) that
Vagrant had when attempting to connect to the machine. These errors
are usually good hints as to what may be wrong.

If you're using a custom box, make sure that networking is properly
working and you're able to connect to the machine. It is a common
problem that networking isn't setup properly in these boxes.
Verify that authentication configurations are also setup properly,
as well.

If the box appears to be booting properly, you may want to increase
the timeout ("config.vm.boot_timeout") value.
angelv@sieladon:.../Vagrant/warewulf-vagrant$ 

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.