using unix sockets

This commit is contained in:
Devaev Maxim 2019-05-09 20:52:15 +03:00
parent a972e35f7a
commit def5346b4b
9 changed files with 43 additions and 34 deletions

2
.gitignore vendored
View File

@ -7,6 +7,8 @@
/testenv/.tox/
/testenv/.mypy_cache/
/testenv/.coverage
/testenv/run/*.sock
/testenv/run/*.pid
/v*.tar.gz
/*.pkg.tar.xz
/*.egg-info

View File

@ -50,6 +50,7 @@ tox: testenv
run: testenv
sudo modprobe loop
- docker run --rm --name kvmd \
--volume `pwd`/testenv/run:/run:rw \
--volume `pwd`/testenv:/testenv:ro \
--volume `pwd`/kvmd:/kvmd:ro \
--volume `pwd`/web:/usr/share/kvmd/web:ro \
@ -58,8 +59,6 @@ run: testenv
--device $(TESTENV_LOOP):/dev/kvmd-msd \
--device $(TESTENV_VIDEO):$(TESTENV_VIDEO) \
--publish 8080:80/tcp \
--publish 8081:8081/tcp \
--publish 8082:8082/tcp \
-it $(TESTENV_IMAGE) /bin/bash -c " \
(socat PTY,link=$(TESTENV_HID) PTY,link=/dev/ttyS11 &) \
&& cp -r /usr/share/kvmd/configs.default/nginx/* /etc/kvmd/nginx \
@ -76,7 +75,8 @@ run: testenv
run-ipmi: testenv
- docker run --rm --name kvmd-ipmi --link kvmd:kvmd \
- docker run --rm --name kvmd-ipmi \
--volume `pwd`/testenv/run:/run:rw \
--volume `pwd`/testenv:/testenv:ro \
--volume `pwd`/kvmd:/kvmd:ro \
--volume `pwd`/configs:/usr/share/kvmd/configs.default:ro \
@ -117,8 +117,8 @@ push:
clean:
rm -rf build site dist pkg src v*.tar.gz *.pkg.tar.xz *.egg-info kvmd-*.tar.gz
find kvmd tests -name __pycache__ | xargs rm -rf
rm -rf testenv/run/*.{pid,sock} build site dist pkg src v*.tar.gz *.pkg.tar.xz *.egg-info kvmd-*.tar.gz
find kvmd testenv/tests -name __pycache__ | xargs rm -rf
make -C hid clean
@ -126,3 +126,6 @@ clean-all: testenv clean
- docker run --rm \
--volume `pwd`:/src \
-it $(TESTENV_IMAGE) bash -c "cd src && rm -rf testenv/{.tox,.mypy_cache,.coverage}"
.PHONY: testenv

View File

@ -5,8 +5,9 @@ logging: !include logging.yaml
kvmd:
server:
host: 127.0.0.1
port: 8081
unix: /run/kvmd.sock
unix_rm: true
unix_mode: 0660
auth: !include auth.yaml
@ -26,8 +27,7 @@ kvmd:
device: /dev/kvmd-msd
streamer:
host: 127.0.0.1
port: 8082
unix: /run/ustreamer.sock
cmd:
- "/usr/bin/ustreamer"
- "--device=/dev/kvmd-video"
@ -38,11 +38,11 @@ kvmd:
- "--workers=3"
- "--quality={quality}"
- "--desired-fps={desired_fps}"
- "--host={host}"
- "--port={port}"
- "--drop-same-frames=30"
- "--unix={unix}"
- "--unix-rm"
- "--unix-mode=0660"
ipmi:
kvmd:
host: 127.0.0.1
port: 8081
unix: /run/kvmd.sock

View File

@ -5,8 +5,9 @@ logging: !include logging.yaml
kvmd:
server:
host: 127.0.0.1
port: 8081
unix: /run/kvmd.sock
unix_rm: true
unix_mode: 0660
auth: !include auth.yaml
@ -29,8 +30,7 @@ kvmd:
cap_pin: 17
conv_pin: 18
init_restart_after: 1
host: 127.0.0.1
port: 8082
unix: /run/ustreamer.sock
cmd:
- "/usr/bin/ustreamer"
- "--device=/dev/kvmd-video"
@ -43,10 +43,10 @@ kvmd:
- "--height=576"
- "--fake-width=800"
- "--fake-height=600"
- "--host={host}"
- "--port={port}"
- "--unix={unix}"
- "--unix-rm"
- "--unix-mode=0660"
ipmi:
kvmd:
listen: 127.0.0.1
port: 8081
unix: /run/kvmd.sock

View File

@ -1,4 +1,4 @@
user http;
user kvmd-nginx;
worker_processes 4;
# error_log /tmp/kvmd-nginx.error.log;
@ -35,11 +35,11 @@ http {
uwsgi_temp_path /tmp/kvmd-nginx.uwsgi_temp;
upstream kvmd {
server 127.0.0.1:8081 fail_timeout=0s max_fails=0;
server unix:/run/kvmd.sock fail_timeout=0s max_fails=0;
}
upstream ustreamer {
server 127.0.0.1:8082 fail_timeout=0s max_fails=0;
server unix:/run/ustreamer.sock fail_timeout=0s max_fails=0;
}
include /usr/share/kvmd/extras/*/nginx.ctx-http.conf;

