92 lines
1.7 KiB
Markdown
92 lines
1.7 KiB
Markdown
# Ansible
|
|
|
|
## Setup
|
|
|
|
Rename `inventory/inventory.example.yml` to `inventory/inventory.yml` and adjust the host IPs and usernames as needed.
|
|
|
|
To install and use Ansible on Windows, follow the [WSL Setup Instructions](#wsl-setup-instructions) below.
|
|
|
|
## Usage
|
|
|
|
run a playbook:
|
|
|
|
```bash
|
|
ansible-playbook playbooks/<playbook_name>.yml
|
|
```
|
|
|
|
run a playbook with sudo:
|
|
|
|
```bash
|
|
ansible-playbook playbooks/<playbook_name>.yml --ask-become-pass
|
|
```
|
|
|
|
## WSL Setup Instructions
|
|
|
|
To use Ansible on Windows, you need to set up Windows Subsystem for Linux (WSL).
|
|
You then have the option to open a local Folder in VSCode and open a WSL terminal that points to the same folder under WSL.
|
|
|
|
To enable proper file permissions for Ansible on WSL, you need to configure the WSL automount settings.
|
|
|
|
```bash
|
|
sudo nano /etc/wsl.conf
|
|
```
|
|
|
|
Add the following lines:
|
|
|
|
```ini
|
|
[automount]
|
|
enabled = true
|
|
options = "metadata,umask=022,fmask=0111"
|
|
```
|
|
|
|
restart WSL:
|
|
|
|
```bash
|
|
wsl --shutdown
|
|
```
|
|
|
|
If you use a Network Drive, you have to mount it manually:
|
|
|
|
```bash
|
|
sudo mkdir /mnt/<drive_letter>
|
|
sudo mount -t drvfs <drive_letter>: /mnt/<drive_letter> -o metadata,umask=022,fmask=0111
|
|
```
|
|
|
|
To mount it automatically on WSL start, add the following lines to `/etc/fstab`:
|
|
|
|
```fstab
|
|
<drive_letter>: /mnt/<drive_letter> drvfs metadata,umask=022,fmask=0111 0 0
|
|
```
|
|
|
|
Reload fstab:
|
|
|
|
```bash
|
|
sudo mount -a
|
|
```
|
|
|
|
Remove others write permissions:
|
|
|
|
```bash
|
|
chmod -R o-w .
|
|
```
|
|
|
|
----
|
|
|
|
Install Ansible on WSL:
|
|
|
|
```bash
|
|
sudo apt update
|
|
sudo apt install python3-pip pipx
|
|
sudo pipx install ansible
|
|
sudo apt install ssh-askpass
|
|
```
|
|
|
|
Add SSH Keys from Windows to WSL:
|
|
|
|
```bash
|
|
cp -r /mnt/c/Users/<username>/.ssh ~/.ssh
|
|
chmod 700 ~/.ssh
|
|
chmod 600 ~/.ssh/id_rsa
|
|
chmod 644 ~/.ssh/id_rsa.pub
|
|
```
|