Commit 9908ceed authored by nanahira's avatar nanahira

update restart things

parent 9b821997
...@@ -222,10 +222,8 @@ ...@@ -222,10 +222,8 @@
docker_compose: docker_compose:
project_src: '{{ansible_user_dir}}/nextgen-network/services' project_src: '{{ansible_user_dir}}/nextgen-network/services'
restarted: true restarted: true
services: services: '{{frpcRestarts}}'
- frpc-{{item.name}} when: frpcRestarts
with_items: '{{connections}}'
when: 'item.protocol == "wgfrp" and item.frpType == "frpc" and not noBird and not item.noUpdate'
- name: restart_ocserv - name: restart_ocserv
docker_compose: docker_compose:
project_src: '{{ansible_user_dir}}/nextgen-network/services' project_src: '{{ansible_user_dir}}/nextgen-network/services'
...@@ -237,10 +235,8 @@ ...@@ -237,10 +235,8 @@
docker_compose: docker_compose:
project_src: '{{ansible_user_dir}}/nextgen-network/services' project_src: '{{ansible_user_dir}}/nextgen-network/services'
restarted: true restarted: true
services: services: '{{ocRestarts}}'
- openconnect-{{item.name}} when: ocRestarts
with_items: '{{connections}}'
when: 'item.protocol == "oc" and item.ocType == "client" and not noBird and not item.noUpdate'
#- name: restart_bird_systemd #- name: restart_bird_systemd
# become: true # become: true
# systemd: # systemd:
......
...@@ -7,5 +7,5 @@ cd data ...@@ -7,5 +7,5 @@ cd data
( for sheet in $sheets ( for sheet in $sheets
do do
echo "https://docs.google.com/spreadsheets/d/${doc}/export?exportFormat=csv&gid=${sheet}" echo "https://docs.google.com/spreadsheets/d/${doc}/export?exportFormat=csv&gid=${sheet}"
done ) | wget --content-disposition -i - done ) | wget -4 --content-disposition -i -
cd .. cd ..
...@@ -238,6 +238,8 @@ class InventoryBuilder { ...@@ -238,6 +238,8 @@ class InventoryBuilder {
volumes: ['./babeld.conf:/etc/babeld.conf:ro'] volumes: ['./babeld.conf:/etc/babeld.conf:ro']
}; };
} }
host.frpcRestarts = [];
host.ocRestarts = [];
host.frpsNeeded = false; host.frpsNeeded = false;
const null_connection = '10000,null'; const null_connection = '10000,null';
const lanInterfaces = host.lanInterfaces; const lanInterfaces = host.lanInterfaces;
...@@ -292,6 +294,8 @@ class InventoryBuilder { ...@@ -292,6 +294,8 @@ class InventoryBuilder {
key: host.wgPrivateKey, key: host.wgPrivateKey,
frpsNeeded: host.frpsNeeded, frpsNeeded: host.frpsNeeded,
frpsPort: host.frpsPort, frpsPort: host.frpsPort,
ocRestarts: host.ocRestarts.length ? host.ocRestarts : false,
frpcRestarts: host.frpcRestarts.length ? host.frpcRestarts : false,
ocservNeeded: host.ocservNeeded || false, ocservNeeded: host.ocservNeeded || false,
ocservPort: host.ocservPort, ocservPort: host.ocservPort,
ocservCert: host.ocservCert || null, ocservCert: host.ocservCert || null,
...@@ -353,6 +357,8 @@ class InventoryBuilder { ...@@ -353,6 +357,8 @@ class InventoryBuilder {
const frpType = protocol === 'wgfrp' ? (this.gatewayCompare(localGateway, remoteGateway) ? 'frps' : 'frpc') : undefined; const frpType = protocol === 'wgfrp' ? (this.gatewayCompare(localGateway, remoteGateway) ? 'frps' : 'frpc') : undefined;
const ocType = protocol === 'oc' ? (this.gatewayCompareOcserv(local, remote, localGateway, remoteGateway) ? 'server' : 'client') : undefined; const ocType = protocol === 'oc' ? (this.gatewayCompareOcserv(local, remote, localGateway, remoteGateway) ? 'server' : 'client') : undefined;
const noUpdate = this.linksOnly && !(this.linksOnly.includes(remote.name) || this.linksOnly.includes(local.name)) || this.linksLimit && !(this.linksLimit.includes(remote.name) && this.linksLimit.includes(local.name));
if (frpType === 'frps' && !local.dockerServices.services.frps) { if (frpType === 'frps' && !local.dockerServices.services.frps) {
local.frpsNeeded = true; local.frpsNeeded = true;
local.dockerServices.services.frps = { local.dockerServices.services.frps = {
...@@ -365,13 +371,17 @@ class InventoryBuilder { ...@@ -365,13 +371,17 @@ class InventoryBuilder {
} }
if (frpType === 'frpc') { if (frpType === 'frpc') {
local.dockerServices.services[`frpc-${name}`] = { const containerName = `frpc-${name}`;
local.dockerServices.services[containerName] = {
restart: 'always', restart: 'always',
image: 'fatedier/frpc:v0.34.2', image: 'fatedier/frpc:v0.34.2',
network_mode: 'host', network_mode: 'host',
command: '-c /frpc.ini', command: '-c /frpc.ini',
volumes: [`./frpc-${name}.ini:/frpc.ini:ro`] volumes: [`./frpc-${name}.ini:/frpc.ini:ro`]
}; };
if (!noUpdate) {
local.frpcRestarts.push(containerName);
}
} }
if (ocType === 'server') { if (ocType === 'server') {
...@@ -409,7 +419,8 @@ class InventoryBuilder { ...@@ -409,7 +419,8 @@ class InventoryBuilder {
if (params.p === "tcp") { if (params.p === "tcp") {
startupCommand += ' --no-dtls'; startupCommand += ' --no-dtls';
} }
local.dockerServices.services[`openconnect-${name}`] = { const containerName = `openconnect-${name}`;
local.dockerServices.services[containerName] = {
restart: 'always', restart: 'always',
image: 'git-registry.mycard.moe/railgun/openconnect', image: 'git-registry.mycard.moe/railgun/openconnect',
network_mode: 'host', network_mode: 'host',
...@@ -424,6 +435,9 @@ class InventoryBuilder { ...@@ -424,6 +435,9 @@ class InventoryBuilder {
'$HOME/nextgen-network/scripts:$HOME/nextgen-network/scripts:ro' '$HOME/nextgen-network/scripts:$HOME/nextgen-network/scripts:ro'
] ]
}; };
if (!noUpdate) {
local.ocRestarts.push(containerName);
}
} }
//console.log(local.name, name, mtu); //console.log(local.name, name, mtu);
...@@ -432,8 +446,6 @@ class InventoryBuilder { ...@@ -432,8 +446,6 @@ class InventoryBuilder {
console.log(`${local.name} GW ${localGateway.isp} ${inbound ? '<' : '='}=${(frpType === 'frps' || ocType === 'server') ? 's' : '='}=[${protocol}]=${(frpType === 'frpc' || ocType === 'client') ? 's' : '='}=> ${remote.name} GW ${remoteGateway.isp}`); console.log(`${local.name} GW ${localGateway.isp} ${inbound ? '<' : '='}=${(frpType === 'frps' || ocType === 'server') ? 's' : '='}=[${protocol}]=${(frpType === 'frpc' || ocType === 'client') ? 's' : '='}=> ${remote.name} GW ${remoteGateway.isp}`);
} }
const noUpdate = this.linksOnly && !(this.linksOnly.includes(remote.name) || this.linksOnly.includes(local.name)) || this.linksLimit && !(this.linksLimit.includes(remote.name) && this.linksLimit.includes(local.name));
return { return {
name, name,
metric, metric,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment