mirror of
https://github.com/luigieai/homelab.git
synced 2025-06-06 07:36:37 -03:00
48 lines
No EOL
2.4 KiB
Markdown
48 lines
No EOL
2.4 KiB
Markdown
# Ansible
|
|
Ansible roles for managing my proxmox servers, as I use personally for my homelab, if you want to use by yourself some changes will be needed, I'll try to write to make the process easier but maybe I will leave some gaps.
|
|
|
|
## For new servers
|
|
Please, configure a user with ssh access, I prefeer using ssh keys but you can use password aswell, just configure the variabel in ./inventory folder. In this case we're using 'luigi' for username, because it's my default user in my homelab.
|
|
|
|
Example with asking password:
|
|
```shell
|
|
ansible proxmox -i ./inventory/proxmox.yml -m ping --ask-pass --ask-become-pass
|
|
```
|
|
|
|
I created the *newserver* role for when a empty linux is running, I run ubuntu 22.04 so I consideer only this distro supported for now. This role has following tags
|
|
- sshkey
|
|
- nosudopwd
|
|
- updatesystem
|
|
|
|
**WARNING THIS ROLE CAN REBOOT YOUR SERVER**
|
|
|
|
### SSH *(ssh.yml)*
|
|
This task searches the *id_rsa.pub* file inside the machine that is running the playbook, and add the public key to the remote servers defined in inventory, uses *ansible_user* as variable, maybe you want to change to another variable.
|
|
|
|
### Update system packages *(update.yml)*
|
|
Update cache and repo for apt repositories in the system, reboot the server if is needed.
|
|
|
|
### Disable sudo password *(nosudopwd.yml)*
|
|
**NOT RECOMMENDED FOR CORPORATE OR INTERNET EXPOSED SERVERS**
|
|
Disable sudo password prompt when using the command, as my servers are not exposed I disable this for automations purposes
|
|
|
|
## Docker Server
|
|
This role has the purpose to setup my docker server infrastructure, I've choosen to switch from k8s to portainer & gitops for orchrestration. So we're using [Portainer Community Edition](https://docs.portainer.io/start/install-ce)
|
|
### Prequisites
|
|
For using this role, please install beforehand [ansible-docker-role from geergling guy](https://github.com/geerlingguy/ansible-role-docker), and [pip role](https://github.com/geerlingguy/ansible-role-pip) so we can manage docker containers with ansible:
|
|
|
|
```shell
|
|
ansible-galaxy install geerlingguy.pip
|
|
ansible-galaxy install geerlingguy.docker
|
|
```
|
|
|
|
### Portainer
|
|
The role will install Docker + Portainer, we recommend using the role in **root** user as recommended in [portainer documentation](https://docs.portainer.io/start/install-ce/server/docker/linux#introduction).
|
|
After running the playbook, access your portainer instance using *yourhostname.tld:9443*
|
|
|
|
### NOMAD
|
|
TODO!
|
|
Dependencies:
|
|
```shell
|
|
ansible-galaxy install robertdebock.vault
|
|
``` |