From 11b9391e900e325b5143951178c824fbafc219da Mon Sep 17 00:00:00 2001 From: Simon Sapin Date: Fri, 9 Nov 2018 15:43:57 +0100 Subject: [PATCH] Initial agentless SaltStack config for generic-worker on macOS --- etc/taskcluster/macos/.gitignore | 1 + etc/taskcluster/macos/README.md | 16 +++++++++++++ etc/taskcluster/macos/Saltfile | 2 ++ etc/taskcluster/macos/config/master | 4 ++++ etc/taskcluster/macos/config/roster | 2 ++ etc/taskcluster/macos/salt-ssh | 14 +++++++++++ .../macos/states/generic-worker.sls | 23 +++++++++++++++++++ etc/taskcluster/macos/states/top.sls | 3 +++ 8 files changed, 65 insertions(+) create mode 100644 etc/taskcluster/macos/.gitignore create mode 100644 etc/taskcluster/macos/README.md create mode 100644 etc/taskcluster/macos/Saltfile create mode 100644 etc/taskcluster/macos/config/master create mode 100644 etc/taskcluster/macos/config/roster create mode 100755 etc/taskcluster/macos/salt-ssh create mode 100644 etc/taskcluster/macos/states/generic-worker.sls create mode 100644 etc/taskcluster/macos/states/top.sls diff --git a/etc/taskcluster/macos/.gitignore b/etc/taskcluster/macos/.gitignore new file mode 100644 index 000000000000..96286f5841ea --- /dev/null +++ b/etc/taskcluster/macos/.gitignore @@ -0,0 +1 @@ +.salt diff --git a/etc/taskcluster/macos/README.md b/etc/taskcluster/macos/README.md new file mode 100644 index 000000000000..1ca96baa10bc --- /dev/null +++ b/etc/taskcluster/macos/README.md @@ -0,0 +1,16 @@ +# macOS + +Servo’s macOS workers for Taskcluster are configured with +SaltStack in [agentless] mode. + +[agentless]: https://docs.saltstack.com/en/getstarted/ssh/index.html + +Either run `./salt-ssh` +to automatically install `salt-ssh` in `mach`’s existing Python virtualenv, +or install `salt-ssh` through some other mean and run in from this directory. + +```sh +cd etc/taskcluster/macos +./salt-ssh '*' test.ping +./salt-ssh '*' state.apply test=True +``` \ No newline at end of file diff --git a/etc/taskcluster/macos/Saltfile b/etc/taskcluster/macos/Saltfile new file mode 100644 index 000000000000..044cd70e61e8 --- /dev/null +++ b/etc/taskcluster/macos/Saltfile @@ -0,0 +1,2 @@ +salt-ssh: + config_dir: ./config \ No newline at end of file diff --git a/etc/taskcluster/macos/config/master b/etc/taskcluster/macos/config/master new file mode 100644 index 000000000000..cf59c94f2a9b --- /dev/null +++ b/etc/taskcluster/macos/config/master @@ -0,0 +1,4 @@ +root_dir: .salt +file_roots: + base: + - states \ No newline at end of file diff --git a/etc/taskcluster/macos/config/roster b/etc/taskcluster/macos/config/roster new file mode 100644 index 000000000000..ddfe70894970 --- /dev/null +++ b/etc/taskcluster/macos/config/roster @@ -0,0 +1,2 @@ +mac1: + host: servo-tc-mac1.servo.org \ No newline at end of file diff --git a/etc/taskcluster/macos/salt-ssh b/etc/taskcluster/macos/salt-ssh new file mode 100755 index 000000000000..5a6439a18e2c --- /dev/null +++ b/etc/taskcluster/macos/salt-ssh @@ -0,0 +1,14 @@ +#!/bin/sh + +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +set -o errexit +set -o nounset +set -o pipefail + +cd "$(dirname $0)" +VENV_BIN="../../../python/_virtualenv/bin" +[ -x "${VENV_BIN}/salt-ssh" ] || "${VENV_BIN}/pip" install salt-ssh +"${VENV_BIN}/salt-ssh" "${@}" \ No newline at end of file diff --git a/etc/taskcluster/macos/states/generic-worker.sls b/etc/taskcluster/macos/states/generic-worker.sls new file mode 100644 index 000000000000..e07c7fbd5bc0 --- /dev/null +++ b/etc/taskcluster/macos/states/generic-worker.sls @@ -0,0 +1,23 @@ +/usr/local/bin/generic-worker: + file.managed: + - name: + - source: https://github.com/taskcluster/generic-worker/releases/download/v11.0.1/generic-worker-darwin-amd64 + - source_hash: sha256=059331865670d3722a710f0b6f4dae97d347811cc347d1810c6dfc1b413c4b48 + - mode: 755 + - makedirs: True + +/usr/local/bin/livelog: + file.managed: + - source: https://github.com/taskcluster/livelog/releases/download/v1.1.0/livelog-darwin-amd64 + - source_hash: sha256=be5d4b998b208afd802ac6ce6c4d4bbf0fb3816bb039a300626abbc999dfe163 + - mode: 755 + - makedirs: True + +/etc/generic-worker: + file.directory: + - dir_mode: 700 + +generic-worker new-openpgp-keypair --file /etc/generic-worker/key: + cmd.run: + - creates: /etc/generic-worker/key + - prepend_path: /usr/local/bin \ No newline at end of file diff --git a/etc/taskcluster/macos/states/top.sls b/etc/taskcluster/macos/states/top.sls new file mode 100644 index 000000000000..79f7a40eed3d --- /dev/null +++ b/etc/taskcluster/macos/states/top.sls @@ -0,0 +1,3 @@ +base: + 'mac*': + - generic-worker \ No newline at end of file