()
| 75 | |
| 76 | /** This host's public egress IP, for the inbound-SSH security-group rule. */ |
| 77 | const egressIp = async (): Promise<string> => { |
| 78 | const { stdout } = await execFileP("curl", [ |
| 79 | "-s", |
| 80 | "--max-time", |
| 81 | "10", |
| 82 | "https://checkip.amazonaws.com", |
| 83 | ]); |
| 84 | return stdout.trim(); |
| 85 | }; |
| 86 | |
| 87 | /** Latest AWS-published base AMI for the guest OS (resolve dynamically — ids rotate). */ |
| 88 | const latestAmi = async (os: VmOs): Promise<string> => { |