98 lines
No EOL
2.2 KiB
Markdown
98 lines
No EOL
2.2 KiB
Markdown
---
|
|
level: 2
|
|
---
|
|
|
|
# Getting Started
|
|
|
|
... with Vagrant
|
|
|
|
|
|
````md magic-move {lines: true}
|
|
|
|
```bash
|
|
cd ~/projects
|
|
git clone https://codeberg.org/headshed/infctl-cli.git
|
|
```
|
|
|
|
```bash
|
|
cd infctl-cli/vagrant/dev/ubuntu
|
|
pwd
|
|
/home/user/projects/infctl-cli/vagrant/dev/ubuntu
|
|
```
|
|
|
|
```bash
|
|
vagrant up
|
|
Bringing machine 'vm1' up with 'virtualbox' provider...
|
|
Bringing machine 'vm2' up with 'virtualbox' provider...
|
|
Bringing machine 'vm3' up with 'virtualbox' provider...
|
|
Bringing machine 'workstation' up with 'virtualbox' provider...
|
|
==> vm1: Checking if box 'ubuntu/jammy64' version '20241002.0.0' is up to date...
|
|
==> vm1: Clearing any previously set network interfaces...
|
|
==> vm1: Available bridged network interfaces:
|
|
1) wlp0s20f3
|
|
2) docker0
|
|
3) br-9ebcfa7b8ec0
|
|
4) br-b036d14629a8
|
|
5) veth9ae7cf3
|
|
==> vm1: When choosing an interface, it is usually the one that is
|
|
==> vm1: being used to connect to the internet.
|
|
==> vm1:
|
|
vm1: Which interface should the network bridge to?
|
|
```
|
|
|
|
|
|
|
|
```bash
|
|
cd ../../..
|
|
export LOG_FORMAT=none
|
|
export VAGRANT_BRIDGE=wlp0s20f3
|
|
|
|
infctl -f pipelines/dev/vagrant-k3s.json
|
|
🔄 Running step: Create Vagrant nodes
|
|
🐞 Running command: ./scripts/install_vagrant_nodes.sh
|
|
|
|
```
|
|
|
|
|
|
|
|
````
|
|
<div v-click>
|
|
|
|
Lets see what this looks like for real in a [Demo](http://ascii.headshed.dev/a/ISIOKVA1AmckG2muwOMUOG4z5)
|
|
|
|
</div>
|
|
|
|
<div v-click>
|
|
|
|
Lets [try again](http://ascii.headshed.dev/a/bUzNNojNjkxytfDT6cRqhSVwN)
|
|
|
|
</div>
|
|
|
|
|
|
<!--
|
|
|
|
Let's see how to get started with vagrant
|
|
|
|
We use Vagrant to stand up a cluster of 3 nodes and a workstation locally
|
|
|
|
Vagrant by default uses Virtualbox which works across Windows, Linux and Mac
|
|
|
|
Git cloning the `infctl-cli` repository gets us the starter files
|
|
|
|
changing to the vagrant folder we can use `vagrant up` to see what would happen **without** `infctl`
|
|
|
|
we see the first gotcha in any automation process - where the tooling does not know what to do and asks the user for input
|
|
|
|
This in IaC is an epic fail and we need to copy the name of the interface we want to use for the external network in our test case and export it as an environment variable
|
|
|
|
export VAGRANT_BRIDGE=wlp0s20f3
|
|
|
|
sets to a device on the example system
|
|
|
|
which allows us now to run `infctl` with a deployment file
|
|
|
|
lets see what this looks like for real
|
|
|
|
....
|
|
|
|
--> |