Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(GH-1535) Create container infrastructure for WinRM testing #7

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

lucywyman
Copy link
Owner

This creates a Windows container in the Github Actions Windows testing
environment to run WinRM and windows-based tests against. This allows us
to test actual WinRM connections rather than having the GH Action
environment connect to itself.

Additionally, it removes unnecessary steps from our GH Action workflows,
as Docker and docker-compose are already installed in GH Action
environments.

@lucywyman lucywyman force-pushed the GH-1535 branch 7 times, most recently from e500e06 to 592024a Compare March 2, 2020 21:02
@lucywyman lucywyman force-pushed the GH-1535 branch 12 times, most recently from 399fa48 to ed0394c Compare March 3, 2020 18:39
This modifies the infrastructure used to test WinRM connections to test
against a running container as opposed to connecting back to the virtual
machine itself. This changes how we provision the Github Actions
environment, now using docker-compose to bring up two Windows server
2019 containers - one with the Puppet Agent ruby taking precedence, and
one with Windows ruby taking precedence. The containers have the same
username and password as Linux container infrastructure, and connect
over winrm without SSL.

WinRM has 5 authentication methods by default, with the default non-SSL
authentication method being 'negotiate'. Negotiate determine whether to
use Kerberos or NTLM for authentication, preferring Kerberos. Previous
Bolt testing setups seem to have fallen back to using NTLM, or otherwise
been configured to allow user-password authentication (possibly through
Group Policies). However the default for the Windows Server 2019
container is to attempt Kerberos, which fails. As such the WinRM
connection must specify the `basic` auth method in order to use
user-pasword authentication between the the GH Action environment and
the containers. This is possible using the WinRM ruby gem, but not
something we want to expose to users. As such we specify the appropriate
settings when connecting to WinRM, wrapped in an environment variable
set when testing Bolt in CI.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants