This is a home lab environment based on the following technologies:
- Ansible
- Cloud-Init
The project's milestone page is where issues are tracked and organized.
The milestones are numbered from 1-5. The lower numbers are foundational layers, like physical setup. The higher numbers build on the lower ones, and include things like software deployment.
The idea is to focus on accomplishing foundational items before moving on to higher-level objectives.
Save the private keys in these two locations:
- TODO: reference the default location for WSL, and the default for PowerShell
Saving the encrypted private key in source control was considered as an option. However, having it in the ~/.ssh
directory makes ssh commands work more easily.
The public keys that reference these private keys are in inventory/group_vars/all/vars.yml
.
- Save a password file in
~/.ansible/vault_pw.txt
. - This will decrypt the
vault.yml
files.
The whole idea of Ansible is to codify the infrastructure, and avoid creating "snowflake" application servers. In our efforts to do that, we need to avoid creating a "snowflake" virtualization/Ansible server!
Our goal is is to make the host server configuratoin as simple as possible.
- Save the Ansible vault PW in this file:
~/.ansible/vault_pw.txt
.- This will be used to decrypt files using
ansible-vault
- Be sure to save this PW safely outside of source control
- This will be used to decrypt files using
- Run
ssh-keygen
to create the public/private keypair in~/.ssh/
Enable to run script files.
Copy the private key file to a place where the ssh
command in PowerShell will expect it.
# from WSL
cp ~/.ssh/id_rsa /mnt/c/Users/[username]/.ssh/
- Install Windows 10 Pro
- Install VS Code
- Install Ansible -- But NOT on Windows -- Requires WSL
- Install Python -- Works much better from MS Store478965
- Enable Hyper-V
- Hyper-V Networking Workaround
- Run ansible on specific location (within /mnt/c)
- microsoft/WSL#4288
- WSL Visual Studio Code Extension
- Do not install ansible via PIP (use package manager)
- Same for pip and literally everything.
https://github.com/geerlingguy/ansible-for-devops
https://www.ansiblefordevops.com/