jborean93 / omi

Open Management Infrastructure
Other
108 stars 13 forks source link

Ubuntu 22 aarch64 support (docker) #69

Closed carefreepineapple closed 10 months ago

carefreepineapple commented 10 months ago
SUMMARY

Unable to use Enter-PSSession in docker container running ubuntu 22 (aarch64) Most likely related to the rpi4 issue reported, but i'm not sure.

PS /> Enter-PSSession -ComputerName $host -Credential $cred -Authentication Negotiate
Enter-PSSession: This parameter set requires WSMan, and no supported WSMan client library was found. WSMan is either not installed or unavailable for this system.
MODULE VERSION
PS /> Import-Module -Name PSWSMan -PassThru

ModuleType Version    PreRelease Name                                ExportedCommands
---------- -------    ---------- ----                                ----------------
Script     2.3.1                 PSWSMan                             {Disable-WSManCertVerification, Enable-WSManCertVerification, Get-WSManVersion…

root@a9fe64fc9013:/# pwsh -Command 'Install-WSMan -Verbose'
VERBOSE: Getting OpenSSL version for 'libssl', 'libssl.so', 'libssl.so.1.1', 'libssl.so.10', 'libssl.so.1.0.0', 'libssl.so.3'
VERBOSE: OpenSSL Version: Major 3 Minor 0 Patch 0
VERBOSE: Host Info:
{
  "StandardLib": "glibc",
  "OpenSSL": "3",
  "LibCrypto": null,
  "LibSSL": null
}
VERBOSE: Installing WSMan libs for 'glibc-3'
VERBOSE: Checking to see if libmi.so is installed
VERBOSE: Checking to see if libpsrpclient.so is installed

root@c8d5e3e35706:/# PWSHDIR="$( dirname "$( readlink "$( which pwsh )" )" )"
root@c8d5e3e35706:/# ldd "${PWSHDIR}/libpsrpclient.so"
    not a dynamic executable
root@c8d5e3e35706:/# ldd "${PWSHDIR}/libmi.so"
    not a dynamic executable
OS / ENVIRONMENT
PS /usr/lib/aarch64-linux-gnu> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      7.4.0
PSEdition                      Core
GitCommitId                    7.4.0
OS                             Ubuntu 22.04.3 LTS
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

root@a9fe64fc9013:/# uname -a
Linux a9fe64fc9013 6.5.11-linuxkit #1 SMP PREEMPT Wed Dec  6 17:08:31 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux
root@a9fe64fc9013:/# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:    22.04
Codename:   jammy
DOCKERFILE
#Image contains all the tools necessary to connect via powershell (winrm) to pwsh 5.1.

FROM ubuntu:latest

SHELL ["/bin/bash", "-c"]

RUN apt update -y && apt upgrade -y
RUN apt install -y iputils-ping ansible telnet vim tcpdump
RUN apt install -y wget apt-transport-https software-properties-common sshpass gss-ntlmssp
RUN apt install -y libc6 libgcc1 libgcc-s1 libgssapi-krb5-2 libicu70 liblttng-ust1 libssl3 libstdc++6 libunwind8 zlib1g
RUN mkdir -p /opt/microsoft/powershell/7
RUN wget -c -P /tmp -q https://github.com/PowerShell/PowerShell/releases/download/v7.4.0/powershell-7.4.0-linux-arm64.tar.gz
RUN tar -xvzf /tmp/powershell-7.4.0-linux-arm64.tar.gz -C /opt/microsoft/powershell/7/
RUN ln -s /opt/microsoft/powershell/7/pwsh /usr/local/bin
RUN pwsh -Command 'Install-Module -Name PSWSMan -AcceptLicense -Force -Confirm:$False'
RUN pwsh -Command 'Install-WSMan'

CMD ["/bin/bash"]

I believe the issue is related to aarch64, but i've not identified it yet.

btw, thank you @jborean93 for all your work here and with ansible.windows

jborean93 commented 10 months ago

Hi unfortunately the only platform I added support for with aarch64 was macOS. You could potentially recompile your own version using the build tools here but I don't have any plans on creating a new release of this fork at this point in time.