Server alive
This commit is contained in:
parent
69ee6ca858
commit
45fd9e59d5
|
@ -0,0 +1 @@
|
|||
result
|
|
@ -0,0 +1,49 @@
|
|||
# Save my Dell Poweredge r710
|
||||
|
||||
So my r710 is dead (some disks failed or whatever).
|
||||
But do you know what's even more dead?
|
||||
Java Web Applets.
|
||||
And idrac6 just so happens to use that in order to launch your shell...
|
||||
|
||||
Luckily, nixpkgs is a god damn time machine.
|
||||
It can let you travel all the way back to 2015 and use the old technology stack that allows you to speak to the idrac.
|
||||
|
||||
## Steps
|
||||
|
||||
### 1. Log into idrac
|
||||
|
||||
idrac6 still uses TLS 1.0, which isn't really supported anymore.
|
||||
I also could not find the option to allow older TLS versions in chrome, so I had to use firefox to access the idrac webpage.
|
||||
|
||||
- open `about:config` in the url bar
|
||||
- search for the setting named `security.tls.version.min`
|
||||
- set it to `1`
|
||||
|
||||
## 2. Download the virtual console file
|
||||
|
||||
Once you are there, you can click the launch button on the left side inside the "Virtual Console Preview" pane, which should download some sort of `viewer.jnlp` file (might be named slightly differently).
|
||||
|
||||
You must replace that file with this repos `viewer.jnlp`, because it contains a new `user`/`password` setting that lets you connect properly.
|
||||
|
||||
## 3. Adjust settings in flake.nix
|
||||
|
||||
Go into `flake.nix` and scroll down to `packages.${system}.adjustedViewer`. Here, you will find some settings that will be overwritten in `viewer.jnlp` when running the program.
|
||||
|
||||
## 3.5 ssh into a machine that can access your idrac
|
||||
|
||||
The reason i even needed to use the idrac in the first place, was that i was physically not in the same location as the machine.
|
||||
Luckily, I had remembered to set up a separate raspberry pi with an ssh server, just in case something like this happened.
|
||||
That way, I could forward the ports I needed to access the idrac.
|
||||
|
||||
SSH into your machine with access to the idrac, and port forward both the https port and the `kmport`/`vport`.
|
||||
|
||||
```console
|
||||
ssh <pi-hostname> -p <pi-port> -L 8000:<idrac-hostname>:443 -L 5900:<idrac-hostname>:5900
|
||||
```
|
||||
|
||||
## 4. nix run
|
||||
|
||||
Use the default app.
|
||||
This should firstly create a modified version of `viewer.jnlp` with your updated settings from step 3.
|
||||
Then it will spin up the old version of `icedtea-web` that lets you access your idrac.
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
pkgs,
|
||||
xmlstarlet ? pkgs.xmlstarlet,
|
||||
|
||||
# Usually forwarded through ssh
|
||||
ip ? "localhost",
|
||||
https-port ? 8000,
|
||||
kmport ? 5900,
|
||||
vport ? 5900,
|
||||
|
||||
original-viewer-path ? ./viewer.jnlp
|
||||
}:
|
||||
pkgs.runCommand "viewer.jnlp" {} ''
|
||||
cp ${original-viewer-path} viewer.jnlp
|
||||
|
||||
sed -i 's|https://localhost:443|https://${ip}:${toString https-port}|g' viewer.jnlp
|
||||
|
||||
${xmlstarlet}/bin/xmlstarlet ed --inplace -u "/information/application-desc/ip" -v ${ip} viewer.jnlp
|
||||
${xmlstarlet}/bin/xmlstarlet ed --inplace -u "/information/application-desc/kmport" -v ${toString kmport} viewer.jnlp
|
||||
${xmlstarlet}/bin/xmlstarlet ed --inplace -u "/information/application-desc/vport" -v ${toString vport} viewer.jnlp
|
||||
|
||||
install -Dm644 -t $out viewer.jnlp
|
||||
''
|
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1667653703,
|
||||
"narHash": "sha256-Xow4vx52/g5zkhlgZnMEm/TEXsj+13jTPCc2jIhW1xU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "f09ad462c5a121d0239fde645aacb2221553a217",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-22.05",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"old-nixpkgs": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"narHash": "sha256-6ex8oAb2JsE9w7CjjJlBaFzxNY6aG50/FfqrIYaMdt0=",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/dd7e6bd97fc26b72fb6ac9e9d6f9750980fd3f56.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/dd7e6bd97fc26b72fb6ac9e9d6f9750980fd3f56.tar.gz"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs",
|
||||
"old-nixpkgs": "old-nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
70
flake.nix
70
flake.nix
|
@ -1,26 +1,62 @@
|
|||
{
|
||||
# 1.5.2 - 2015-04-13
|
||||
# inputs.nixpkgs.url = "https://github.com/NixOS/nixpkgs/archive/df31a338dcfbbc1561905eb02224912c82a92fc7.tar.gz";
|
||||
description = "java web applet resurrection";
|
||||
|
||||
# 1.6 - 2015-08-31
|
||||
# inputs.nixpkgs.url = "https://github.com/NixOS/nixpkgs/archive/00abee22bee06fdb57ee67cc514ab387deb186c9.tar.gz";
|
||||
inputs = {
|
||||
nixpkgs.url = "nixpkgs/nixos-22.05";
|
||||
old-nixpkgs = {
|
||||
flake = false;
|
||||
|
||||
# 1.6.1 - 2016-02-08
|
||||
inputs.nixpkgs.url = "https://github.com/NixOS/nixpkgs/archive/dd7e6bd97fc26b72fb6ac9e9d6f9750980fd3f56.tar.gz";
|
||||
|
||||
# 1.6.2 - 2018-03-12
|
||||
# inputs.nixpkgs.url = "https://github.com/NixOS/nixpkgs/archive/2c9d2d65266c2c3aca1e4c80215de8bee5295b04.tar.gz";
|
||||
|
||||
# 1.7.1 - 2019-06-24
|
||||
# inputs.nixpkgs.url = "https://github.com/NixOS/nixpkgs/archive/4599f2bb9a5a6b1482e72521ead95cb24e0aa819.tar.gz";
|
||||
# See https://lazamar.co.uk/nix-versions/?channel=nixpkgs-unstable&package=icedtea-web
|
||||
|
||||
outputs = { self, nixpkgs }: let
|
||||
# 1.5.2 - 2015-04-13
|
||||
# url = "https://github.com/NixOS/nixpkgs/archive/df31a338dcfbbc1561905eb02224912c82a92fc7.tar.gz";
|
||||
|
||||
# 1.6 - 2015-08-31
|
||||
# url = "https://github.com/NixOS/nixpkgs/archive/00abee22bee06fdb57ee67cc514ab387deb186c9.tar.gz";
|
||||
|
||||
# 1.6.1 - 2016-02-08
|
||||
url = "https://github.com/NixOS/nixpkgs/archive/dd7e6bd97fc26b72fb6ac9e9d6f9750980fd3f56.tar.gz";
|
||||
|
||||
# 1.6.2 - 2018-03-12
|
||||
# url = "https://github.com/NixOS/nixpkgs/archive/2c9d2d65266c2c3aca1e4c80215de8bee5295b04.tar.gz";
|
||||
|
||||
# 1.7.1 - 2019-06-24
|
||||
# url = "https://github.com/NixOS/nixpkgs/archive/4599f2bb9a5a6b1482e72521ead95cb24e0aa819.tar.gz";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, old-nixpkgs }: let
|
||||
system = "x86_64-linux";
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
old-pkgs = import old-nixpkgs { inherit system; };
|
||||
in {
|
||||
packages.${system} = rec {
|
||||
icedtea-web = pkgs.icedtea8_web;
|
||||
default = icedtea-web;
|
||||
apps.${system} = {
|
||||
default = self.apps.${system}.javaws-adjusted-viewer;
|
||||
javaws = {
|
||||
type = "app";
|
||||
program = "${self.packages.${system}.icedtea-web}/bin/javaws";
|
||||
};
|
||||
javaws-adjusted-viewer = {
|
||||
type = "app";
|
||||
program = let
|
||||
inherit (self.packages.${system}) icedtea-web adjusted-viewer;
|
||||
executable = pkgs.writeShellScriptBin "javaws-adjusted-viewer"''
|
||||
${icedtea-web}/bin/javaws --verbose ${adjusted-viewer}/viewer.jnlp
|
||||
'';
|
||||
in "${executable}/bin/javaws-adjusted-viewer";
|
||||
};
|
||||
};
|
||||
|
||||
packages.${system} = {
|
||||
icedtea-web = old-pkgs.icedtea8_web;
|
||||
adjusted-viewer = pkgs.callPackage ./adjust-viewer.nix {
|
||||
ip = "localhost";
|
||||
https-port = 8000;
|
||||
kmport = 5900;
|
||||
vport = 5900;
|
||||
|
||||
original-viewer-path = ./viewer.jnlp;
|
||||
};
|
||||
};
|
||||
|
||||
devShells.${system}.default = pkgs.mkShell {
|
||||
|
|
48
viewer.jnlp
48
viewer.jnlp
|
@ -1,18 +1,18 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<jnlp codebase="https://localhost:4443" spec="1.0+">
|
||||
<jnlp codebase="https://localhost:443" spec="1.0+">
|
||||
<information>
|
||||
<title>iDRAC6 Virtual Console Client</title>
|
||||
<vendor>Dell Inc.</vendor>
|
||||
<icon href="https://localhost:4443/images/logo.gif" kind="splash"/>
|
||||
<icon href="https://localhost:443/images/logo.gif" kind="splash"/>
|
||||
<shortcut online="true"/>
|
||||
</information>
|
||||
<application-desc main-class="com.avocent.idrac.kvm.Main">
|
||||
<argument>ip=localhost</argument>
|
||||
<argument>vmprivilege=true</argument>
|
||||
<argument>helpurl=https://localhost:4443/help/contents.html</argument>
|
||||
<argument>helpurl=https://localhost:443/help/contents.html</argument>
|
||||
<argument>title=idrac-73W805J%2C+PowerEdge+R710%2C+User%3Aroot</argument>
|
||||
<argument>user=1804289383</argument>
|
||||
<argument>passwd=846930886</argument>
|
||||
<argument>user=596516649</argument>
|
||||
<argument>passwd=1189641421</argument>
|
||||
<argument>kmport=5900</argument>
|
||||
<argument>vport=5900</argument>
|
||||
<argument>apcp=1</argument>
|
||||
|
@ -23,42 +23,42 @@
|
|||
</security>
|
||||
<resources>
|
||||
<j2se version="1.6+"/>
|
||||
<jar href="https://localhost:4443/software/avctKVM.jar" download="eager" main="true" />
|
||||
<jar href="https://localhost:443/software/avctKVM.jar" download="eager" main="true" />
|
||||
</resources>
|
||||
<resources os="Windows" arch="x86">
|
||||
<nativelib href="https://localhost:4443/software/avctKVMIOWin32.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:4443/software/avctVMWin32.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:443/software/avctKVMIOWin32.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:443/software/avctVMWin32.jar" download="eager"/>
|
||||
</resources>
|
||||
<resources os="Windows" arch="amd64">
|
||||
<nativelib href="https://localhost:4443/software/avctKVMIOWin64.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:4443/software/avctVMWin64.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:443/software/avctKVMIOWin64.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:443/software/avctVMWin64.jar" download="eager"/>
|
||||
</resources>
|
||||
<resources os="Windows" arch="x86_64">
|
||||
<nativelib href="https://localhost:4443/software/avctKVMIOWin64.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:4443/software/avctVMWin64.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:443/software/avctKVMIOWin64.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:443/software/avctVMWin64.jar" download="eager"/>
|
||||
</resources>
|
||||
<resources os="Linux" arch="x86">
|
||||
<nativelib href="https://localhost:4443/software/avctKVMIOLinux32.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:4443/software/avctVMLinux32.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:443/software/avctKVMIOLinux32.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:443/software/avctVMLinux32.jar" download="eager"/>
|
||||
</resources>
|
||||
<resources os="Linux" arch="i386">
|
||||
<nativelib href="https://localhost:4443/software/avctKVMIOLinux32.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:4443/software/avctVMLinux32.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:443/software/avctKVMIOLinux32.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:443/software/avctVMLinux32.jar" download="eager"/>
|
||||
</resources>
|
||||
<resources os="Linux" arch="i586">
|
||||
<nativelib href="https://localhost:4443/software/avctKVMIOLinux32.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:4443/software/avctVMLinux32.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:443/software/avctKVMIOLinux32.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:443/software/avctVMLinux32.jar" download="eager"/>
|
||||
</resources>
|
||||
<resources os="Linux" arch="i686">
|
||||
<nativelib href="https://localhost:4443/software/avctKVMIOLinux32.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:4443/software/avctVMLinux32.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:443/software/avctKVMIOLinux32.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:443/software/avctVMLinux32.jar" download="eager"/>
|
||||
</resources>
|
||||
<resources os="Linux" arch="amd64">
|
||||
<nativelib href="https://localhost:4443/software/avctKVMIOLinux64.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:4443/software/avctVMLinux64.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:443/software/avctKVMIOLinux64.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:443/software/avctVMLinux64.jar" download="eager"/>
|
||||
</resources>
|
||||
<resources os="Linux" arch="x86_64">
|
||||
<nativelib href="https://localhost:4443/software/avctKVMIOLinux64.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:4443/software/avctVMLinux64.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:443/software/avctKVMIOLinux64.jar" download="eager"/>
|
||||
<nativelib href="https://localhost:443/software/avctVMLinux64.jar" download="eager"/>
|
||||
</resources>
|
||||
</jnlp>
|
||||
|
|
Loading…
Reference in New Issue