commit | 08f6e01c8947a68450ca544bd63fddccc2e3c6ee | [log] [tgz] |
---|---|---|
author | William (Weiliang) Yan <wyan@google.com> | Thu Nov 09 00:20:47 2017 -0800 |
committer | William (Weiliang) Yan <wyan@google.com> | Mon Nov 13 15:07:16 2017 -0800 |
tree | be5e706d8079e8e090cb59f940a9770b3b117ea6 | |
parent | 2ffbce93326c9512900d0f08e51221a1073ab89c [diff] |
Support GCE Windows. 1. Allow updating cookie files. 2. Error out with warning when --nofork is missing. os.fork() is not supported on Windows. 3. Error out with warning when env var HOMEPATH is not set. Change-Id: I155774afed8910d5cd38780a47e321fac6651953
The git-cookie-authdaemon
uses the GCE metadata server to acquire an OAuth2 access token and configures git
to always present this OAuth2 token when connecting to googlesource.com or Google Cloud Source Repositories.
Launch the GCE VMs with the gerritcodereview scope requested, for example:
gcloud compute instances create \ --scopes https://www.googleapis.com/auth/gerritcodereview \ ...
To add a scope to an existing GCE instance see this gcloud beta feature.
Install the daemon within the VM image and start it running:
sudo apt-get install git git clone https://gerrit.googlesource.com/gcompute-tools/ ./gcompute-tools/git-cookie-authdaemon
The daemon launches itself into the background and continues to keep the OAuth2 access token fresh.
git-cookie-authdaemon
in the same environment under the same user git commands will be run, for example in either Command Prompt
or Cygwin bash shell
under user builder
.python git-cookie-authdaemon --nofork
It may be desired in automation to launch git-cookie-authdaemon
at Windows boot. It can be done as a scheduled task. The following is an example on a Jenkins node. The setup is:
builder
account.How to create a scheduled task.
Task Scheduler
from an Administrator account.Create Task
in the right pane.General
tab:builder
in this example.Run whether user is logged on or not
Trigger
tab. Add a triggerBegin the task
as At startup
.Stop task if it runs longer than
.Enabled
.Actions
tab. Add Start a program
.Program/script
as C:\cygwin64\bin\bash.ext
,Add arguments
as --login -c /home/builder/git-cookie-authdaemon_wrapper.sh
(see note below)Ok
to save it.Enable All Tasks History
in Task Scheduler
's right pane.builder
account to Administrative Tools -> Local Security Policy -> Local Policies -> User Rights Assignment -> Log On As Batch Job
Note: /home/builder/git-cookie-authdaemon_wrapper.sh` below does
#!/bin/bash exe=gcompute-tools/git-cookie-authdaemon log=/cygdrive/c/build/git-cookie-autodaemon.log # HOMEPATH is not set in task scheduled at machine boot. export HOMEPATH=${HOMEPATH:-'\Users\builder'} /cygdrive/c/Python27/python $exe --nofork >> $log 2>&1 # option --debug is also available.