Files
Vagrant/README.md

143 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# README.md
## Prerequisity
# Add the official HashiCorp tap for the latest Vagrant
brew tap hashicorp/tap
# Install Vagrant (latest version from HashiCorp tap)
brew install hashicorp/tap/hashicorp-vagrant
# Install the Vagrant VMware Utility (required for VMware provider integration)
brew install --cask vagrant-vmware-utility
# Install the Vagrant VMware Desktop plugin
vagrant plugin install vagrant-vmware-desktop
# (Optional) Install Vagrant from Homebrew cask if you prefer the cask version
# brew install --cask vagrant
# Check Vagrant version to verify installation
vagrant --version
# List installed Vagrant plugins to verify plugin installation
vagrant plugin list
## Project Structure
```
/
├── Vagrantfile
├── vytvor_uzivatele.yml
└── hosts
```
- **Vagrantfile** Defines the virtual machine.
- **vytvor_uzivatele.yml** Ansible playbook for creating a user.
- **hosts** Ansible inventory (used for manual runs).
---
## 1. Starting the VM with Vagrant
### First Boot or VM Creation
```
vagrant up
```
- This command downloads the required box (e.g., `bento/ubuntu-22.04`), creates, and starts the VM as defined in your Vagrantfile.
- If you have configured Ansible as a provisioner in the Vagrantfile, the playbook will run automatically after the VM is created.
### Re-running Provisioning
If you want to re-run provisioning (for example, after editing the playbook):
```
vagrant provision
```
---
## 2. Running Ansible Manually
If you prefer more control, you can run Ansible manually.
### Step 1: Start the VM
```
vagrant up
```
### Step 2: Get SSH Connection Details
```
vagrant ssh-config kube01
```
- Copy the relevant values into the `hosts` inventory file if they are not already set.
### Step 3: Run the Ansible Playbook
```
ansible-playbook -i hosts vytvor_uzivatele.yml
```
- This command will execute the tasks defined in the playbook on your VM.
---
## 3. Example Files
### Vagrantfile (with Ansible provisioner)
```
Vagrant.configure("2") do |config|
config.vm.define "kube01" do |kube01|
kube01.vm.box = "bento/ubuntu-22.04"
kube01.vm.hostname = "kube01"
kube01.vm.provider "vmware_fusion" do |v|
v.gui = false
v.memory = 2048
v.cpus = 2
end
kube01.vm.provision "ansible" do |ansible|
ansible.playbook = "vytvor_uzivatele.yml"
ansible.verbose = true
end
end
end
```
### vytvor_uzivatele.yml
```
---
- hosts: all
become: yes
tasks:
- name: Add user "novyuzivatel"
user:
name: novyuzivatel
shell: /bin/bash
create_home: yes
```
### hosts (inventory for manual run)
```
[kube]
kube01 ansible_host=127.0.0.1 ansible_port=2222 ansible_user=vagrant ansible_ssh_private_key_file=.vagrant/machines/kube01/vmware_fusion/private_key
```
---
## Summary
- **Automatic:** Run `vagrant up` (or `vagrant provision`) and everything will be handled automatically.
- **Manual:** First run `vagrant up`, then run `ansible-playbook -i hosts vytvor_uzivatele.yml`.
This setup allows you to easily manage your VM and automate tasks using both Vagrant and Ansible.
```