-
This commit is contained in:
parent
c738064672
commit
e0c7058cb1
73
README.md
Normal file
73
README.md
Normal file
@ -0,0 +1,73 @@
|
||||
|
||||
# Projekt systemów zdalnych
|
||||
|
||||
Projekt uruchamiania zdalnych systemów.
|
||||
|
||||
|
||||
## Instalacja wymaganych składników
|
||||
|
||||
Aby zainstalować wymagane składniki wydaj komendę:
|
||||
|
||||
```bash
|
||||
sudo apt install python3-venv python3-pip
|
||||
```
|
||||
|
||||
A następnie:
|
||||
|
||||
```bash
|
||||
python3 -m venv venv
|
||||
source venv/bin/activate
|
||||
```
|
||||
|
||||
I zainstaluj wymagane paczki pip
|
||||
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
|
||||
|
||||
## Konfiguracja
|
||||
|
||||
Konfiguracja znajduje się w pliku config.py
|
||||
|
||||
|
||||
|
||||
## Uruchomienie
|
||||
|
||||
Aby uruchomić serwer deweloperski:
|
||||
|
||||
```bash
|
||||
flask run --host=0.0.0.0
|
||||
```
|
||||
|
||||
|
||||
## Dodanie nowego użytkownika
|
||||
|
||||
Aby dodać użytkownika do bazy w pliku app.py w funkcji
|
||||
```python
|
||||
login_api
|
||||
```
|
||||
należy odkomentować linijkę:
|
||||
|
||||
```python
|
||||
# db.add_user(username, password)
|
||||
```
|
||||
|
||||
A następnie przejść na stronę logowania wpisac żądaną nazwę użytkownika i hasło a następnie wyłączyć serwer zakomentować tą linijkę i uruchomic serwer ponownie.
|
||||
## Aktualizacja i instalacja kolejnych pakietów do rootfs
|
||||
|
||||
Aby zainstalować nowe pakiety należy uruchomic skrypt
|
||||
```bash
|
||||
update_rootfs.sh
|
||||
```
|
||||
|
||||
W celu instalacji dodatkowych pakietów można wydać polecenie:
|
||||
```bash
|
||||
sudo ./update_rootfs.sh -n <obraz wyjściowy> -s <obraz żródłowy> -i "<pakiety do instalacji>"
|
||||
```
|
||||
|
||||
Natomiast w celu aktualizacji pakietów w obrazie :
|
||||
```bash
|
||||
sudo ./update_rootfs.sh -n <obraz wyjściowy> -s <obraz żródłowy> -u
|
||||
```
|
2
app.py
2
app.py
@ -93,7 +93,7 @@ def create_conf_post():
|
||||
os.mkdir(os.path.join(os.getcwd(), 'configs', folder))
|
||||
authorized_keys_config = request.form['authorized_keys_config']
|
||||
authorized_keys_file = open(folder+"/authorized_keys", "w")
|
||||
authorized_keys_file.write(authorized_keys_config + "\n" + open(os.path.join(os.getcwd(), 'keys', "sshkey.pub"),'r').read())
|
||||
authorized_keys_file.write(authorized_keys_config + "\n")
|
||||
authorized_keys_file.close()
|
||||
except:
|
||||
shutil.copy('./configs/authorized_keys',
|
||||
|
@ -5,5 +5,4 @@ Jinja2==3.1.2
|
||||
MarkupSafe==2.1.2
|
||||
psycopg2-binary==2.9.6
|
||||
Werkzeug==2.2.3
|
||||
webssh
|
||||
PyCryptodome
|
||||
webssh
|
17
utils.py
17
utils.py
@ -41,20 +41,8 @@ def ping_client(ip):
|
||||
|
||||
|
||||
def ssh_thread_function():
|
||||
try:
|
||||
os.mkdir(os.path.join(os.getcwd(), 'keys'))
|
||||
except:
|
||||
pass
|
||||
if os.path.exists(os.path.join(os.getcwd(), 'keys', "sshkey")) is False:
|
||||
key = RSA.generate(3072)
|
||||
with open(os.path.join(os.getcwd(), 'keys', "sshkey"), 'wb') as content_file:
|
||||
chmod(os.path.join(os.getcwd(), 'keys', "sshkey"), 0o600)
|
||||
content_file.write(key.exportKey('OpenSSH'))
|
||||
pubkey = key.publickey()
|
||||
with open(os.path.join(os.getcwd(), 'keys', "sshkey.pub"), 'wb') as content_file:
|
||||
content_file.write(pubkey.exportKey('OpenSSH'))
|
||||
subprocess.run(['wssh', '--fbidhttp=False', '--port='+config.webssh_port,
|
||||
'--hostfile='+os.path.join(os.getcwd(), 'keys', "sshkey")])
|
||||
subprocess.run(['wssh', '--fbidhttp=False', '--port='+config.webssh_port])
|
||||
|
||||
|
||||
|
||||
def check_allocation_thread_function():
|
||||
@ -83,7 +71,6 @@ class PingThread(threading.Thread):
|
||||
if date is None:
|
||||
return
|
||||
delta = datetime.datetime.utcnow() - date
|
||||
print(delta)
|
||||
if delta.total_seconds() > DELETE_TIMEOUT:
|
||||
db.del_image_allocation_id(self.Id)
|
||||
print("deleted:", self.Id)
|
||||
|
Loading…
Reference in New Issue
Block a user