Compare commits

...

4 Commits

Author SHA1 Message Date
Paolo Asperti 294295fd41
version bump
continuous-integration/drone/push Build is passing Details
2020-03-07 20:58:01 +01:00
Paolo Asperti 773c4c8dd4
updated readme 2020-03-07 20:53:59 +01:00
Paolo Asperti debd737d85
added some required packages 2020-03-07 20:51:26 +01:00
Paolo Asperti 20f51f3aba
fix re-adoption 2020-03-07 20:51:07 +01:00
4 changed files with 73 additions and 14 deletions

View File

@ -5,37 +5,80 @@ This software uses Ansible Playbooks to configure all connected clients.
## Available Events
Adopt a machine (which should already exist in the *hosts* db):
# signal-event client-adopt pc-99 username password
```bash
# signal-event client-adopt pc-99 username password
```
Reboot a machine:
# signal-event client-reboot pc-01
```bash
# signal-event client-reboot pc-01
```
Reboot all machines:
# signal-event client-reboot-all
```bash
# signal-event client-reboot-all
```
Force reconfiguration of a machine:
# signal-event client-reconfigure pc-02
```bash
# signal-event client-reconfigure pc-02
```
Force reconfiguration of all machines:
# signal-event client-reconfigure-all
```bash
# signal-event client-reconfigure-all
```
Shutdown a machine:
# signal-event client-shutdown pc-02
```bash
# signal-event client-shutdown pc-02
```
Shutdown all machines:
# signal-event client-shutdown-all
```bash
# signal-event client-shutdown-all
```
Update source configuration timestamp:
# signal-event client-update-lastconfig
```bash
# signal-event client-update-lastconfig
```
Wakeup a machine:
# signal-event client-wake pc-02
```bash
# signal-event client-wake pc-02
```
Wakeup all machines:
# signal-event client-wake-all
```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.
# db hosts set epoptes_lab1 group members 'pc-01 pc-02 pc-03' master pc-01
# signal-event client-wake epoptes_lab1
```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

View File

@ -1,6 +1,6 @@
Summary: LibreSchool Client Manager
Name: libreschool-client-manager
Version: 1.0.1
Version: 1.0.2
Release: 1.ns7
License: GPL
BuildArch: noarch
@ -97,5 +97,15 @@ if [ "$1" = 0 ]; then
fi
%changelog
* Sat Mar 7 2020 Paolo Asperti <paolo@asoerti.com> - 1.0.2-1.ns7
- fix re-adoption
- added some required packages
- updated readme
* Sun Mar 1 2020 Paolo Asperti <paolo@asoerti.com> - 1.0.1-1.ns7
- added client shell
- fixed amgmt user creation
- fix creation of httpd config
* Sun Apr 28 2019 Paolo Asperti <paolo@asperti.com> - 1.0-1.ns7
- First release for NethServer 7

View File

@ -19,3 +19,8 @@
apt:
name: libreschool-client
update_cache: yes
- name: Installing common required packages
apt:
name: [ 'debconf', 'debconf-utils' ]
state: latest

View File

@ -35,6 +35,7 @@ if [[ "$AMIROOT" = "" ]]; then
fi
PUB=$(db configuration getprop client-manager ManagementKeyFile)
ssh-keygen -R "${HOST}"
cat $PUB | \
sshpass -p "${PASS}" ssh -t -o StrictHostKeyChecking=no "${USER}@${HOST}" "echo '${PASS}' | sudo -S mkdir /root/.ssh >/dev/null ; sudo tee -a /root/.ssh/authorized_keys"