Giter Club home page Giter Club logo

homelab's Introduction

HomeLab

My Homelab. Building and maintaining my homelab with Ansible

Mainly a bunch of Raspberry PI's. But I expect to add some other stuff as well as soon as I get remote access to it.

Requirements

Some of the requirements are listed below. Not all requirements may apply to all roles.

  • Raspberry PI's are installed with Ubuntu or Rasbian. or Rasbian.
  • Hosts run SSH server.
  • Initial setup was completed.
  • User can login to remote units with SSH without password (pubkey).
  • User can sudo without password.

Notes

The NTP servers are intended to be reachable over the internet and hardened accordingly. The NTP role has a special feature as I have only 1 IPv4 address. Some server can't handle multiple clients through NAT. So the timelord variable allows you to specify which of the servers has the benefit of more NTP stratum 1 peers.

I added a playbook do-dist-upgrade.yml to do a distribution upgrade. Feel free to use it or adapt it as needed.

Examples

Distribution upgrade

Example run upgrading multiple Raspberry PI units from Ubunto 21.10 to 22.04


PLAY [raspberries] *********************************************************************************

TASK [Preflight version] ***************************************************************************
ok: [pi400]
ok: [pi31]
ok: [pi25]
ok: [pi26]

TASK [debug] ***************************************************************************************
ok: [pi25] => {
    "lsb_release.stdout": "Distributor ID:\tUbuntu\nDescription:\tUbuntu 21.10\nRelease:\t21.10\nCodename:\timpish"
}
ok: [pi26] => {
    "lsb_release.stdout": "Distributor ID:\tUbuntu\nDescription:\tUbuntu 21.10\nRelease:\t21.10\nCodename:\timpish"
}
ok: [pi31] => {
    "lsb_release.stdout": "Distributor ID:\tUbuntu\nDescription:\tUbuntu 21.10\nRelease:\t21.10\nCodename:\timpish"
}
ok: [pi400] => {
    "lsb_release.stdout": "Distributor ID:\tDebian\nDescription:\tDebian GNU/Linux 11 (bullseye)\nRelease:\t11\nCodename:\tbullseye"
}

TASK [APT update and upgrade] **********************************************************************
skipping: [pi400]
ok: [pi31]
ok: [pi25]
ok: [pi26]

TASK [Install update-manager-core if needed] *******************************************************
skipping: [pi400]
ok: [pi31]
ok: [pi25]
ok: [pi26]

TASK [Now run the releaese upgrade command] ********************************************************
skipping: [pi400]
changed: [pi31]
changed: [pi25]
changed: [pi26]

TASK [Reboot] **************************************************************************************
skipping: [pi400]
changed: [pi31]
changed: [pi25]
changed: [pi26]

TASK [Postflight version] **************************************************************************
skipping: [pi400]
changed: [pi31]
changed: [pi25]
changed: [pi26]

TASK [debug] ***************************************************************************************
ok: [pi25] => {
    "lsb_release.stdout": "Distributor ID:\tUbuntu\nDescription:\tUbuntu 22.04 LTS\nRelease:\t22.04\nCodename:\tjammy"
}
ok: [pi26] => {
    "lsb_release.stdout": "Distributor ID:\tUbuntu\nDescription:\tUbuntu 22.04 LTS\nRelease:\t22.04\nCodename:\tjammy"
}
ok: [pi31] => {
    "lsb_release.stdout": "Distributor ID:\tUbuntu\nDescription:\tUbuntu 22.04 LTS\nRelease:\t22.04\nCodename:\tjammy"
}
skipping: [pi400]

PLAY RECAP *****************************************************************************************
pi25                       : ok=8    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
pi26                       : ok=8    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
pi31                       : ok=8    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
pi400                      : ok=2    changed=0    unreachable=0    failed=0    skipped=6    rescued=0    ignored=0 

Disclaimer

This is an experimental repository created and maintained by Hugo van der Kooij [email protected]

Updates may occur whenever I feel like it. This may be influence by weather conditions.

homelab's People

Contributors

hvdkooij avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.