Skip to content

Instantly share code, notes, and snippets.

View petemounce's full-sized avatar

Peter Mounce petemounce

View GitHub Profile
@petemounce
petemounce / bootstrap-target-machine.ps1
Last active November 16, 2022 11:00
ansible 2.8.1 windows openssh environment variables
param(
[string] $username = "tweeter",
[string] $open_ssh_version = "v7.9.0.0p1-Beta"
)
$ErrorActionPreference = 'Stop'; # stop on all errors
$log_stamp = get-date -format 'yyyyMMdd-HHmmss'
Start-Transcript -Path "$(pwd)/bootstrap.$($log_stamp).log" -IncludeInvocationHeader
# Make the administrator user
$Count = Get-Random -min 24 -max 32
# install 7-zip, curl and vim
# (Windows 2012 comes with .NET 4.5 out-of-the-box)
# Then use the EC2 tools to create a new AMI from the result, and you have a system
# that will execute user-data as a PowerShell script after the instance fires up!
# This has been tested on Windows 2012 64bits AMIs provided by Amazon (eu-west-1 ami-a1867dd6)
#
# Inject this as user-data of a Windows 2012 AMI, like this (edit the adminPassword to your needs):
#
# <powershell>
# Set-ExecutionPolicy Unrestricted
@petemounce
petemounce / keybase.md
Created September 11, 2019 23:49
keybase.md

Keybase proof

I hereby claim:

  • I am petemounce on github.
  • I am petemounce (https://keybase.io/petemounce) on keybase.
  • I have a public key ASAv3jfram6QsHn8q5xsGfbrvLFOJDcVmRMMmf5jabgEIwo

To claim this, I am signing this object:

---
all:
hosts:
1.2.3.4
vars:
# https://docs.ansible.com/ansible/latest/user_guide/windows_setup.html#windows-ssh-setup
# Windows works differently than unix; with Windows, we don't need become because typically the user will be an administrator to be able to do anything at all.
# With ansible_become: true on Windows, you get a ShellModule error.
ansible_become: false
ansible_connection: ssh
"metadata": {
"imp-bootstrap-base64": "{{user `imp_bootstrap_base64`}}",
"imp-public-key-base64": "{{user `imp_public_key_base64`}}",
"imp-sshd-config-base64": "{{user `imp_sshd_config_base64`}}",
"windows-startup-script-ps1": "Get-GceMetaData -Path instance/attributes/imp-bootstrap-base64 > c:/windows/temp/bootstrap.b64 ; certutil -decode c:/windows/temp/bootstrap.b64 c:/windows/temp/bootstrap.ps1 ; c:/windows/temp/bootstrap.ps1 -username packer_user"
},
---
common: &common
timeout_in_minutes: 60 # TODO(ENG-548): reduce timeout once agent-cold-start is optimised.
retry:
automatic:
# This is designed to trap and retry failures because agent lost connection. Agent exits with -1 in this case.
- exit_status: -1
limit: 3
- exit_status: 255
limit: 3
@petemounce
petemounce / choco pack output on linux
Created February 9, 2018 15:11
building chocolatey packages within a mono docker container
+ docker run --rm --mount type=bind,src=/Users/pete/src/github/bazelbuild/bazel/scripts/packages/chocolatey/bazel-package,dst=/work linuturk/mono-choco pack --verbose --debug /work/bazel.nuspec --outputdirectory /work
Chocolatey v0.10.8.0
Chocolatey is running on Linux v 4.9.60.0
Attempting to delete file "opt/chocolatey/chocolatey.dll.old".
Attempting to delete file "/opt/chocolatey/choco.exe.old".
Attempting to create directory "/opt/chocolatey/helpers".
Attempting to create directory "/opt/chocolatey/helpers/functions".
Attempting to create directory "/opt/chocolatey/redirects".
Attempting to create directory "/opt/chocolatey/tools".
Command line: /opt/chocolatey/choco.exe pack --verbose --debug /work/bazel.nuspec --outputdirectory /work --allow-unofficial
$ PACKER_LOG=1 packer build --only=virtualbox-iso -var 'iso_url=file:///Volumes/PETERMOUNCE/14393.0.160715-1616.RS1_RELEASE_SERVER_EVAL_X64FRE_EN-US.ISO' ./vbox-2016.json
2017/02/24 11:00:30 [INFO] Packer version: 0.12.2
2017/02/24 11:00:30 Packer Target OS/Arch: darwin amd64
2017/02/24 11:00:30 Built with Go Version: go1.7.4
2017/02/24 11:00:30 Detected home directory from env var: /Users/peter
2017/02/24 11:00:30 Using internal plugin for azure-arm
2017/02/24 11:00:30 Using internal plugin for digitalocean
2017/02/24 11:00:30 Using internal plugin for openstack
2017/02/24 11:00:30 Using internal plugin for parallels-iso
2017/02/24 11:00:30 Using internal plugin for virtualbox-iso
@petemounce
petemounce / packer output
Created January 17, 2017 14:43
packer-template error
$ packer build --only=virtualbox-iso -var 'iso_url=file:///Volumes/PETERMOUNCE/14393.0.160715-1616.RS1_RELEASE_SERVER_EVAL_X64FRE_EN-US.ISO' ./vbox-2016.json
virtualbox-iso output will be in this color.
==> virtualbox-iso: Downloading or copying Guest additions
virtualbox-iso: Downloading or copying: file:///Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso
==> virtualbox-iso: Downloading or copying ISO
virtualbox-iso: Downloading or copying: file:///Volumes/PETERMOUNCE/14393.0.160715-1616.RS1_RELEASE_SERVER_EVAL_X64FRE_EN-US.ISO
==> virtualbox-iso: Creating floppy disk...
virtualbox-iso: Copying files flatly from floppy_files
virtualbox-iso: Copying file: answer_files/2016/Autounattend.xml
@petemounce
petemounce / Dockerfile
Last active January 8, 2017 00:46
docker hackday
FROM ubuntu
RUN apt-get update
RUN apt-get -y install curl wget git vim python python-pip python-dev
# Install anthracite
RUN git clone --recursive https://github.com/Dieterbe/anthracite.git /opt/anthracite
add ./config.py /opt/anthracite/config.py