# Installation on existing client

A straightforward way to test the lmn-client is to manually run the playbook on a freshly installed client.

This can be done in the following ways:

    On the client using ansible-pull
    On the client by checking out the lmn-client repository and running the playbook locally
    On a target device by checking out the lmn-client repository locally and executing the playbook against the target device

## Direct call via ansible-pull

With two simple commands you can install the lmn-client with default configuration.

Steps:

* Install debian on client (via USB or PXE)
* Install additional packages: ansible  
  `sudo apt install ansible`
* Run Playbook  
  `sudo ansible-pull --verbose -i inventory-sample.yml -l localhost --url=https://codeberg.org/DigitalSouveraeneSchule/lmn-client.git -C main lmn-client.yml`

## Checkout git and run ansible locally

When checking out the repository you can customize the installation by editing the inventory before run the playbook.  
You can repeat the process as often as you like and gradually adapt your inventory settings to your needs.

Steps:

* Install debian on client (via USB or PXE)
* Install additional packages: ansible, git  
  `sudo apt install ansible git`
* Checkout Repository  
  `git clone https://codeberg.org/DigitalSouveraeneSchule/lmn-client.git`
* Change into repository directory  
  `cd lmn-client`
* Create inventory  
  `cp inventory-sample.yml inventory-myschool.yml`
* Edit inventory-myschool.yml  
  e.g.: `nano inventory-myschool.yml`
* Run Playbook  
  `ansible-playbook -i inventory-myschool.yml -l localhost lmn-client.yml`

## Run with other target device

If you want to run the play on an other target pc:

* You have to add the target IP or hostname in the inventory.
* SSH access on target must be configured (deploy ssh public-key on target host)

`ansible-playbook -i inventory-myschool.yml -l target lmn-client.yml`

## Upload changes to your own remote repository

If you are satisfied with your changes, you can upload the changes to your own remote repository.

* Create new git repository on your git service (e.g. https://codeberg.org)
* Add new remote origin  
  `git remote add myorigin git@codeberg.org:myname/mylmn-client.git`
* Push the repository to the new remote  
  `push -u myorigin main`
