diff options
| author | Collin Williams <96917990+bluedragon1221@users.noreply.github.com> | 2026-03-03 16:45:26 -0600 |
|---|---|---|
| committer | Collin Williams <96917990+bluedragon1221@users.noreply.github.com> | 2026-03-03 16:45:26 -0600 |
| commit | c29a14135736c2516bb5d951e6e97dc8143598db (patch) | |
| tree | 925628abfe934e3ea2cfd4a70357f8f9b5acb474 /pkgs/yossh/examples | |
| parent | ce2cc260710f801c10302847796b931f7ed19709 (diff) | |
changes
Diffstat (limited to 'pkgs/yossh/examples')
| -rwxr-xr-x | pkgs/yossh/examples/home_wifi.lua | 33 | ||||
| -rw-r--r-- | pkgs/yossh/examples/mega_bastion.lua | 61 | ||||
| -rw-r--r-- | pkgs/yossh/examples/test.lua | 18 |
3 files changed, 112 insertions, 0 deletions
diff --git a/pkgs/yossh/examples/home_wifi.lua b/pkgs/yossh/examples/home_wifi.lua new file mode 100755 index 0000000..8df2aad --- /dev/null +++ b/pkgs/yossh/examples/home_wifi.lua @@ -0,0 +1,33 @@ +#!/bin/sh +yoshi = dofile'yoshi.lua' + +local function isHome() + local ok, reason, code = os.execute("nc -z -w1 192.168.50.2 2222") + return code == 0 +end + +yoshi.hosts["ganymede"] = function() + if isHome() then + return yoshi.ssh{ + HostName = "192.168.50.2", + Port = 2222, + LocalForward = 8010 + } + else + return yoshi.ssh{ + HostName = "williamsfam.us.com", + LocalForward = 8010, + DynamicForward = 9090 + } + end +end + +yoshi.hosts["io"] = function() + return yoshi.ssh{ + HostName = "192.168.50.3", + User = "admin", + ProxyJump = isHome() or "collin@ganymede", + } +end + +yoshi.run(arg, {dry_run = true}) diff --git a/pkgs/yossh/examples/mega_bastion.lua b/pkgs/yossh/examples/mega_bastion.lua new file mode 100644 index 0000000..d4eb3ee --- /dev/null +++ b/pkgs/yossh/examples/mega_bastion.lua @@ -0,0 +1,61 @@ +-- situation: fictional network where there are three departments: +-- - tech (172.16.10.0/24) +-- - HR (172.16.20.0/24) +-- - Secretary (172.16.40.0/24) +-- Each department has +-- - an ssh bastion server at .1:22 (only way to access other devices on the subnet from outside the subnet) +-- - a shared sftp server at .2:25 +-- +-- This exact yoshi script would be deployed to all personal computers inside the network. +local yoshi = dofile"yoshi.lua" + +local function inNetwork() + -- company internal landing page + local _, _, code = os.execute("nc -z -w1 172.16.0.1 443") + return code == 0 +end + +local function currDept() + local ip_addr = io.popen("hostname -I") + local _, _, third_octet, _ = string.gmatch(ip_addr, "%d%.%d%.%d%.%d") + + return third_octet +end + +local depts = { + tech = 10, + hr = 20, + secretary = 40 +} + +yoshi.hosts["global-bastion"] = yoshi.ssh{ + HostName = "bastion.company-website.com", + Port = 2222 +} + +for name, subnet in pairs(depts) do + yoshi.hosts[name.."-bastion"] = function() + return yoshi.ssh{ + HostName = "172.16."..subnet..".1", + ProxyJump = inNetwork() or "global-bastion" + } + end + + yoshi.hosts[name.."-fileserver"] = function() + return yoshi.ssh{ + HostName = "172.16."..subnet..".2", + SessionType = "none", + LocalForward = {2225, 25}, + ProxyJump = inNetwork() and currDept() == subnet or name.."-bastion" + } + end +end + +yoshi.hosts[name.."-db"] = yoshi.ssh{ + HostName = "172.16.10.3", + SessionType = "none", + LocalForward = 5432, + ProxyJump = inNetwork() and currDept() == subnet or "tech-bastion" +} + +yoshi.run(arg, {dry_run = true}) diff --git a/pkgs/yossh/examples/test.lua b/pkgs/yossh/examples/test.lua new file mode 100644 index 0000000..a594305 --- /dev/null +++ b/pkgs/yossh/examples/test.lua @@ -0,0 +1,18 @@ +yoshi = dofile'yoshi.lua' + +yoshi.hosts["you"] = function() + return yoshi.ssh{ + HostName = "192.168.50.2", + DynamicForward = 7320, + Port = 27 + } +end + +yoshi.hosts["me"] = function() + return yoshi.ssh{ + HostName = "test.local", + ProxyJump = "jumper@you" + } +end + +yoshi.run(arg, {dry_run = true}) |
