Skip to content
Permalink
Browse files

Initial setup for grouper appliance build.

  • Loading branch information
Mason Packard
Mason Packard committed Sep 6, 2016
1 parent 13ecc09 commit b716982baf2b0ca5dc0d3d6545a03bc6576744e2
Showing with 143 additions and 0 deletions.
  1. +61 −0 Jenkinsfile
  2. +82 −0 grouper-appliance.json
@@ -119,6 +119,67 @@ if (BRANCH_TEST=="shibboleth-production"){

}

catch (err) {
currentBuild.result = "FAILURE"

slackSend color: 'danger', message: "BUILD ERROR: There was a problem with Comanage Appliance. ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL} |Open>) \n\n ${err}"

throw err
}
}
} else if (BRANCH_TEST=="grouper-production") {
node('packer') {
currentBuild.result = "SUCCESS"

try {
stage 'Cleanup & Setup '
sh 'rm -rf output-grouper-*'
sh 'rm -rf "/Users/levvel/VirtualBox VMs/grouper-appliance-*"'
sh 'rm -rf builds'
sh 'mkdir -p builds'

withCredentials([[$class: 'FileBinding', credentialsId: 'our-aws-config', variable: 'FILE']]) {
ws {
sh 'mkdir -p ~/.aws'
sh 'cp $FILE ~/.aws/config'
}
}

withCredentials([[$class: 'FileBinding', credentialsId: 'our-aws-credentials', variable: 'FILE']]) {
ws {
sh 'mkdir -p ~/.aws'
sh 'cp $FILE ~/.aws/credentials'
}
}

stage 'Checkout'

checkout scm

stage 'Acquire ansible-playbooks'

sh 'mkdir -p ansible-playbooks'
dir('ansible-playbooks'){
git([ url: "https://github.internet2.edu/docker/ansible-playbooks.git",
branch: "grouper-production", credentialsId: "jenkins-github-access-token" ])
}

stage 'Validate'

sh '/usr/local/bin/packer validate grouper-appliance.json'

stage 'Build Appliance - Grouper'

sh '/usr/local/bin/packer build grouper-appliance.json'

stage 'Sync appliances to S3 bucket'

sh 'aws s3 sync builds s3://internet2-appliance-us-west-1'

slackSend color: 'good', message: "BUILD SUCCESS: Comanage Appliance build success. ${env.JOB_NAME} ${env.BUILD_NUMBER} (<${env.BUILD_URL} |Open>)"

}

catch (err) {
currentBuild.result = "FAILURE"

@@ -0,0 +1,82 @@
{
"min_packer_version": "0.8.6",
"description": "Grouper appliance ",
"variables": {
"profile": "xfs",
"disk_size": "8192",
"memory": "6122",
"cpus": "2",
"ssh_username": "centos",
"ssh_password": "centos",
"region": "us-west-1",
"timestamper": "{{timestamp}}",
"outputfile_name": "grouper-appliance-centos7"
},
"provisioners": [
{
"type": "shell",
"execute_command": "echo 'centos' | {{.Vars}} sudo -S -E bash '{{.Path}}'",
"script": "scripts/ansible.sh"
},
{
"type": "ansible-local",
"playbook_dir": "ansible-playbooks",
"playbook_file": "ansible-playbooks/grouper-appliance-vbox.yml"
},
{
"type": "shell",
"execute_command": "echo 'centos' | {{.Vars}} sudo -S -E bash '{{.Path}}'",
"script": "scripts/cleanup.sh"
}
],
"builders": [
{
"type": "virtualbox-iso",
"name": "grouper-appliance-centos7",
"vm_name": "grouper-appliance-centos7-{{user `profile`}}",
"headless": true,
"guest_os_type": "RedHat_64",
"disk_size": "{{user `disk_size`}}",
"vboxmanage": [
["modifyvm", "{{.Name}}", "--memory", "{{user `memory`}}"],
["modifyvm", "{{.Name}}", "--cpus", "{{user `cpus`}}"]
],
"iso_url": "http://mirror.vcu.edu/pub/gnu+linux/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso",
"iso_checksum": "f90e4d28fa377669b2db16cbcb451fcb9a89d2460e3645993e30e137ac37d284",
"iso_checksum_type": "sha256",
"http_directory": "http",
"boot_command": ["<tab> text ks=http://{{.HTTPIP}}:{{.HTTPPort}}/ks-{{user `profile`}}.cfg<enter><wait>"],
"boot_wait": "10s",
"ssh_username": "{{user `ssh_username`}}",
"ssh_password": "{{user `ssh_password`}}",
"ssh_port": 22,
"ssh_wait_timeout": "10000s",
"guest_additions_mode": "disable",
"shutdown_command": "sudo -S shutdown -P now",
"output_directory": "output-grouper-{{user `profile`}}",
"format": "ova"
}
],
"post-processors": [
{
"type": "compress",
"compression_level": "9",
"output": "builds/{{user `outputfile_name`}}-ova-{{user `timestamper`}}.tar"
},
{
"type": "vagrant",
"compression_level": "9",
"output": "builds/{{user `outputfile_name`}}-vagrant-{{user `timestamper`}}.tar"
},
{
"type": "amazon-import",
"access_key": "{{user `aws_access_key`}}",
"secret_key": "{{user `aws_secret_key`}}",
"region": "{{user `region`}}",
"s3_bucket_name": "internet2-ami-import-us-west-1",
"tags": {
"Description": "packer amazon-import-grouper-appliance {{user `timestamper`}}"
}
}
]
}

0 comments on commit b716982

Please sign in to comment.
You can’t perform that action at this time.