mirror of
https://github.com/jbowdre/vagrant-saltlab.git
synced 2024-11-26 23:22:17 +00:00
update readme with usage information
This commit is contained in:
parent
406329e351
commit
7f08d04dc0
1 changed files with 76 additions and 1 deletions
77
README.md
77
README.md
|
@ -1,3 +1,78 @@
|
||||||
# vagrant-saltlab
|
# vagrant-saltlab
|
||||||
|
|
||||||
Using Vagrant to run a portable [Salt](https://saltproject.io/) lab environment [on my Chromebook](https://www.virtuallypotato.com/create-vms-chromebook-hashicorp-vagrant/). The included Vagrantfile spawns a environment with a single Salt Master and four Salt Minions running on a few different common Linux distributions for testing and development.
|
Using Vagrant to run a portable [Salt](https://saltproject.io/) lab environment [on my Chromebook](https://www.virtuallypotato.com/create-vms-chromebook-hashicorp-vagrant/). The included Vagrantfile spawns a environment with a single Salt Master (named `salt`) and four Salt Minions (named `minion##`) running a few different common Linux distributions for learning, testing, and development. It leverages the `libvirt` provider to interact with native Linux virtualization, and has a few tweaks to work around limitations imposed by running this all within ChromeOS's LXC-based [Linux development environment](https://support.google.com/chromebook/answer/9145439).
|
||||||
|
|
||||||
|
To make it easier to deploy, test, break, tear down, and redeploy the environment:
|
||||||
|
1. The Salt master blindly auto-accepts all minion keys.
|
||||||
|
2. The minions register the `roles:saltlab` grain to aid in targeting.
|
||||||
|
3. The contents of `srv/` get `rsync`ed to `/srv/` when the master starts up. *Note that this is a one-way `rsync` from host to VM (and not the other way around), so make sure to write your Salt content on the host and use `vagrant rsync` to push changes into the VM.*
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Provision the virtual environment:
|
||||||
|
```shell
|
||||||
|
vagrant up
|
||||||
|
```
|
||||||
|
|
||||||
|
The master and four minions will be deployed; this will take a few minutes. Once complete, you can verify status with `vagrant status`:
|
||||||
|
```shell
|
||||||
|
; vagrant status
|
||||||
|
Current machine states:
|
||||||
|
|
||||||
|
salt running (libvirt)
|
||||||
|
minion01 running (libvirt)
|
||||||
|
minion02 running (libvirt)
|
||||||
|
minion03 running (libvirt)
|
||||||
|
minion04 running (libvirt)
|
||||||
|
|
||||||
|
This environment represents multiple VMs. The VMs are all listed
|
||||||
|
above with their current state. For more information about a specific
|
||||||
|
VM, run `vagrant status NAME`.
|
||||||
|
```
|
||||||
|
|
||||||
|
Access an SSH shell on the master with `vagrant ssh salt`:
|
||||||
|
```shell
|
||||||
|
; vagrant ssh salt
|
||||||
|
Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.4.0-139-generic x86_64)
|
||||||
|
|
||||||
|
* Documentation: https://help.ubuntu.com
|
||||||
|
* Management: https://landscape.canonical.com
|
||||||
|
* Support: https://ubuntu.com/advantage
|
||||||
|
vagrant@salt:~$
|
||||||
|
```
|
||||||
|
|
||||||
|
Verify that all the minion keys have been automatically accepted by the master (this is a lab environment, after all):
|
||||||
|
```shell
|
||||||
|
vagrant@salt:~$ sudo salt-key -L
|
||||||
|
Accepted Keys:
|
||||||
|
minion01
|
||||||
|
minion02
|
||||||
|
minion03
|
||||||
|
minion04
|
||||||
|
salt
|
||||||
|
Denied Keys:
|
||||||
|
Unaccepted Keys:
|
||||||
|
Rejected Keys:
|
||||||
|
```
|
||||||
|
|
||||||
|
Make sure all the minions are responding correctly:
|
||||||
|
```shell
|
||||||
|
vagrant@salt:~$ sudo salt '*' test.ping
|
||||||
|
salt:
|
||||||
|
True
|
||||||
|
minion03:
|
||||||
|
True
|
||||||
|
minion02:
|
||||||
|
True
|
||||||
|
minion01:
|
||||||
|
True
|
||||||
|
minion04:
|
||||||
|
True
|
||||||
|
```
|
||||||
|
|
||||||
|
And finally, as a treat, apply a [Salt state to install vim and my vimrc](srv/salt/edit/vim.sls) on the minions with the `roles:saltlab` grain:
|
||||||
|
```shell
|
||||||
|
sudo salt -G 'roles:saltlab` state.apply edit.vim
|
||||||
|
```
|
||||||
|
|
||||||
|
Happy Salting!
|
||||||
|
|
Loading…
Reference in a new issue