Merge pull request #16 from labriqueinternet/jessie

Debian jessie support
This commit is contained in:
Julien Vaubourg
2015-06-19 11:07:15 +02:00
6 changed files with 84 additions and 83 deletions

View File

@@ -24,10 +24,5 @@ This YunoHost app is a part of the "[La Brique Internet](http://labriqueinter.ne
## Prerequisites ## Prerequisites
This app works with a non-stable version of YunoHost. * Debian Jessie
* YunoHost >= 2.2.0
Until this version is available (coming soon!) as an official stable release, you need to execute some commands before installing this app:
# service bind9 stop
# update-rc.d bind9 remove
# apt-get install dnsmasq

View File

@@ -1,15 +1,4 @@
#!/bin/bash #!/bin/bash
### BEGIN INIT INFO
# Provides: ynh-vpnclient
# Required-Start: $network $remote_fs $syslog yunohost-api
# Required-Stop: $network $remote_fs $syslog
# Should-Start: ynh-hotspot
# Should-Stop: ynh-hotspot
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start VPN client.
# Description: Start VPN client.
### END INIT INFO
# VPN Client app for YunoHost # VPN Client app for YunoHost
# Copyright (C) 2015 Julien Vaubourg <julien@vaubourg.com> # Copyright (C) 2015 Julien Vaubourg <julien@vaubourg.com>
@@ -44,12 +33,17 @@ has_hotspot_app() {
} }
is_hotspot_knowme() { is_hotspot_knowme() {
gotcha=0
while [ "${gotcha}" -eq 0 ]; do
value=$(yunohost app setting hotspot vpnclient) value=$(yunohost app setting hotspot vpnclient)
if [[ "${value}" =~ "An instance is already running" ]]; then if [[ "${value}" =~ "An instance is already running" ]]; then
echo "${value}" >&2 sleep $(($((RANDOM%5)) + 1))
exit 1 else
gotcha=1
fi fi
done
[ "${value}" == yes ] [ "${value}" == yes ]
} }
@@ -69,7 +63,7 @@ is_serverip6route_set() {
} }
is_openvpn_running() { is_openvpn_running() {
service openvpn status client &> /dev/null systemctl is-active openvpn@client.service &> /dev/null
} }
is_running() { is_running() {
@@ -128,7 +122,7 @@ start_openvpn() {
sed 's|^<TPL:LOGIN_COMMENT>||' -i /etc/openvpn/client.conf sed 's|^<TPL:LOGIN_COMMENT>||' -i /etc/openvpn/client.conf
fi fi
service openvpn start client systemctl start openvpn@client.service
} }
## Unsetters ## Unsetters
@@ -146,20 +140,24 @@ unset_serverip6route() {
} }
stop_openvpn() { stop_openvpn() {
service openvpn stop systemctl stop openvpn.service
} }
## Tools ## Tools
moulinette_get() { moulinette_get() {
var=${1} var=${1}
gotcha=0
while [ "${gotcha}" -eq 0 ]; do
value=$(yunohost app setting vpnclient "${var}") value=$(yunohost app setting vpnclient "${var}")
if [[ "${value}" =~ "An instance is already running" ]]; then if [[ "${value}" =~ "An instance is already running" ]]; then
echo "${value}" >&2 sleep $(($((RANDOM%5)) + 1))
exit 1 else
gotcha=1
fi fi
done
echo "${value}" echo "${value}"
} }
@@ -181,7 +179,7 @@ if [ "$1" != restart ]; then
# Restart php5-fpm at the first start (it needs to be restarted after the slapd start) # Restart php5-fpm at the first start (it needs to be restarted after the slapd start)
if [ ! -e /tmp/.ynh-vpnclient-boot ]; then if [ ! -e /tmp/.ynh-vpnclient-boot ]; then
touch /tmp/.ynh-vpnclient-boot touch /tmp/.ynh-vpnclient-boot
service php5-fpm restart systemctl restart php5-fpm
fi fi
# Check configuration consistency # Check configuration consistency
@@ -286,13 +284,9 @@ case "${1}" in
moulinette_set ip6_gw "${new_ip6_gw}" moulinette_set ip6_gw "${new_ip6_gw}"
moulinette_set wired_device "${new_wired_device}" moulinette_set wired_device "${new_wired_device}"
# Restart dhcpd # Fix configuration
service bind9 stop &> /dev/null
service dnsmasq restart
# Restart hotspot if needed
if has_hotspot_app && ! is_hotspot_knowme; then if has_hotspot_app && ! is_hotspot_knowme; then
service ynh-hotspot start ynh-hotspot start
fi fi
fi fi
;; ;;
@@ -321,11 +315,10 @@ case "${1}" in
done done
fi fi
# Fix configuration
if has_hotspot_app && is_hotspot_knowme; then if has_hotspot_app && is_hotspot_knowme; then
service ynh-hotspot start ynh-hotspot start
fi fi
service dnsmasq restart
;; ;;
restart) restart)
$0 stop $0 stop

