Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
configuration
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
configuration
Commits
960a1080
Commit
960a1080
authored
Feb 28, 2014
by
Feanil Patel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add a role that will build an admin jenkins.
parent
f42b0108
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
808 additions
and
0 deletions
+808
-0
playbooks/roles/jenkins_admin/defaults/main.yml
+51
-0
playbooks/roles/jenkins_admin/handlers/main.yml
+18
-0
playbooks/roles/jenkins_admin/meta/main.yml
+23
-0
playbooks/roles/jenkins_admin/tasks/main.yml
+122
-0
playbooks/roles/jenkins_admin/templates/edx/var/jenkins/hudson.plugins.s3.S3BucketPublisher.xml.j2
+10
-0
playbooks/roles/jenkins_admin/templates/edx/var/jenkins/jobs/backup-jenkins/config.xml.j2
+60
-0
playbooks/roles/jenkins_admin/templates/edx/var/jenkins/jobs/build-ami/config.xml.j2
+198
-0
playbooks/roles/jenkins_admin/templates/edx/var/jenkins/jobs/prepare-edxapp/config.xml.j2
+164
-0
playbooks/roles/jenkins_admin/templates/edx/var/jenkins/jobs/prepare-forum/config.xml.j2
+157
-0
playbooks/roles/jenkins_master/tasks/main.yml
+5
-0
No files found.
playbooks/roles/jenkins_admin/defaults/main.yml
0 → 100644
View file @
960a1080
---
#
# edX Configuration
#
# github: https://github.com/edx/configuration
# wiki: https://github.com/edx/configuration/wiki
# code style: https://github.com/edx/configuration/wiki/Ansible-Coding-Conventions
# license: https://github.com/edx/configuration/blob/master/LICENSE.TXT
#
##
# Defaults for role jenkins_admin
#
#
# vars are namespace with the module name.
#
jenkins_admin_role_name
:
jenkins_admin
#
# OS packages
#
jenkins_admin_debian_pkgs
:
[]
jenkins_admin_redhat_pkgs
:
[]
jenkins_admin_plugins
:
-
{
name
:
"
greenballs"
,
version
:
"
1.14"
}
-
{
name
:
"
rebuild"
,
version
:
"
1.21"
}
-
{
name
:
"
build-user-vars-plugin"
,
version
:
"
1.1"
}
-
{
name
:
"
build-token-root"
,
version
:
"
1.1"
}
jenkins_admin_jobs
:
-
'
backup-jenkins'
-
'
prepare-edxapp'
-
'
prepare-forum'
-
'
build-ami'
JENKINS_ADMIN_NAME
:
'
default_jenkins_name'
# jenkins_admin also requires other variables that are not defined by default.
# JENKINS_ADMIN_S3_PROFILE: !!null
# JENKINS_ADMIN_CONFIGURATION_REPO: !!null
# JENKINS_ADMIN_CONFIGURATION_SECURE_REPO: !!null
#
# # Local path to the key to use to checkout secure repos on jenkins and in abbey
# JENKINS_ADMIN_GIT_KEY_LOCAL_PATH: !!null
#
# # EC2 Key to use when bringing up the abbey instance in ec2 (aws key-pair)
# JENKINS_ADMIN_EC2_KEY: !!null
playbooks/roles/jenkins_admin/handlers/main.yml
0 → 100644
View file @
960a1080
---
#
# edX Configuration
#
# github: https://github.com/edx/configuration
# wiki: https://github.com/edx/configuration/wiki
# code style: https://github.com/edx/configuration/wiki/Ansible-Coding-Conventions
# license: https://github.com/edx/configuration/blob/master/LICENSE.TXT
#
#
#
# Handlers for role jenkins_admin
#
# Overview:
#
#
-
name
:
notify me
debug
:
msg="stub handler"
playbooks/roles/jenkins_admin/meta/main.yml
0 → 100644
View file @
960a1080
---
#
# edX Configuration
#
# github: https://github.com/edx/configuration
# wiki: https://github.com/edx/configuration/wiki
# code style: https://github.com/edx/configuration/wiki/Ansible-Coding-Conventions
# license: https://github.com/edx/configuration/blob/master/LICENSE.TXT
#
##
# Role includes for role jenkins_admin
#
# Example:
#
# dependencies:
# - {
# role: my_role
# my_role_var0: "foo"
# my_role_var1: "bar"
# }
dependencies
:
-
common
-
jenkins_master
playbooks/roles/jenkins_admin/tasks/main.yml
0 → 100644
View file @
960a1080
---
#
# edX Configuration
#
# github: https://github.com/edx/configuration
# wiki: https://github.com/edx/configuration/wiki
# code style: https://github.com/edx/configuration/wiki/Ansible-Coding-Conventions
# license: https://github.com/edx/configuration/blob/master/LICENSE.TXT
#
#
#
# Tasks for role jenkins_admin
#
# Overview:
#
#
# Dependencies:
#
#
# Example play:
#
#
-
fail
:
"
JENKINS_ADMIN_S3_PROFILE
is
not
defined."
when
:
JENKINS_ADMIN_S3_PROFILE is not defined
-
fail
:
"
JENKINS_ADMIN_S3_PROFILE.name
is
not
defined."
when
:
JENKINS_ADMIN_S3_PROFILE.name is not defined
-
fail
:
"
JENKINS_ADMIN_S3_PROFILE.access_key
is
not
defined."
when
:
JENKINS_ADMIN_S3_PROFILE.access_key is not defined
-
fail
:
"
JENKINS_ADMIN_S3_PROFILE.secret_key
is
not
defined."
when
:
JENKINS_ADMIN_S3_PROFILE.secret_key is not defined
-
fail
:
"
JENKINS_ADMIN_CONFIGURATION_REPO
is
not
defined."
when
:
JENKINS_ADMIN_CONFIGURATION_REPO is not defined
-
fail
:
"
JENKINS_ADMIN_CONFIGURATION_SECURE_REPO
is
not
defined."
when
:
JENKINS_ADMIN_CONFIGURATION_SECURE_REPO is not defined
-
fail
:
"
JENKINS_ADMIN_GIT_KEY_LOCAL_PATH
is
not
defined."
when
:
JENKINS_ADMIN_GIT_KEY_LOCAL_PATH is not defined
-
fail
:
"
JENKINS_ADMIN_EC2_KEY
is
not
defined."
when
:
JENKINS_ADMIN_EC2_KEY is not defined
# We first download the plugins to a temp directory and include
# the version in the file name. That way, if we increment
# the version, the plugin will be updated in Jenkins
-
name
:
download Jenkins plugins
get_url
:
url=http://updates.jenkins-ci.org/download/plugins/{{ item.name }}/{{ item.version }}/{{ item.name }}.hpi
dest=/tmp/{{ item.name }}_{{ item.version }}
with_items
:
jenkins_admin_plugins
-
name
:
install Jenkins plugins
command
:
cp /tmp/{{ item.name }}_{{ item.version }} {{ jenkins_home }}/plugins/{{ item.name }}.hpi
with_items
:
jenkins_admin_plugins
-
name
:
set Jenkins plugin permissions
file
:
path={{ jenkins_home }}/plugins/{{ item.name }}.hpi
owner={{ jenkins_user }} group={{ jenkins_group }} mode=700
with_items
:
jenkins_admin_plugins
notify
:
-
restart Jenkins
-
name
:
configure s3 plugin
template
:
>
src="./{{jenkins_home}}/hudson.plugins.s3.S3BucketPublisher.xml.j2"
dest="{{jenkins_home}}/hudson.plugins.s3.S3BucketPublisher.xml"
owner={{jenkins_user}}
group={{jenkins_group}}
mode=0644
-
name
:
create the ssh directory
file
:
>
path={{jenkins_home}}/.ssh
owner={{jenkins_user}}
group={{jenkins_group}}
mode=0700
state=directory
# Need to add Github to known_hosts to avoid
# being prompted when using git through ssh
-
name
:
Add github.com to known_hosts if it does not exist
shell
:
>
ssh-keygen -f {{ jenkins_home }}/.ssh/known_hosts -H -F github.com | grep -q found || ssh-keyscan -H github.com > {{ jenkins_home }}/.ssh/known_hosts
-
name
:
drop the secure credentials
copy
:
>
src={{JENKINS_ADMIN_GIT_KEY_LOCAL_PATH}}
dest={{jenkins_home}}/.ssh/id_rsa
owner={{jenkins_user}}
group={{jenkins_group}}
mode=0600
-
name
:
create job directory
file
:
>
path="{{jenkins_home}}/jobs"
owner="{{jenkins_user}}"
group="{{jenkins_group}}"
mode=0755
state=directory
-
name
:
create admin job directories
file
:
>
path="{{jenkins_home}}/jobs/{{item}}"
owner={{jenkins_user}}
group={{jenkins_group}}
mode=0755
state=directory
with_items
:
jenkins_admin_jobs
-
name
:
create admin job config files
template
:
>
src="./{{jenkins_home}}/jobs/{{item}}/config.xml.j2"
dest="{{jenkins_home}}/jobs/{{item}}/config.xml"
owner={{jenkins_user}}
group={{jenkins_group}}
mode=0644
with_items
:
jenkins_admin_jobs
playbooks/roles/jenkins_admin/templates/edx/var/jenkins/hudson.plugins.s3.S3BucketPublisher.xml.j2
0 → 100644
View file @
960a1080
<?xml version='1.0' encoding='UTF-8'?>
<hudson.plugins.s3.S3BucketPublisher_-DescriptorImpl
plugin=
"s3@0.5"
>
<profiles>
<hudson.plugins.s3.S3Profile>
<name>
{{JENKINS_ADMIN_S3_PROFILE.name}}
</name>
<accessKey>
{{JENKINS_ADMIN_S3_PROFILE.access_key}}
</accessKey>
<secretKey>
{{JENKINS_ADMIN_S3_PROFILE.secret_key}}
</secretKey>
</hudson.plugins.s3.S3Profile>
</profiles>
</hudson.plugins.s3.S3BucketPublisher_-DescriptorImpl>
playbooks/roles/jenkins_admin/templates/edx/var/jenkins/jobs/backup-jenkins/config.xml.j2
0 → 100644
View file @
960a1080
<?xml version='1.0' encoding='UTF-8'?>
<project>
<actions/>
<description></description>
<keepDependencies>
false
</keepDependencies>
<properties/>
<scm
class=
"hudson.scm.NullSCM"
/>
<canRoam>
true
</canRoam>
<disabled>
false
</disabled>
<blockBuildWhenDownstreamBuilding>
false
</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>
false
</blockBuildWhenUpstreamBuilding>
<triggers>
<hudson.triggers.TimerTrigger>
<spec>
@daily
</spec>
</hudson.triggers.TimerTrigger>
</triggers>
<concurrentBuild>
false
</concurrentBuild>
<builders>
<hudson.tasks.Shell>
<command>
#!/bin/bash -x
# Delete all files in the workspace
rm -rf *
# Create a directory for the job definitions
mkdir -p $BUILD_ID/jobs
# Copy global configuration files into the workspace
cp $JENKINS_HOME/*.xml $BUILD_ID/
# Copy keys and secrets into the workspace
cp $JENKINS_HOME/identity.key $BUILD_ID/
cp $JENKINS_HOME/secret.key $BUILD_ID/
cp $JENKINS_HOME/secret.key.not-so-secret $BUILD_ID/
cp -r $JENKINS_HOME/secrets $BUILD_ID/
# Copy user configuration files into the workspace
#cp -r $JENKINS_HOME/users $BUILD_ID/
# Copy job definitions into the workspace
rsync -am --include=
'
config.xml
'
--include=
'
*/
'
--prune-empty-dirs --exclude=
'
*
'
$JENKINS_HOME/jobs/ $BUILD_ID/jobs/
# Create an archive from all copied files (since the S3 plugin cannot copy folders recursively)
tar czf $BUILD_ID.tar.gz $BUILD_ID/
# Remove the directory so only the archive gets copied to S3
rm -rf $BUILD_ID
</command>
</hudson.tasks.Shell>
</builders>
<publishers>
<hudson.plugins.s3.S3BucketPublisher
plugin=
"s3@0.5"
>
<profileName>
{{JENKINS_ADMIN_S3_PROFILE.name}}
</profileName>
<entries>
<hudson.plugins.s3.Entry>
<bucket>
edx-jenkins-backups/{{JENKINS_ADMIN_NAME}}
</bucket>
<sourceFile>
${BUILD_ID}.tar.gz
</sourceFile>
<storageClass>
STANDARD
</storageClass>
<selectedRegion>
US_EAST_1
</selectedRegion>
</hudson.plugins.s3.Entry>
</entries>
<userMetadata/>
</hudson.plugins.s3.S3BucketPublisher>
</publishers>
<buildWrappers/>
</project>
playbooks/roles/jenkins_admin/templates/edx/var/jenkins/jobs/build-ami/config.xml.j2
0 → 100644
View file @
960a1080
<?xml version='1.0' encoding='UTF-8'?>
<project>
<actions/>
<description></description>
<keepDependencies>
false
</keepDependencies>
<properties>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.StringParameterDefinition>
<name>
play
</name>
<description></description>
<defaultValue></defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>
deployment
</name>
<description></description>
<defaultValue></defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>
environment
</name>
<description></description>
<defaultValue></defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>
release_id
</name>
<description></description>
<defaultValue></defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.TextParameterDefinition>
<name>
refs
</name>
<description></description>
<defaultValue></defaultValue>
</hudson.model.TextParameterDefinition>
<hudson.model.TextParameterDefinition>
<name>
vars
</name>
<description></description>
<defaultValue></defaultValue>
</hudson.model.TextParameterDefinition>
<hudson.model.PasswordParameterDefinition>
<name>
mongo_uri
</name>
<description></description>
<defaultValue>
Y56UKJlT3WFThRJmUNxvNmW0y5RFvMj3XeWs/b9LlL6UlOuhsVC2COm1h2fBWuiyGS8wKx4fTnj7DY/7InIAaLbaZkVtIrgxtua5MpRZSxo=
</defaultValue>
</hudson.model.PasswordParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>
configuration
</name>
<description>
The GITREF of configuration to use.
</description>
<defaultValue></defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>
configuration_secure
</name>
<description>
The GITREF of configuration-secure repository to use.
</description>
<defaultValue></defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>
base_ami
</name>
<description></description>
<defaultValue></defaultValue>
</hudson.model.StringParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
<com.sonyericsson.rebuild.RebuildSettings
plugin=
"rebuild@1.20"
>
<autoRebuild>
false
</autoRebuild>
</com.sonyericsson.rebuild.RebuildSettings>
</properties>
<scm
class=
"org.jenkinsci.plugins.multiplescms.MultiSCM"
plugin=
"multiple-scms@0.2"
>
<scms>
<hudson.plugins.git.GitSCM
plugin=
"git@1.5.0"
>
<configVersion>
2
</configVersion>
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<name></name>
<refspec></refspec>
<url>
{{JENKINS_ADMIN_CONFIGURATION_REPO}}
</url>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>
*/master
</name>
</hudson.plugins.git.BranchSpec>
</branches>
<disableSubmodules>
false
</disableSubmodules>
<recursiveSubmodules>
false
</recursiveSubmodules>
<doGenerateSubmoduleConfigurations>
false
</doGenerateSubmoduleConfigurations>
<authorOrCommitter>
false
</authorOrCommitter>
<clean>
false
</clean>
<wipeOutWorkspace>
false
</wipeOutWorkspace>
<pruneBranches>
false
</pruneBranches>
<remotePoll>
false
</remotePoll>
<ignoreNotifyCommit>
false
</ignoreNotifyCommit>
<useShallowClone>
false
</useShallowClone>
<abortIfNoNewRevs>
false
</abortIfNoNewRevs>
<cutoffHours></cutoffHours>
<buildChooser
class=
"hudson.plugins.git.util.DefaultBuildChooser"
/>
<gitTool>
Default
</gitTool>
<submoduleCfg
class=
"list"
/>
<relativeTargetDir>
configuration
</relativeTargetDir>
<reference></reference>
<excludedRegions></excludedRegions>
<excludedUsers></excludedUsers>
<gitConfigName></gitConfigName>
<gitConfigEmail></gitConfigEmail>
<skipTag>
true
</skipTag>
<includedRegions></includedRegions>
<scmName>
configuration
</scmName>
</hudson.plugins.git.GitSCM>
<hudson.plugins.git.GitSCM
plugin=
"git@1.5.0"
>
<configVersion>
2
</configVersion>
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<name></name>
<refspec></refspec>
<url>
{{JENKINS_ADMIN_CONFIGURATION_SECURE_REPO}}
</url>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>
*/master
</name>
</hudson.plugins.git.BranchSpec>
</branches>
<disableSubmodules>
false
</disableSubmodules>
<recursiveSubmodules>
false
</recursiveSubmodules>
<doGenerateSubmoduleConfigurations>
false
</doGenerateSubmoduleConfigurations>
<authorOrCommitter>
false
</authorOrCommitter>
<clean>
false
</clean>
<wipeOutWorkspace>
false
</wipeOutWorkspace>
<pruneBranches>
false
</pruneBranches>
<remotePoll>
false
</remotePoll>
<ignoreNotifyCommit>
false
</ignoreNotifyCommit>
<useShallowClone>
false
</useShallowClone>
<abortIfNoNewRevs>
false
</abortIfNoNewRevs>
<cutoffHours></cutoffHours>
<buildChooser
class=
"hudson.plugins.git.util.DefaultBuildChooser"
/>
<gitTool>
Default
</gitTool>
<submoduleCfg
class=
"list"
/>
<relativeTargetDir>
configuration-secure
</relativeTargetDir>
<reference></reference>
<excludedRegions></excludedRegions>
<excludedUsers></excludedUsers>
<gitConfigName></gitConfigName>
<gitConfigEmail></gitConfigEmail>
<skipTag>
true
</skipTag>
<includedRegions></includedRegions>
<scmName>
configuration-secure
</scmName>
</hudson.plugins.git.GitSCM>
</scms>
</scm>
<canRoam>
true
</canRoam>
<disabled>
false
</disabled>
<blockBuildWhenDownstreamBuilding>
false
</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>
false
</blockBuildWhenUpstreamBuilding>
<authToken>
MULTIPASS
</authToken>
<triggers/>
<concurrentBuild>
true
</concurrentBuild>
<builders>
<hudson.tasks.Shell>
<command>
#!/bin/bash -x
if [[(
"
$play
"
==
""
)]]; then
echo
"
No Play Specified. Nothing to Do.
"
exit 0
fi
if [ ! -d $WORKSPACE/virtualenv ]; then
virtualenv --system-site-packages $WORKSPACE/virtualenv
fi
export PYTHONUNBUFFERED=1
export PIP_DOWNLOAD_CACHE=$WORKSPACE/pip-cache
. $WORKSPACE/virtualenv/bin/activate
cd configuration
pip install -r requirements.txt
cd util/vpc-tools/
echo
"
$refs
"
>
/var/tmp/$BUILD_ID-refs.yml
cat /var/tmp/$BUILD_ID-refs.yml
echo
"
$vars
"
>
/var/tmp/$BUILD_ID-extra-vars.yml
cat /var/tmp/$BUILD_ID-extra-vars.yml
python -u abbey.py -p $play -t c1.medium -d $deployment -e $environment -i {{jenkins_home}}/.ssh/id_rsa -b $base_ami --vars /var/tmp/$BUILD_ID-extra-vars.yml --refs /var/tmp/$BUILD_ID-refs.yml -j $release_id --mongo-uri $mongo_uri --mongo-deployment-collection $deployment --mongo-db devops --configuration-version $configuration --configuration-secure-version $configuration_secure -k {{JENKINS_ADMIN_EC2_KEY}} --configuration-secure-repo
"
{{JENKINS_ADMIN_CONFIGURATION_SECURE_REPO}}
"
</command>
</hudson.tasks.Shell>
<hudson.tasks.Shell>
<command>
#!/bin/bash -x
if [[(
"
$play
"
==
""
)]]; then
echo
"
No Play Specified. Nothing to Do.
"
exit 0
fi
rm /var/tmp/$BUILD_ID-extra-vars.yml
rm /var/tmp/$BUILD_ID-refs.yml
</command>
</hudson.tasks.Shell>
</builders>
<publishers/>
</project>
playbooks/roles/jenkins_admin/templates/edx/var/jenkins/jobs/prepare-edxapp/config.xml.j2
0 → 100644
View file @
960a1080
<?xml version='1.0' encoding='UTF-8'?>
<project>
<actions/>
<description></description>
<keepDependencies>
false
</keepDependencies>
<properties>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.StringParameterDefinition>
<name>
EDX_PLATFORM_REF
</name>
<description>
A git hash only.
</description>
<defaultValue></defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>
EDXAPP_THEME_REF
</name>
<description>
A git hash only.
</description>
<defaultValue></defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>
CONFIGURATION_SECURE_REF
</name>
<description></description>
<defaultValue>
origin/master
</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>
CONFIGURATION_REF
</name>
<description></description>
<defaultValue>
origin/master
</defaultValue>
</hudson.model.StringParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
<com.sonyericsson.rebuild.RebuildSettings
plugin=
"rebuild@1.20"
>
<autoRebuild>
false
</autoRebuild>
</com.sonyericsson.rebuild.RebuildSettings>
</properties>
<scm
class=
"org.jenkinsci.plugins.multiplescms.MultiSCM"
plugin=
"multiple-scms@0.2"
>
<scms>
<hudson.plugins.git.GitSCM
plugin=
"git@1.5.0"
>
<configVersion>
2
</configVersion>
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<name></name>
<refspec></refspec>
<url>
{{JENKINS_ADMIN_CONFIGURATION_REPO}}
</url>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>
${CONFIGURATION_REF}
</name>
</hudson.plugins.git.BranchSpec>
</branches>
<disableSubmodules>
false
</disableSubmodules>
<recursiveSubmodules>
false
</recursiveSubmodules>
<doGenerateSubmoduleConfigurations>
false
</doGenerateSubmoduleConfigurations>
<authorOrCommitter>
false
</authorOrCommitter>
<clean>
false
</clean>
<wipeOutWorkspace>
false
</wipeOutWorkspace>
<pruneBranches>
false
</pruneBranches>
<remotePoll>
false
</remotePoll>
<ignoreNotifyCommit>
false
</ignoreNotifyCommit>
<useShallowClone>
false
</useShallowClone>
<abortIfNoNewRevs>
false
</abortIfNoNewRevs>
<cutoffHours></cutoffHours>
<buildChooser
class=
"hudson.plugins.git.util.DefaultBuildChooser"
/>
<gitTool>
Default
</gitTool>
<submoduleCfg
class=
"list"
/>
<relativeTargetDir>
configuration
</relativeTargetDir>
<reference></reference>
<excludedRegions></excludedRegions>
<excludedUsers></excludedUsers>
<gitConfigName></gitConfigName>
<gitConfigEmail></gitConfigEmail>
<skipTag>
true
</skipTag>
<includedRegions></includedRegions>
<scmName>
configuration
</scmName>
</hudson.plugins.git.GitSCM>
<hudson.plugins.git.GitSCM
plugin=
"git@1.5.0"
>
<configVersion>
2
</configVersion>
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<name></name>
<refspec></refspec>
<url>
{{JENKINS_ADMIN_CONFIGURATION_SECURE_REPO}}
</url>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>
${CONFIGURATION_SECURE_REF}
</name>
</hudson.plugins.git.BranchSpec>
</branches>
<disableSubmodules>
false
</disableSubmodules>
<recursiveSubmodules>
false
</recursiveSubmodules>
<doGenerateSubmoduleConfigurations>
false
</doGenerateSubmoduleConfigurations>
<authorOrCommitter>
false
</authorOrCommitter>
<clean>
false
</clean>
<wipeOutWorkspace>
false
</wipeOutWorkspace>
<pruneBranches>
false
</pruneBranches>
<remotePoll>
false
</remotePoll>
<ignoreNotifyCommit>
false
</ignoreNotifyCommit>
<useShallowClone>
false
</useShallowClone>
<abortIfNoNewRevs>
false
</abortIfNoNewRevs>
<cutoffHours></cutoffHours>
<buildChooser
class=
"hudson.plugins.git.util.DefaultBuildChooser"
/>
<gitTool>
Default
</gitTool>
<submoduleCfg
class=
"list"
/>
<relativeTargetDir>
configuration-secure
</relativeTargetDir>
<reference></reference>
<excludedRegions></excludedRegions>
<excludedUsers></excludedUsers>
<gitConfigName></gitConfigName>
<gitConfigEmail></gitConfigEmail>
<skipTag>
true
</skipTag>
<includedRegions></includedRegions>
<scmName>
configuration-secure
</scmName>
</hudson.plugins.git.GitSCM>
</scms>
</scm>
<canRoam>
true
</canRoam>
<disabled>
false
</disabled>
<blockBuildWhenDownstreamBuilding>
true
</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>
false
</blockBuildWhenUpstreamBuilding>
<triggers/>
<concurrentBuild>
false
</concurrentBuild>
<builders>
<hudson.tasks.Shell>
<command>
#!/bin/bash -x
vars=
if [[(
"
$EDX_PLATFORM_REF
"
==
""
) || (
"
$EDXAPP_THEME_REF
"
==
""
)]]; then
echo
"
Need to define both EDX_PLATFORM_REF and EDXAPP_THEME_REF
"
exit 1
fi
if [ ! -d $WORKSPACE/virtualenv ]; then
virtualenv --system-site-packages $WORKSPACE/virtualenv
fi
export PYTHONUNBUFFERED=1
export PIP_DOWNLOAD_CACHE=$WORKSPACE/pip-cache
. $WORKSPACE/virtualenv/bin/activate
cd configuration
pip install -r requirements.txt
cd ..
python configuration/util/jenkins/stage_release.py -c configuration-secure/jenkins/prepare_release.yml -u
"
$BUILD_USER
"
-d {{COMMON_DEPLOYMENT}} -r $BUILD_NUMBER edxapp_theme=$EDXAPP_THEME_REF edx-platform=$EDX_PLATFORM_REF
</command>
</hudson.tasks.Shell>
</builders>
<publishers>
<hudson.tasks.BuildTrigger>
<childProjects>
build-ami
</childProjects>
<threshold>
<name>
SUCCESS
</name>
<ordinal>
0
</ordinal>
<color>
BLUE
</color>
<completeBuild>
true
</completeBuild>
</threshold>
</hudson.tasks.BuildTrigger>
</publishers>
</project>
playbooks/roles/jenkins_admin/templates/edx/var/jenkins/jobs/prepare-forum/config.xml.j2
0 → 100644
View file @
960a1080
<?xml version='1.0' encoding='UTF-8'?>
<project>
<actions/>
<description></description>
<keepDependencies>
false
</keepDependencies>
<properties>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.StringParameterDefinition>
<name>
FORUM_REF
</name>
<description>
A git hash only.
</description>
<defaultValue></defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>
CONFIGURATION_SECURE_REF
</name>
<description></description>
<defaultValue>
origin/master
</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>
CONFIGURATION_REF
</name>
<description></description>
<defaultValue>
origin/master
</defaultValue>
</hudson.model.StringParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
<com.sonyericsson.rebuild.RebuildSettings
plugin=
"rebuild@1.20"
>
<autoRebuild>
false
</autoRebuild>
</com.sonyericsson.rebuild.RebuildSettings>
</properties>
<scm
class=
"org.jenkinsci.plugins.multiplescms.MultiSCM"
plugin=
"multiple-scms@0.2"
>
<scms>
<hudson.plugins.git.GitSCM
plugin=
"git@1.5.0"
>
<configVersion>
2
</configVersion>
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<name></name>
<refspec></refspec>
<url>
{{JENKINS_ADMIN_CONFIGURATION_REPO}}
</url>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>
${CONFIGURATION_REF}
</name>
</hudson.plugins.git.BranchSpec>
</branches>
<disableSubmodules>
false
</disableSubmodules>
<recursiveSubmodules>
false
</recursiveSubmodules>
<doGenerateSubmoduleConfigurations>
false
</doGenerateSubmoduleConfigurations>
<authorOrCommitter>
false
</authorOrCommitter>
<clean>
false
</clean>
<wipeOutWorkspace>
false
</wipeOutWorkspace>
<pruneBranches>
false
</pruneBranches>
<remotePoll>
false
</remotePoll>
<ignoreNotifyCommit>
false
</ignoreNotifyCommit>
<useShallowClone>
false
</useShallowClone>
<abortIfNoNewRevs>
false
</abortIfNoNewRevs>
<cutoffHours></cutoffHours>
<buildChooser
class=
"hudson.plugins.git.util.DefaultBuildChooser"
/>
<gitTool>
Default
</gitTool>
<submoduleCfg
class=
"list"
/>
<relativeTargetDir>
configuration
</relativeTargetDir>
<reference></reference>
<excludedRegions></excludedRegions>
<excludedUsers></excludedUsers>
<gitConfigName></gitConfigName>
<gitConfigEmail></gitConfigEmail>
<skipTag>
true
</skipTag>
<includedRegions></includedRegions>
<scmName>
configuration
</scmName>
</hudson.plugins.git.GitSCM>
<hudson.plugins.git.GitSCM
plugin=
"git@1.5.0"
>
<configVersion>
2
</configVersion>
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<name></name>
<refspec></refspec>
<url>
{{JENKINS_ADMIN_CONFIGURATION_SECURE_REPO}}
</url>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>
${CONFIGURATION_SECURE_REF}
</name>
</hudson.plugins.git.BranchSpec>
</branches>
<disableSubmodules>
false
</disableSubmodules>
<recursiveSubmodules>
false
</recursiveSubmodules>
<doGenerateSubmoduleConfigurations>
false
</doGenerateSubmoduleConfigurations>
<authorOrCommitter>
false
</authorOrCommitter>
<clean>
false
</clean>
<wipeOutWorkspace>
false
</wipeOutWorkspace>
<pruneBranches>
false
</pruneBranches>
<remotePoll>
false
</remotePoll>
<ignoreNotifyCommit>
false
</ignoreNotifyCommit>
<useShallowClone>
false
</useShallowClone>
<abortIfNoNewRevs>
false
</abortIfNoNewRevs>
<cutoffHours></cutoffHours>
<buildChooser
class=
"hudson.plugins.git.util.DefaultBuildChooser"
/>
<gitTool>
Default
</gitTool>
<submoduleCfg
class=
"list"
/>
<relativeTargetDir>
configuration-secure
</relativeTargetDir>
<reference></reference>
<excludedRegions></excludedRegions>
<excludedUsers></excludedUsers>
<gitConfigName></gitConfigName>
<gitConfigEmail></gitConfigEmail>
<skipTag>
true
</skipTag>
<includedRegions></includedRegions>
<scmName>
configuration-secure
</scmName>
</hudson.plugins.git.GitSCM>
</scms>
</scm>
<canRoam>
true
</canRoam>
<disabled>
false
</disabled>
<blockBuildWhenDownstreamBuilding>
true
</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>
false
</blockBuildWhenUpstreamBuilding>
<triggers/>
<concurrentBuild>
false
</concurrentBuild>
<builders>
<hudson.tasks.Shell>
<command>
#!/bin/bash -x
vars=
if [[(
"
$FORUM_REF
"
==
""
)]]; then
echo
"
Need to define FORUM_REF
"
exit 1
fi
if [ ! -d $WORKSPACE/virtualenv ]; then
virtualenv --system-site-packages $WORKSPACE/virtualenv
fi
export PYTHONUNBUFFERED=1
export PIP_DOWNLOAD_CACHE=$WORKSPACE/pip-cache
. $WORKSPACE/virtualenv/bin/activate
cd configuration
pip install -r requirements.txt
cd ..
python configuration/util/jenkins/stage_release.py -c configuration-secure/jenkins/prepare_release.yml -u
"
$BUILD_USER
"
-d {{COMMON_DEPLOYMENT}} -r $BUILD_NUMBER forum=$FORUM_REF
</command>
</hudson.tasks.Shell>
</builders>
<publishers>
<hudson.tasks.BuildTrigger>
<childProjects>
build-ami
</childProjects>
<threshold>
<name>
SUCCESS
</name>
<ordinal>
0
</ordinal>
<color>
BLUE
</color>
<completeBuild>
true
</completeBuild>
</threshold>
</hudson.tasks.BuildTrigger>
</publishers>
</project>
playbooks/roles/jenkins_master/tasks/main.yml
View file @
960a1080
...
@@ -51,6 +51,11 @@
...
@@ -51,6 +51,11 @@
notify
:
notify
:
-
restart Jenkins
-
restart Jenkins
# Using this instead of the user module because the user module
# fails if the directory exists.
-
name
:
set home directory for jenkins user
shell
:
usermod -d {{jenkins_home}} {{jenkins_user}}
-
name
:
make plugins directory
-
name
:
make plugins directory
sudo_user
:
jenkins
sudo_user
:
jenkins
shell
:
mkdir -p {{ jenkins_home }}/plugins
shell
:
mkdir -p {{ jenkins_home }}/plugins
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment