n25/pages/run-slide.md

98 lines
2.2 KiB
Markdown
Raw Normal View History

---
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
....
-->