View File

@@ -0,0 +1,15 @@
[Unit]
Description=YunoHost VPN Client.
Requires=network.target
After=network.target
Wants=ynh-hotspot.service
Before=ynh-hotspot.service
[Service]
Type=oneshot
ExecStart=/usr/local/bin/ynh-vpnclient start
ExecStop=/usr/local/bin/ynh-vpnclient stop
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

View File

@@ -162,32 +162,31 @@ sudo sed 's|<TPL:NGINX_REALPATH>|/var/www/vpnadmin/|g' -i /etc/php5/fpm/pool.d/v
sudo sed "s|<TPL:NGINX_LOCATION>|${url_path}|g" -i /var/www/vpnadmin/config.php sudo sed "s|<TPL:NGINX_LOCATION>|${url_path}|g" -i /var/www/vpnadmin/config.php
# Copy init script # Copy init script
sudo install -o root -g root -m 0755 ../conf/init_ynh-vpnclient /etc/init.d/ynh-vpnclient sudo install -o root -g root -m 0755 ../conf/ynh-vpnclient /usr/local/bin/
sudo install -o root -g root -m 0644 ../conf/ynh-vpnclient.service /etc/systemd/system/
# Set default inits # Set default inits
# The openvpn configuration is modified before the start, so the service is disabled by default # The boot order of these services are important, so they are disabled by default
# and the ynh-vpnclient service handles it. # and the ynh-vpnclient service handles them.
sudo yunohost service add openvpn sudo systemctl disable openvpn
sudo yunohost service stop openvpn sudo systemctl stop openvpn
sudo yunohost service disable openvpn
sudo yunohost service add php5-fpm sudo systemctl enable php5-fpm
sudo yunohost service enable php5-fpm sudo systemctl restart php5-fpm
sudo yunohost service add ynh-vpnclient sudo systemctl reload nginx
sudo yunohost service enable ynh-vpnclient
sudo service ynh-vpnclient start
sudo service nginx reload sudo systemctl enable ynh-vpnclient
sudo systemctl start ynh-vpnclient
# Update SSO for vpnadmin # Update SSO for vpnadmin
sudo yunohost app ssowatconf sudo yunohost app ssowatconf
# Restart hotspot service if installed (and started) to change NAT configuration (now on tun0) # Restart hotspot service if installed (and started) to change NAT configuration (now on tun0)
# A new start will fix the interface without unsetting all stuff # A new start will fix the interface without unsetting all stuff
if [ -e /tmp/.ynh-hotspot-started ]; then #if [ -e /tmp/.ynh-hotspot-started ]; then
sudo service ynh-hotspot start # sudo ynh-hotspot start
fi #fi
# Check configuration consistency # Check configuration consistency

View File

@@ -21,9 +21,9 @@
domain=$(sudo yunohost app setting vpnclient domain) domain=$(sudo yunohost app setting vpnclient domain)
# The End # The End
sudo service ynh-vpnclient stop sudo systemctl stop ynh-vpnclient
sudo yunohost service remove ynh-vpnclient sudo systemctl disable ynh-vpnclient
sudo rm -f /etc/init.d/ynh-vpnclient sudo rm -f /etc/systemd/system/ynh-vpnclient.service /usr/local/bin/ynh-vpnclient
sudo rm -f /tmp/.ynh-vpnclient-* sudo rm -f /tmp/.ynh-vpnclient-*
# Remove confs # Remove confs
@@ -35,9 +35,8 @@ sudo rm -f /etc/php5/fpm/pool.d/vpnadmin.conf
sudo rm -rf /etc/openvpn/keys/ sudo rm -rf /etc/openvpn/keys/
# Restart services # Restart services
sudo yunohost service stop php5-fpm sudo systemctl restart php5-fpm
sudo yunohost service start php5-fpm sudo systemctl reload nginx
sudo service nginx reload
# Remove sources # Remove sources
sudo rm -rf /var/www/vpnadmin/ sudo rm -rf /var/www/vpnadmin/

View File

@@ -27,17 +27,17 @@ function moulinette_set($var, $value) {
} }
function stop_service() { function stop_service() {
exec('sudo service ynh-vpnclient stop'); exec('sudo systemctl stop ynh-vpnclient');
} }
function start_service() { function start_service() {
exec('sudo service ynh-vpnclient start', $output, $retcode); exec('sudo systemctl start ynh-vpnclient', $output, $retcode);
return $retcode; return $retcode;
} }
function service_status() { function service_status() {
exec('sudo service ynh-vpnclient status', $output); exec('sudo ynh-vpnclient status', $output);
return $output; return $output;
} }