Skip to content

Commit 6cfafbc

Browse files
authored
Update SSH Target Requirements: Remove Deprecated Mono Mentions (#2611)
1 parent fcc119f commit 6cfafbc

File tree

2 files changed

+3
-82
lines changed

2 files changed

+3
-82
lines changed

src/pages/docs/infrastructure/deployment-targets/linux/ssh-requirements.md

Lines changed: 2 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,9 @@ See the Bash Reference Manual, section [6.2 Bash Startup Files](http://www.gnu.o
2727

2828
## .NET {#dotnet}
2929

30-
[Calamari](/docs/octopus-rest-api/calamari) is the command-line tool that is invoked to perform the deployment steps on the deployment target. Calamari runs on .NET. SSH targets can be configured to use either:
30+
[Calamari](/docs/octopus-rest-api/calamari) is the command-line tool that is invoked to perform the deployment steps on the deployment target. It runs on .NET and is built as a [.NET Core self-contained distributable](https://docs.microsoft.com/en-us/dotnet/core/deploying/#self-contained-deployments-scd).
3131

32-
- [Self-contained Calamari](#self-contained-calamari) built against .NET Core (recommended).
33-
- [Calamari on Mono](#mono-calamari) built against the full .NET framework.
32+
Since it is self-contained, .NET Core does not need to be installed on the target server. However, there are still some [pre-requisite dependencies](https://learn.microsoft.com/en-us/dotnet/core/install/linux-scripted-manual#dependencies) required for .NET Core itself that must be installed.
3433

3534
## Python
3635
Octopus can execute Python scripts on SSH targets provided the following criteria are met:
@@ -39,81 +38,6 @@ Octopus can execute Python scripts on SSH targets provided the following criteri
3938
- Python3 is on the path for the SSH user executing the deployment
4039
- pip is installed or the pycryptodome python package is installed
4140

42-
## ScriptCS and F#
43-
44-
Support for ScriptCS and F# scripts are only available with **Mono 4** and above. While they require mono installed, they will still execute with the self-contained Calamari.
45-
46-
ScriptCS has not been ported for .NET Core ([GitHub issue](https://github.com/scriptcs/scriptcs/issues/1183)).
47-
48-
Similarly, the F# interpreter has also not yet been ported for .NET Core ([GitHub issue](https://github.com/Microsoft/visualfsharp/issues/2407)).
49-
50-
:::div{.warning}
51-
52-
ScriptCS does not work on Mono **5.16** and higher. We recommend using Mono **5.14.x**.
53-
:::
54-
55-
## Self-contained Calamari {#self-contained-calamari}
56-
57-
When using the self-contained option, neither .NET Core nor Mono need to be installed on the target server (there are still some [pre-requisite dependencies](#self-contained-net-core-dependencies)).
58-
59-
Self-contained Calamari is built as a [.NET Core self-contained distributable](https://docs.microsoft.com/en-us/dotnet/core/deploying/#self-contained-deployments-scd).
60-
61-
### Self-Contained .NET Core dependencies {#self-contained-net-core-dependencies}
62-
63-
[.NET Core has some dependencies](https://learn.microsoft.com/en-us/dotnet/core/install/linux-scripted-manual#dependencies) which must be installed on the target server.
64-
65-
## Calamari on Mono {#mono-calamari}
66-
67-
:::div{.warning}
68-
69-
Mono is [being deprecated](https://octopus.com/blog/deprecating-mono) and may no longer be available in future versions of Octopus Server. We recommend upgrading your SSH Target to make use of [Self-contained Calamari](#self-contained-calamari)
70-
71-
:::
72-
73-
[Calamari](/docs/octopus-rest-api/calamari/) can execute on the [Mono framework](http://www.mono-project.com).
74-
75-
Version **5.14.0** or greater of Mono is supported, however **5.18.0** is the latest version that we currently test against. Version **3.10** or greater may work, however we strongly recommend using a supported version.
76-
77-
You can find instructions for installing Mono in the [Mono documentation](http://www.mono-project.com/docs/getting-started/install/linux/).
78-
79-
### Calamari on Mono limitations
80-
81-
#### TLSv1.2 support available in Mono >= 4.8.0
82-
[TLSv1.2 support](http://www.mono-project.com/docs/about-mono/releases/4.8.0/#tls-12-support) was only included from Mono version **4.8.0**. Due to the weak cryptographic nature of older encryption algorithms, many websites are no longer providing support for TLSv1 TLSv1.1 and as such clients must ensure that they are able to use TLSv1.2 in order to communicate.
83-
84-
Although previous versions of Mono should work in most deployment scenarios, any deployments that involve the target accessing endpoints that require TLSv1.2 (for example downloading from [Maven](/docs/packaging-applications/package-repositories/maven-feeds/) or [GitHub](/docs/packaging-applications/package-repositories/github-feeds) feeds) may fail.
85-
86-
#### .NET Configuration transformations only available in Mono >= 4.2.3
87-
88-
The [.NET configuration transforms](/docs/projects/steps/configuration-features/xml-configuration-variables-feature) feature will only work on Mono **4.2.3** and above.
89-
90-
This was due to a [bug with XML Transformations](https://bugzilla.xamarin.com/show_bug.cgi?id=19426).
91-
92-
Note that [substitute variables in templates](/docs/projects/steps/configuration-features/substitute-variables-in-templates) can still be used without issue on earlier Mono versions.
93-
94-
#### Package repository SSL certificates
95-
96-
If you configure your deployment such that the target pulls down the package itself directly from the NuGet repository, the correct SSL certificates need to also be available to Mono. By default, Mono pre **3.12** didn't trust any certificates and the root certs in question would need to be either manually imported, or synced with Mozilla's list by invoking `mozroots` or `cert-sync`. Thankfully Mono's latest builds perform this step during installation so it should “just work”.
97-
98-
See [Mono's security FAQ](http://www.mono-project.com/docs/faq/security/) for more details.
99-
100-
#### Mono on OSX
101-
102-
If you are using a Mac with OSX as an SSH deployment target, you may see the following error message:
103-
104-
`Required command 'mono' is not available`
105-
106-
This can occur even if Mono is installed and can be executed from a local shell. This is because the environment exposed to an SSH session can differ from the environment used by a local shell.
107-
108-
To fix this:
109-
110-
1. If it doesn't already exist, create a file called `.bashrc` in the home folder of the user that is connecting to the Mac OSX instance. If the remote user is called `octopus`, then this file will be located at `/Users/octopus/.bashrc`.
111-
2. Add the path environment variable to the `.bashrc` file to include the location of the mono executable e.g.
112-
113-
```
114-
export PATH=/Library/Frameworks/Mono.framework/Versions/Current/bin/:${PATH}
115-
```
116-
11741
## Learn more
11842

11943
- Configure your [SSH deployment targets](/docs/infrastructure/deployment-targets/linux/ssh-target)

src/shared-content/tentacle/configure-ssh-connection-target.include.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,6 @@ For Octopus Server prior to **2024.2.6856** use the following:
3131
ssh-keygen -E md5 -lf /etc/ssh/ssh_host_ed25519_key.pub | awk '{ print $2 }' | cut -d':' -f2-
3232
```
3333

34-
10. Specify whether Mono is installed on the SSH target or not to determine which version of [Calamari](/docs/octopus-rest-api/calamari) will be installed.
35-
36-
- [Calamari on Mono](#mono-calamari) built against the full .NET framework.
37-
- [Self-contained version of Calamari](#self-contained-calamari) built against .NET Core.
34+
10. Select the **Platform** (OS and architecture) of the target server.
3835

3936
11. Click **Save**.

0 commit comments

Comments
 (0)