# libreschool-client-manager This software uses Ansible Playbooks to configure all connected clients. ## Available Events Adopt a machine (which should already exist in the *hosts* db): ```bash # signal-event client-adopt pc-99 username password ``` Reboot a machine: ```bash # signal-event client-reboot pc-01 ``` Reboot all machines: ```bash # signal-event client-reboot-all ``` Force reconfiguration of a machine: ```bash # signal-event client-reconfigure pc-02 ``` Force reconfiguration of all machines: ```bash # signal-event client-reconfigure-all ``` Shutdown a machine: ```bash # signal-event client-shutdown pc-02 ``` Shutdown all machines: ```bash # signal-event client-shutdown-all ``` Update source configuration timestamp: ```bash # signal-event client-update-lastconfig ``` Wakeup a machine: ```bash # signal-event client-wake pc-02 ``` Wakeup all machines: ```bash # signal-event client-wake-all ``` ### Support for a group of machines If you defined a group of machines, you can send signals to groups also. ```bash # db hosts set epoptes_lab1 group members 'pc-01 pc-02 pc-03' master pc-01 # signal-event client-wake epoptes_lab1 ``` ## E-smith DB reference The general configuration is stored in the *client-manager* key. Properties of such key are: * *lastConfig*: timestamp of the actual configuration set * *ManagementKeyFile*: management user's SSH public key * *ManagementPrivateKeyFile*: management user's SSH private key All host-specific information are stored in the *hosts* db. For each host we have: * *sshUser*: ssh user used to connect to the host. This is set when SSH adoption is successful