59d7af0e67
This adds roles that, similar to add-build-sshkey, create a per-build WinRM certificate, install it on remote windows nodes, and then switch to using the certificate in Ansible for authentication. A second role is included which can clean up the cert which is useful for static nodes. Since winrm certificates must be acessible within the bubblewrap container, these roles can be used to restrict the system-wide winrm cert to trusted playbooks while untrusted playbooks will only have access to the per-build cert (with appropriate configuration of the executor). Change-Id: I4efe25594c2f543886a000aa02fb0a38683a43cb
12 lines
593 B
YAML
12 lines
593 B
YAML
- name: Remove the build WinRM cert
|
|
when: ansible_os_family == "Windows"
|
|
# The script itself may succeed, but we're unable to obtain the
|
|
# result due to the lost credentials.
|
|
ignore_errors: true # noqa ignore-errors
|
|
win_shell: |
|
|
$cert = get-childitem cert:/localmachine/root | where-object {$_.Subject -match "{{ zuul.build }}"}
|
|
|
|
get-childitem wsman:/localhost/clientcertificate | where-object {$_.Keys -match "Issuer=$($cert.Thumbprint)"} | remove-item -recurse
|
|
|
|
get-childitem cert:/localmachine/root | where-object {$_.Subject -match "{{ zuul.build }}"} | remove-item
|