GeekCookbook

From The Maceys in California
Revision as of 23:58, 24 January 2026 by Lynn Macey (talk | contribs) (Created page with "==GeekCookbook Premix== This is David Young's project. It is the first that I have found that starts with the infrastructure and build out to the actual applications. This is important for consistency. There is the generally available version that is a collection of recipes. The Premix version is kept more up to date and has deployment tools as part of the package. Like many technical projects by technicians, it doesn't really start at the beginning. This is not merely...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

GeekCookbook Premix

This is David Young's project. It is the first that I have found that starts with the infrastructure and build out to the actual applications. This is important for consistency. There is the generally available version that is a collection of recipes. The Premix version is kept more up to date and has deployment tools as part of the package.

Like many technical projects by technicians, it doesn't really start at the beginning. This is not merely techie vs novice. There is some tension between the truly technical who don't need the basics and the non-technical that really need to be led along, there is also the case where a techy just has not encountered the tool, or environment. It is a little like starting a TV show 10 minutes in. Those familiar can figure it out but, it can be frustrating getting off of the ground. Somewhere he says that it is a five minute exercise... It may be true if you have a suitably prepped platform to work from.

The project assumes some prerequisites:

This is all well and good but, most of us don't have Ansible or Terraform just laying around in our daily driver. The Terraform Proxmox provider actually has to be built.

Terraform

Terraform is a provisioning tool.

Installing Terraform

Click on the Download link on the upper right of the home page It will take you to installation instructions. Since I am running on Ubuntu, I picked the Ubuntu/Debian option under the Linux header. After installation, I followed the link to view the tutorials. Under getting started, I picked docker and basically found what I needed. I did have to do a:

root@chico:~# snap install terraform --classic

in order to get the tool into my path. If you are good to go, this:

root@chico:~# terraform --help 

should return a long list of commands and options.

Terraform proxmox provider

This is Terraform provider for the Proxmox platform that exposes Terraform resources in order to provision QEMU VMs and LCX containers. There is also a second tool, to build custom Ubunto ISOs to build the VMs from. It can be found here: terraform-ubuntu-proxmox-iso.

It is easiest to get the ISOs built first. It will download the versions that you want to work with, make some tweaks to it and then create a new ISO that you can use to build VMs from in ProxMox.

Note that rsync version 3.2.3 distributed with a number of Ubuntu versions will throw errors attempting to change permissions on symbolic links. This will cause the script to fail and no iso will be created. Version 3.2.4 can be downloaded from rsync.sambo.org. It will install in /usr/local/bin and with it, the script works as expected.

Clone the iso tool and make the following changes in bold:

config.sh

#

# The nickname of this ISO, VirtualBox image, and Vagrant box.
: ${NICKNAME:="terraform"}

# Arguments given to the download router.
: ${VERSION:="18.04.6"}
: ${DISTRO:="live-server"}
: ${RELEASE:="latest"}

# Architecture being built (i386 or amd64).
: ${ARCH:="amd64"}

# Hardcoded host information.
: ${HOST:="tfnode"}
: ${DOMAIN:="terraform.io"}
: ${ROOT_PASSWORD:=`openssl rand -base64 24`}
: ${USERNAME:="terraform"}
: ${PASSWORD:=`openssl rand -base64 24`}

Ansible

This is an open source tool but the cookbook link takes you to the Red Hat Enterprise solution. This is not useful to move forward with getting started with the GeekCookbook. For most people, the starting point is the Installation Guide in the link above.

Install Ansible

To be honest, I am not starting at the very beginning either. Since I plan to be using prebuilt playbooks, I will install the tool and move on.

Ansible has a comprehensive installation guide here: Installing Ansible. I skipped down to "Installing Ansible on Ubuntu", pick your flavor and go. When completed, you can test your work with:

root@chico:/# ansible --version
ansible [core 2.12.6]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3/dist-packages/ansible
  ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/bin/ansible
  python version = 3.9.7 (default, Sep 10 2021, 14:59:43) [GCC 11.2.0]
  jinja version = 2.11.3
  libyaml = True
root@chico:/#