Compare commits

...

9 Commits

Author SHA1 Message Date
martin.cholewa
207cb14e4c info reame 2026-01-23 10:25:13 +01:00
Martin Cholewa
8844cf3dd0 fix repo 2026-01-23 10:14:09 +01:00
Martin Cholewa
df7a69fc7b minimal box adding 2026-01-23 10:13:30 +01:00
Martin Cholewa
3ec68c88ce utm vagrant 2026-01-22 13:31:43 +01:00
martin.cholewa
7b51ce5e66 Remove user creation tasks from vytvor_uzivatele.yml; retain playbook imports for OS update and tool installation 2025-07-08 18:37:52 +02:00
martin.cholewa
1858e2c36f Remove private key file reference from ansible.cfg; update hosts file with absolute path for private key; add playbooks for installing tools and updating OS 2025-07-08 18:29:11 +02:00
martin.cholewa
43827881fb Add Ansible configuration and playbook for user creation; update Vagrantfile for playbook path 2025-07-08 18:14:26 +02:00
martin.cholewa
9629f634e1 Add ansible.cfg configuration file for Ansible defaults 2025-07-08 18:06:46 +02:00
martin.cholewa
c0cce1cb8e Update Vagrantfile and hosts for SSH port configuration 2025-07-08 18:04:37 +02:00
8 changed files with 23 additions and 172 deletions

7
.gitignore vendored
View File

@@ -1,9 +1,16 @@
# Ignore Vagrant working directory
.vagrant/
# Ignore large Vagrant box files and images
*.box
*.img
noble-server-cloudimg-arm64.img
ubuntu-*.box
# Optional: Ignore other common system files
*.log
*.swp
*.swo
.DS_Store
Thumbs.db

145
README.md
View File

@@ -1,146 +1,3 @@
# 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.
```
https://chosesoft.eu/index.php/2026/01/23/vagrant-utm-minimal-box/

17
Vagrantfile vendored
View File

@@ -1,17 +0,0 @@
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

2
hosts
View File

@@ -1,2 +0,0 @@
[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

View File

@@ -0,0 +1,9 @@
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu-arm64-local"
# UTM provider configuration
config.vm.provider "utm" do |utm|
utm.memory = 2048 # 2GB RAM
utm.cpus = 2 # 2 CPU cores
end
end

View File

@@ -0,0 +1,2 @@
Vagrant.configure("2") do |config|
end

View File

@@ -0,0 +1,4 @@
{
"provider": "utm",
"version": "1.0"
}

View File

@@ -1,9 +0,0 @@
---
- hosts: all
become: yes
tasks:
- name: Přidat uživatele "novyuzivatel"
user:
name: novyuzivatel
shell: /bin/bash
create_home: yes