View File

@ -6,14 +6,16 @@ post_install() {
}
post_upgrade() {
echo "==> Configuring KVMD user and groups ..."
echo "==> Configuring KVMD users and groups ..."
id kvmd &>/dev/null || useradd -r -c "The main Pi-KVM daemon" -s /sbin/nologin kvmd
for group in gpio uucp systemd-journal; do
(groupmems -l -g "$group" | grep kvmd >/dev/null) || groupmems -g "$group" -a kvmd
done
id kvmd-nginx &>/dev/null || useradd -r -c "Pi-KVM Nginx Server" -s /sbin/nologin kvmd-nginx
(groupmems -l -g kvmd | grep kvmd-nginx >/dev/null) || groupmems -g kvmd -a kvmd-nginx
chown root:kvmd \
/usr/share/kvmd/configs.default/kvmd/*passwd \
/etc/kvmd/*passwd

View File

@ -27,6 +27,7 @@ RUN pkg-install \
python-systemd \
python-dbus \
python-mako \
libevent-patched \
nginx-mainline \
ustreamer \
socat \
@ -36,6 +37,7 @@ RUN pkg-install \
COPY testenv/requirements.txt requirements.txt
RUN pip install -r requirements.txt
RUN useradd -r -c "Pi-KVM Nginx Server" -s /sbin/nologin kvmd-nginx
RUN mkdir -p /etc/kvmd/nginx
CMD /bin/bash

View File

@ -1,7 +1,8 @@
kvmd:
server:
host: 0.0.0.0
port: 8081
unix: /run/kvmd.sock
unix_rm: true
unix_mode: 0666
auth: !include auth.yaml
@ -25,8 +26,7 @@ kvmd:
cap_pin: 17
conv_pin: 18
init_restart_after: 1
host: 127.0.0.1
port: 8082
unix: /run/ustreamer.sock
cmd:
- "/usr/bin/ustreamer"
- "--device=/dev/kvmd-video"
@ -34,12 +34,12 @@ kvmd:
- "--desired-fps={desired_fps}"
- "--width=800"
- "--height=600"
- "--host=0.0.0.0"
- "--port={port}"
- "--unix={unix}"
- "--unix-rm"
- "--unix-mode=0666"
ipmi:
kvmd:
host: kvmd
port: 8081
unix: /run/kvmd.sock
logging: !include logging.yaml

0
testenv/run/.gitignore vendored Normal file
View File