+++ /dev/null
-*~
-.vagrant
-Vagrantfile
\ No newline at end of file
+++ /dev/null
----
-placeholder: 'placeholder'
-port: 8080
-# plugins:
-# - 'ldap'
-# - 'github'
-# - 'translation'
-# - 'preSCMbuildstep'
-# - 'gravatar'
+++ /dev/null
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.9 (GNU/Linux)
-
-mQGiBEmFQG0RBACXScOxb6BTV6rQE/tcJopAEWsdvmE0jNIRWjDDzB7HovX6Anrq
-n7+Vq4spAReSFbBVaYiiOx2cGDymj2dyx2i9NAI/9/cQXJOU+RPdDzHVlO1Edksp
-5rKn0cGPWY5sLxRf8s/tO5oyKgwCVgTaB5a8gBHaoGms3nNC4YYf+lqlpwCgjbti
-3u1iMIx6Rs+dG0+xw1oi5FUD/2tLJMx7vCUQHhPRupeYFPoD8vWpcbGb5nHfHi4U
-8/x4qZspAIwvXtGw0UBHildGpqe9onp22Syadn/7JgMWhHoFw5Ke/rTMlxREL7pa
-TiXuagD2G84tjJ66oJP1FigslJzrnG61y85V7THL61OFqDg6IOP4onbsdqHby4VD
-zZj9A/9uQxIn5250AGLNpARStAcNPJNJbHOQuv0iF3vnG8uO7/oscB0TYb8/juxr
-hs9GdSN0U0BxENR+8KWy5lttpqLMKlKRknQYy34UstQiyFgAQ9Epncu9uIbVDgWt
-y7utnqXN033EyYkcWx5EhLAgHkC7wSzeSWABV3JSXN7CeeOif7QiS29oc3VrZSBL
-YXdhZ3VjaGkgPGtrQGtvaHN1a2Uub3JnPohjBBMRAgAjAhsDBgsJCAcDAgQVAggD
-BBYCAwECHgECF4AFAko/7vYCGQEACgkQm30y8tUFguabhgCgi54IQR4rpJZ/uUHe
-ZB879zUWTQwAniQDBO+Zly7Fsvm0Mcvqvl02UzxCtC1Lb2hzdWtlIEthd2FndWNo
-aSA8a29oc3VrZS5rYXdhZ3VjaGlAc3VuLmNvbT6IYAQTEQIAIAUCSj/qbQIbAwYL
-CQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEJt9MvLVBYLm38gAoIGR2+TQeJaCeEa8
-CQhZYzDoiJkQAJ0cpmD+0VA+leOAr5LEccNVd70Z/dHNy83JARAAAQEAAAAAAAAA
-AAAAAAD/2P/gABBKRklGAAEBAQBgAGAAAP/hAGBFeGlmAABJSSoACAAAAAQAMQEC
-ABkAAAA+AAAAEFEBAAEAAAABQ5AAEVEEAAEAAAASCwAAElEEAAEAAAASCwAAAAAA
-AE1hY3JvbWVkaWEgRmlyZXdvcmtzIDQuMAAA/9sAQwAIBgYHBgUIBwcHCQkICgwU
-DQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy
-/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy
-MjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgArgCWAwEiAAIRAQMRAf/EAB8AAAEF
-AQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQEC
-AwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkq
-NDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqS
-k5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk
-5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkK
-C//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGx
-wQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFla
-Y2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2
-t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQAC
-EQMRAD8A9wEj/wB9vzpfMf8Avt+dRinCpGSeY398/nS72/vH86YKBQBJvb+8fzpd
-7f3j+dMFLQA/e394/nS7j6n86ZSimA7cfU07cfU1HnFOFADtx9aXJ9TTKUUxD8n1
-pc+9Mp1AC5ozSUtAC0maKKADNFJ2ooAoCnCmilzWZQ6lFJSimAopaQUtAC54rOvN
-dsLCTZPPGrdwXAry/wCKHxXfRppND0Mq16Bie5PIi9lHdv5V8/X+rXt/O8tzcyyy
-MclnYkk0avYdl1PqPxT8VtH8NwqwzdXEuSkaHoB61wjftCXhlzHosBjHZpSCa8PW
-O7uhuAkcDueaaYbhOqMMe1L5lcvWx9U+FPjJ4f8AEU0dpdhtLvXOFWdgY3PoH6fg
-cV6MrZGa+EklIOJOPqK9i+G3xem0TytI8QSSXGnHCQXJO57f2Pqn6indrclq+x9G
-5pwNVoLiO4hSaGRZIpFDKynIYHuKmBqyB+aWmg0uaAFopKKAFoozRQBQFLSUorMo
-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
-=cjdq
------END PGP PUBLIC KEY BLOCK-----
+++ /dev/null
-# {{ ansible_managed }}
-
-server {
-
- listen 80;
- # FIXME
- #server_name jenkins.domain.tld;
-
- location / {
-
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Forwarded-Proto $scheme;
-
- # Fix the "It appears that your reverse proxy set up is broken" error.
- proxy_pass http://127.0.0.1:8080;
- proxy_read_timeout 90;
-
- # FIXME
- #proxy_redirect http://127.0.0.1:8080 https://jenkins.domain.tld;
- }
- }
+++ /dev/null
-# {{ ansible_managed }}
-
-[jenkins]
-name=Jenkins
-baseurl=http://pkg.jenkins-ci.org/redhat
-gpgcheck=1
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?><project>
- <actions/>
- <description><!-- Managed by Jenkins Job Builder --></description>
- <keepDependencies>false</keepDependencies>
- <disabled>false</disabled>
- <displayName>Jenkins Job Builder</displayName>
- <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
- <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
- <concurrentBuild>true</concurrentBuild>
- <quietPeriod>5</quietPeriod>
- <assignedNode>trusty</assignedNode>
- <canRoam>false</canRoam>
- <scmCheckoutRetryCount>3</scmCheckoutRetryCount>
- <properties/>
- <scm class="hudson.plugins.git.GitSCM">
- <configVersion>2</configVersion>
- <userRemoteConfigs>
- <hudson.plugins.git.UserRemoteConfig>
- <name>origin</name>
- <refspec>+refs/heads/*:refs/remotes/origin/*</refspec>
- <url>https://github.com/ceph/ceph-build.git</url>
- </hudson.plugins.git.UserRemoteConfig>
- </userRemoteConfigs>
- <branches>
- <hudson.plugins.git.BranchSpec>
- <name>master</name>
- </hudson.plugins.git.BranchSpec>
- </branches>
- <excludedUsers/>
- <buildChooser class="hudson.plugins.git.util.DefaultBuildChooser"/>
- <disableSubmodules>false</disableSubmodules>
- <recursiveSubmodules>false</recursiveSubmodules>
- <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
- <authorOrCommitter>false</authorOrCommitter>
- <wipeOutWorkspace>true</wipeOutWorkspace>
- <pruneBranches>false</pruneBranches>
- <remotePoll>false</remotePoll>
- <gitTool>Default</gitTool>
- <submoduleCfg class="list"/>
- <relativeTargetDir/>
- <reference/>
- <gitConfigName/>
- <gitConfigEmail/>
- <skipTag>false</skipTag>
- <scmName/>
- <useShallowClone>false</useShallowClone>
- <ignoreNotifyCommit>false</ignoreNotifyCommit>
- <extensions>
- <hudson.plugins.git.extensions.impl.CheckoutOption>
- <timeout>20</timeout>
- </hudson.plugins.git.extensions.impl.CheckoutOption>
- <hudson.plugins.git.extensions.impl.WipeWorkspace/>
- </extensions>
- <browser class="hudson.plugins.git.browser.GithubWeb">
- <url>http://github.com/ceph/ceph-build.git</url>
- </browser>
- </scm>
- <triggers class="vector">
- <hudson.triggers.SCMTrigger>
- <spec>0 */3 * * *</spec>
- </hudson.triggers.SCMTrigger>
- </triggers>
- <builders>
- <hudson.tasks.Shell>
- <command>bash jjb/config/config</command>
- </hudson.tasks.Shell>
- </builders>
- <publishers/>
- <buildWrappers/>
-</project>
+++ /dev/null
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDI0tHxJQ7n+uMiLpsoR6CKAVd0xatgVQuqp/gmnGpZU0kE54a29vPNnEt7/aLitbfyhc57rrbHOT09H3ov74GZKkoVBSbMJUSsK3drbN+58wcuk+HK0htRewmwCfcfi9AkrVbyw6pbPXW/pbjxnxLep52fKmpJJnImZ5eHRV5le9OSAcLA1LHYR4y9R3IOrTp7jgpE205UxZi5OopAx7gkyTsmfydvmq4MjaSwbVOJ7aW/Fdt5FVxNJP3Zl/OrvDoo/1WovoRIDbVQH8JFpLikMSnCqtBVIHDeW6imAKl6dpn9Gf4FxD94+OcurhXo2p0pvSzC4Strg4d2Sxqh4wph jenkins-build
+++ /dev/null
-# Safe-restart Jenkins
-- name: restart jenkins
- sudo: yes
- command: java -jar {{ jenkins.cli_dest }} -s http://localhost:{{ port }} safe-restart
-
-- name: restart nginx
- sudo: yes
- action: service name=nginx state=restarted
- #command: service nginx restart
+++ /dev/null
----
-
-- name: Configure Jenkins Port
- lineinfile:
- dest: /etc/sysconfig/jenkins
- regexp: ^HTTP_PORT=
- line: HTTP_PORT={{port}}
- backrefs: yes
- register: config_changed
-
-- name: ensure TTY is disabled for admin user
- lineinfile:
- dest: /etc/sudoers
- state: present
- regexp: '^{{ ansible_ssh_user }} ALL\='
- regexp: '^Defaults requiretty'
- line: '#Defaults requiretty'
- validate: 'visudo -cf %s'
- backrefs: yes
-
-- name: ensure ssh user can sudo without prompts
- lineinfile:
- dest: /etc/sudoers
- state: present
- regexp: '^{{ ansible_ssh_user }} ALL\='
- line: '%{{ ansible_ssh_user }} ALL=(ALL) NOPASSWD:ALL'
- validate: 'visudo -cf %s'
- backrefs: yes
-
-- name: Configure Jenkins Prefix
- when: prefix is defined
- lineinfile:
- dest: /etc/sysconfig/jenkins
- regexp: ^PREFIX=
- line: PREFIX={{prefix}}
- backrefs: yes
-
-- name: Set the amount of RAM
- when: xmx is defined
- lineinfile:
- dest: /etc/sysconfig/jenkins
- regexp: ^JENKINS_JAVA_OPTIONS
- line: 'JENKINS_JAVA_OPTIONS="-Xmx{{xmx}}m -Djava.awt.headless=true"'
- backrefs: yes
-
-- name: Configure Jenkins E-mail
- when: email is defined
- template:
- src: hudson.tasks.Mailer.xml.j2
- dest: '{{ jenkins_lib }}/hudson.tasks.Mailer.xml'
- owner: jenkins
- group: jenkins
- mode: 0644
-
-- name: Tell SELinux that we should allow Nginx to talk to Jenkins
- seboolean: name=httpd_can_network_connect state=yes persistent=yes
-
-- name: copy JJB config file to {{ jenkins_jobs }}
- synchronize:
- src: jobs/jenkins-job-builder
- dest: '{{ jenkins_jobs }}'
- owner: no
- group: no
-
-- name: ensure correct ownership of {{ jenkins_jobs }}
- file:
- path: '{{ jenkins_jobs }}'
- state: directory
- owner: jenkins
- group: jenkins
- recurse: yes
- notify:
- - restart jenkins
-
-# Handle plugins
-- name: "{{ startup_delay_s | default(10) }}s delay while starting Jenkins"
- wait_for:
- host: localhost
- port: '{{ port }}'
- delay: '{{ startup_delay_s | default(10) }}'
- when: jenkins_install.changed or config_changed.changed
-
-- name: "Create Jenkins CLI destination directory: {{ jenkins_dest }}"
- file:
- path: '{{ jenkins_dest }}'
- state: directory
-
-- name: Get Jenkins CLI
- get_url:
- url: http://localhost:{{ port }}/jnlpJars/jenkins-cli.jar
- dest: '{{ jenkins.cli_dest }}'
- mode: 0440
- register: jenkins_local_cli
- until: "'OK' in jenkins_local_cli.msg or 'file already exists' in jenkins_local_cli.msg"
- #retries: 5
- #delay: 10
- ignore_errors: true
-
-- name: Get Jenkins updates
- get_url:
- url: http://updates.jenkins-ci.org/update-center.json
- dest: '{{ jenkins.updates_dest }}'
- thirsty: yes
- mode: 0440
- timeout: 30
- register: jenkins_updates
-
-- name: Update-center Jenkins
- shell: "cat {{ jenkins.updates_dest }} | sed '1d;$d' | curl -X POST -H 'Accept: application/json' -d @- http://localhost:{{ port }}/updateCenter/byId/default/postBack"
- when: jenkins_updates.changed
- notify:
- - 'restart jenkins'
-
-- name: create a jenkins-build user
- user:
- name: jenkins-build
- comment: "Jenkins Build Slave User"
-
-- name: Create .ssh directory
- file:
- path: /home/jenkins-build/.ssh
- state: directory
-
-- name: set the authorized keys '{{ playbook_dir }}/ansible-jenkins/files/ssh/keys/jenkins_build.pub'
- authorized_key:
- user: jenkins-build
- key: "{{ lookup('file', 'ssh/keys/jenkins_build.pub') }}"
- tags: fix
-
+++ /dev/null
----
-
-- name: epel-release install
- yum: name=epel-release
- state=present
-- name: Install dependencies
- yum: name={{ item }} state=installed
- with_items: jenkins.yum.dependencies
-
-- name: Enable Nginx service
- service: name=nginx enabled=yes state=started
+++ /dev/null
----
-- include: repo.yml
-
-- include: dependencies_yum.yml
-
-- include: nginx.yml
-
-- name: Install Jenkins
- yum: name=jenkins state=present
- register: jenkins_install
-
-- include: config.yml
-
-- include: plugins.yml
-
-- include: config.yml
+++ /dev/null
----
-- include: jenkins.yml tags=jenkins
+++ /dev/null
----
-
- - name: ensure sites-available for nginx
- file: path=/etc/nginx/sites-available state=directory
-
- - name: ensure sites-enable for nginx
- file: path=/etc/nginx/sites-enabled state=directory
-
- - name: remove default nginx site
- action: file path=/etc/nginx/sites-enabled/default state=absent
-
- - name: write nginx.conf
- action: template src=../templates/nginx.conf dest=/etc/nginx/nginx.conf
-
- - name: create nginx site config
- action: template src=../templates/jenkins.conf dest=/etc/nginx/sites-available/jenkins.conf
- notify:
- - restart nginx
-
- - name: link nginx config
- action: file src=/etc/nginx/sites-available/jenkins.conf dest=/etc/nginx/sites-enabled/jenkins.conf state=link
+++ /dev/null
----
-- name: List plugins
- shell: java -jar {{ jenkins.cli_dest }} -s http://localhost:{{ port }} list-plugins | cut -f 1 -d ' '
- when: plugins is defined
- register: plugins_installed
-
-- name: Install/update plugins
- shell: java -jar {{ jenkins.cli_dest }} -s http://localhost:{{ port }} install-plugin {{ item }}
- when: plugins_installed.changed and plugins_installed.stdout.find('{{ item }}') == -1
- with_items: plugins
- notify:
- - 'restart jenkins'
-
-- name: List plugins to be updated
- shell: java -jar {{ jenkins.cli_dest }} -s http://localhost:{{ port }} list-plugins | grep ')$' | cut -f 1 -d ' ' | sed ':a;N;$!ba;s/\n/ /g'
- register: plugins_updates
-
-- name: Update plugins
- shell: java -jar {{ jenkins.cli_dest }} -s http://localhost:{{ port }} install-plugin {{ item }}
- with_items: plugins_updates.stdout.split()
- when: plugins_updates.stdout != ''
- ignore_errors: yes
- notify:
- - 'restart jenkins'
+++ /dev/null
----
-- name: Install python-devel
- yum: name=python-devel state=present
-
-- name: Install python-pycurl
- yum: name=python-pycurl state=present
-
-- name: Add Jenkins GPG Key
- rpm_key: state=present key=https://jenkins-ci.org/redhat/jenkins-ci.org.key
-
-- name: Create the repo file for Jenkins
- copy: src=jenkins.repo
- dest=/etc/yum.repos.d/
- owner=root
- group=root
- mode=0644
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8'?>
-<hudson.tasks.Mailer_-DescriptorImpl plugin="mailer@1.11">
- <defaultSuffix>{{ email.default_email_suffix }}</defaultSuffix>
- <smtpHost>{{ email.smtp_host }}</smtpHost>
- <useSsl>{{ email.smtp_ssl }}</useSsl>
- <charset>UTF-8</charset>
-</hudson.tasks.Mailer_-DescriptorImpl>
+++ /dev/null
-# {{ ansible_managed }}
-
-server {
- listen 80;
-
- # FIXME
- server_name localhost;
-
- access_log /var/log/nginx/jenkins_access.log;
- error_log /var/log/nginx/jenkins_error.log;
-
- location / {
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Forwarded-Proto $scheme;
-
- proxy_pass http://127.0.0.1:8080;
- proxy_read_timeout 90;
-
- }
-}
+++ /dev/null
-# {{ ansible_managed }}
-user nginx;
-worker_processes {{ nginx_processor_count }};
-worker_rlimit_nofile 8192;
-
-pid /var/run/nginx.pid;
-
-events {
- worker_connections {{ nginx_connections }} ;
- # multi_accept on;
-}
-
-http {
-
- ##
- # Basic Settings
- ##
-
- #sendfile on;
- tcp_nopush on;
- tcp_nodelay on;
- keepalive_timeout 65;
- types_hash_max_size 2048;
- server_tokens off;
-
- # server_names_hash_bucket_size 64;
- # server_name_in_redirect off;
-
- include /etc/nginx/mime.types;
- default_type application/octet-stream;
-
- ##
- # Logging Settings
- ##
-
- access_log /var/log/nginx/access.log;
- error_log /var/log/nginx/error.log;
-
- ##
- # Gzip Settings
- ##
-
- gzip on;
- gzip_disable "msie6";
-
- # gzip_vary on;
- # gzip_proxied any;
- # gzip_comp_level 6;
- # gzip_buffers 16 8k;
- # gzip_http_version 1.1;
- # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
-
- ##
- # If HTTPS, then set a variable so it can be passed along.
- ##
-
- map $scheme $server_https {
- default off;
- https on;
- }
-
- ##
- # Virtual Host Configs
- ##
-
- include /etc/nginx/conf.d/*.conf;
- include /etc/nginx/sites-enabled/*;
-}
-
+++ /dev/null
----
-jenkins_dest: /opt/jenkins
-jenkins_lib: /var/lib/jenkins
-jenkins_jobs: '{{ jenkins_lib }}/jobs'
-jenkins:
- yum:
- #repo: 'deb http://pkg.jenkins-ci.org/debian binary/' # Jenkins repository
- dependencies: # Jenkins dependencies
- #- 'openjdk-7-jre'
- - 'java-1.7.0-openjdk'
- - 'git'
- - 'curl'
- - 'nginx'
- cli_dest: '{{ jenkins_dest }}/jenkins-cli.jar' # Jenkins CLI destination
- updates_dest: '{{ jenkins_dest }}/updates_jenkins.json' # Jenkins updates file
--- /dev/null
+*~
+.vagrant
+Vagrantfile
\ No newline at end of file
--- /dev/null
+---
+placeholder: 'placeholder'
+port: 8080
+# plugins:
+# - 'ldap'
+# - 'github'
+# - 'translation'
+# - 'preSCMbuildstep'
+# - 'gravatar'
--- /dev/null
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.9 (GNU/Linux)
+
+mQGiBEmFQG0RBACXScOxb6BTV6rQE/tcJopAEWsdvmE0jNIRWjDDzB7HovX6Anrq
+n7+Vq4spAReSFbBVaYiiOx2cGDymj2dyx2i9NAI/9/cQXJOU+RPdDzHVlO1Edksp
+5rKn0cGPWY5sLxRf8s/tO5oyKgwCVgTaB5a8gBHaoGms3nNC4YYf+lqlpwCgjbti
+3u1iMIx6Rs+dG0+xw1oi5FUD/2tLJMx7vCUQHhPRupeYFPoD8vWpcbGb5nHfHi4U
+8/x4qZspAIwvXtGw0UBHildGpqe9onp22Syadn/7JgMWhHoFw5Ke/rTMlxREL7pa
+TiXuagD2G84tjJ66oJP1FigslJzrnG61y85V7THL61OFqDg6IOP4onbsdqHby4VD
+zZj9A/9uQxIn5250AGLNpARStAcNPJNJbHOQuv0iF3vnG8uO7/oscB0TYb8/juxr
+hs9GdSN0U0BxENR+8KWy5lttpqLMKlKRknQYy34UstQiyFgAQ9Epncu9uIbVDgWt
+y7utnqXN033EyYkcWx5EhLAgHkC7wSzeSWABV3JSXN7CeeOif7QiS29oc3VrZSBL
+YXdhZ3VjaGkgPGtrQGtvaHN1a2Uub3JnPohjBBMRAgAjAhsDBgsJCAcDAgQVAggD
+BBYCAwECHgECF4AFAko/7vYCGQEACgkQm30y8tUFguabhgCgi54IQR4rpJZ/uUHe
+ZB879zUWTQwAniQDBO+Zly7Fsvm0Mcvqvl02UzxCtC1Lb2hzdWtlIEthd2FndWNo
+aSA8a29oc3VrZS5rYXdhZ3VjaGlAc3VuLmNvbT6IYAQTEQIAIAUCSj/qbQIbAwYL
+CQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEJt9MvLVBYLm38gAoIGR2+TQeJaCeEa8
+CQhZYzDoiJkQAJ0cpmD+0VA+leOAr5LEccNVd70Z/dHNy83JARAAAQEAAAAAAAAA
+AAAAAAD/2P/gABBKRklGAAEBAQBgAGAAAP/hAGBFeGlmAABJSSoACAAAAAQAMQEC
+ABkAAAA+AAAAEFEBAAEAAAABQ5AAEVEEAAEAAAASCwAAElEEAAEAAAASCwAAAAAA
+AE1hY3JvbWVkaWEgRmlyZXdvcmtzIDQuMAAA/9sAQwAIBgYHBgUIBwcHCQkICgwU
+DQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy
+/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy
+MjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgArgCWAwEiAAIRAQMRAf/EAB8AAAEF
+AQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQEC
+AwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkq
+NDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqS
+k5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk
+5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkK
+C//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGx
+wQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFla
+Y2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2
+t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQAC
+EQMRAD8A9wEj/wB9vzpfMf8Avt+dRinCpGSeY398/nS72/vH86YKBQBJvb+8fzpd
+7f3j+dMFLQA/e394/nS7j6n86ZSimA7cfU07cfU1HnFOFADtx9aXJ9TTKUUxD8n1
+pc+9Mp1AC5ozSUtAC0maKKADNFJ2ooAoCnCmilzWZQ6lFJSimAopaQUtAC54rOvN
+dsLCTZPPGrdwXAry/wCKHxXfRppND0Mq16Bie5PIi9lHdv5V8/X+rXt/O8tzcyyy
+MclnYkk0avYdl1PqPxT8VtH8NwqwzdXEuSkaHoB61wjftCXhlzHosBjHZpSCa8PW
+O7uhuAkcDueaaYbhOqMMe1L5lcvWx9U+FPjJ4f8AEU0dpdhtLvXOFWdgY3PoH6fg
+cV6MrZGa+EklIOJOPqK9i+G3xem0TytI8QSSXGnHCQXJO57f2Pqn6indrclq+x9G
+5pwNVoLiO4hSaGRZIpFDKynIYHuKmBqyB+aWmg0uaAFopKKAFoozRQBQFLSUorMo
+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
+=cjdq
+-----END PGP PUBLIC KEY BLOCK-----
--- /dev/null
+# {{ ansible_managed }}
+
+server {
+
+ listen 80;
+ # FIXME
+ #server_name jenkins.domain.tld;
+
+ location / {
+
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+
+ # Fix the "It appears that your reverse proxy set up is broken" error.
+ proxy_pass http://127.0.0.1:8080;
+ proxy_read_timeout 90;
+
+ # FIXME
+ #proxy_redirect http://127.0.0.1:8080 https://jenkins.domain.tld;
+ }
+ }
--- /dev/null
+# {{ ansible_managed }}
+
+[jenkins]
+name=Jenkins
+baseurl=http://pkg.jenkins-ci.org/redhat
+gpgcheck=1
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?><project>
+ <actions/>
+ <description><!-- Managed by Jenkins Job Builder --></description>
+ <keepDependencies>false</keepDependencies>
+ <disabled>false</disabled>
+ <displayName>Jenkins Job Builder</displayName>
+ <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
+ <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
+ <concurrentBuild>true</concurrentBuild>
+ <quietPeriod>5</quietPeriod>
+ <assignedNode>trusty</assignedNode>
+ <canRoam>false</canRoam>
+ <scmCheckoutRetryCount>3</scmCheckoutRetryCount>
+ <properties/>
+ <scm class="hudson.plugins.git.GitSCM">
+ <configVersion>2</configVersion>
+ <userRemoteConfigs>
+ <hudson.plugins.git.UserRemoteConfig>
+ <name>origin</name>
+ <refspec>+refs/heads/*:refs/remotes/origin/*</refspec>
+ <url>https://github.com/ceph/ceph-build.git</url>
+ </hudson.plugins.git.UserRemoteConfig>
+ </userRemoteConfigs>
+ <branches>
+ <hudson.plugins.git.BranchSpec>
+ <name>master</name>
+ </hudson.plugins.git.BranchSpec>
+ </branches>
+ <excludedUsers/>
+ <buildChooser class="hudson.plugins.git.util.DefaultBuildChooser"/>
+ <disableSubmodules>false</disableSubmodules>
+ <recursiveSubmodules>false</recursiveSubmodules>
+ <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
+ <authorOrCommitter>false</authorOrCommitter>
+ <wipeOutWorkspace>true</wipeOutWorkspace>
+ <pruneBranches>false</pruneBranches>
+ <remotePoll>false</remotePoll>
+ <gitTool>Default</gitTool>
+ <submoduleCfg class="list"/>
+ <relativeTargetDir/>
+ <reference/>
+ <gitConfigName/>
+ <gitConfigEmail/>
+ <skipTag>false</skipTag>
+ <scmName/>
+ <useShallowClone>false</useShallowClone>
+ <ignoreNotifyCommit>false</ignoreNotifyCommit>
+ <extensions>
+ <hudson.plugins.git.extensions.impl.CheckoutOption>
+ <timeout>20</timeout>
+ </hudson.plugins.git.extensions.impl.CheckoutOption>
+ <hudson.plugins.git.extensions.impl.WipeWorkspace/>
+ </extensions>
+ <browser class="hudson.plugins.git.browser.GithubWeb">
+ <url>http://github.com/ceph/ceph-build.git</url>
+ </browser>
+ </scm>
+ <triggers class="vector">
+ <hudson.triggers.SCMTrigger>
+ <spec>0 */3 * * *</spec>
+ </hudson.triggers.SCMTrigger>
+ </triggers>
+ <builders>
+ <hudson.tasks.Shell>
+ <command>bash jjb/config/config</command>
+ </hudson.tasks.Shell>
+ </builders>
+ <publishers/>
+ <buildWrappers/>
+</project>
--- /dev/null
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDI0tHxJQ7n+uMiLpsoR6CKAVd0xatgVQuqp/gmnGpZU0kE54a29vPNnEt7/aLitbfyhc57rrbHOT09H3ov74GZKkoVBSbMJUSsK3drbN+58wcuk+HK0htRewmwCfcfi9AkrVbyw6pbPXW/pbjxnxLep52fKmpJJnImZ5eHRV5le9OSAcLA1LHYR4y9R3IOrTp7jgpE205UxZi5OopAx7gkyTsmfydvmq4MjaSwbVOJ7aW/Fdt5FVxNJP3Zl/OrvDoo/1WovoRIDbVQH8JFpLikMSnCqtBVIHDeW6imAKl6dpn9Gf4FxD94+OcurhXo2p0pvSzC4Strg4d2Sxqh4wph jenkins-build
--- /dev/null
+# Safe-restart Jenkins
+- name: restart jenkins
+ sudo: yes
+ command: java -jar {{ jenkins.cli_dest }} -s http://localhost:{{ port }} safe-restart
+
+- name: restart nginx
+ sudo: yes
+ action: service name=nginx state=restarted
+ #command: service nginx restart
--- /dev/null
+---
+
+- name: Configure Jenkins Port
+ lineinfile:
+ dest: /etc/sysconfig/jenkins
+ regexp: ^HTTP_PORT=
+ line: HTTP_PORT={{port}}
+ backrefs: yes
+ register: config_changed
+
+- name: ensure TTY is disabled for admin user
+ lineinfile:
+ dest: /etc/sudoers
+ state: present
+ regexp: '^{{ ansible_ssh_user }} ALL\='
+ regexp: '^Defaults requiretty'
+ line: '#Defaults requiretty'
+ validate: 'visudo -cf %s'
+ backrefs: yes
+
+- name: ensure ssh user can sudo without prompts
+ lineinfile:
+ dest: /etc/sudoers
+ state: present
+ regexp: '^{{ ansible_ssh_user }} ALL\='
+ line: '%{{ ansible_ssh_user }} ALL=(ALL) NOPASSWD:ALL'
+ validate: 'visudo -cf %s'
+ backrefs: yes
+
+- name: Configure Jenkins Prefix
+ when: prefix is defined
+ lineinfile:
+ dest: /etc/sysconfig/jenkins
+ regexp: ^PREFIX=
+ line: PREFIX={{prefix}}
+ backrefs: yes
+
+- name: Set the amount of RAM
+ when: xmx is defined
+ lineinfile:
+ dest: /etc/sysconfig/jenkins
+ regexp: ^JENKINS_JAVA_OPTIONS
+ line: 'JENKINS_JAVA_OPTIONS="-Xmx{{xmx}}m -Djava.awt.headless=true"'
+ backrefs: yes
+
+- name: Configure Jenkins E-mail
+ when: email is defined
+ template:
+ src: hudson.tasks.Mailer.xml.j2
+ dest: '{{ jenkins_lib }}/hudson.tasks.Mailer.xml'
+ owner: jenkins
+ group: jenkins
+ mode: 0644
+
+- name: Tell SELinux that we should allow Nginx to talk to Jenkins
+ seboolean: name=httpd_can_network_connect state=yes persistent=yes
+
+- name: copy JJB config file to {{ jenkins_jobs }}
+ synchronize:
+ src: jobs/jenkins-job-builder
+ dest: '{{ jenkins_jobs }}'
+ owner: no
+ group: no
+
+- name: ensure correct ownership of {{ jenkins_jobs }}
+ file:
+ path: '{{ jenkins_jobs }}'
+ state: directory
+ owner: jenkins
+ group: jenkins
+ recurse: yes
+ notify:
+ - restart jenkins
+
+# Handle plugins
+- name: "{{ startup_delay_s | default(10) }}s delay while starting Jenkins"
+ wait_for:
+ host: localhost
+ port: '{{ port }}'
+ delay: '{{ startup_delay_s | default(10) }}'
+ when: jenkins_install.changed or config_changed.changed
+
+- name: "Create Jenkins CLI destination directory: {{ jenkins_dest }}"
+ file:
+ path: '{{ jenkins_dest }}'
+ state: directory
+
+- name: Get Jenkins CLI
+ get_url:
+ url: http://localhost:{{ port }}/jnlpJars/jenkins-cli.jar
+ dest: '{{ jenkins.cli_dest }}'
+ mode: 0440
+ register: jenkins_local_cli
+ until: "'OK' in jenkins_local_cli.msg or 'file already exists' in jenkins_local_cli.msg"
+ #retries: 5
+ #delay: 10
+ ignore_errors: true
+
+- name: Get Jenkins updates
+ get_url:
+ url: http://updates.jenkins-ci.org/update-center.json
+ dest: '{{ jenkins.updates_dest }}'
+ thirsty: yes
+ mode: 0440
+ timeout: 30
+ register: jenkins_updates
+
+- name: Update-center Jenkins
+ shell: "cat {{ jenkins.updates_dest }} | sed '1d;$d' | curl -X POST -H 'Accept: application/json' -d @- http://localhost:{{ port }}/updateCenter/byId/default/postBack"
+ when: jenkins_updates.changed
+ notify:
+ - 'restart jenkins'
+
+- name: create a jenkins-build user
+ user:
+ name: jenkins-build
+ comment: "Jenkins Build Slave User"
+
+- name: Create .ssh directory
+ file:
+ path: /home/jenkins-build/.ssh
+ state: directory
+
+- name: set the authorized keys '{{ playbook_dir }}/ansible-jenkins/files/ssh/keys/jenkins_build.pub'
+ authorized_key:
+ user: jenkins-build
+ key: "{{ lookup('file', 'ssh/keys/jenkins_build.pub') }}"
+ tags: fix
+
--- /dev/null
+---
+
+- name: epel-release install
+ yum: name=epel-release
+ state=present
+- name: Install dependencies
+ yum: name={{ item }} state=installed
+ with_items: jenkins.yum.dependencies
+
+- name: Enable Nginx service
+ service: name=nginx enabled=yes state=started
--- /dev/null
+---
+- include: repo.yml
+
+- include: dependencies_yum.yml
+
+- include: nginx.yml
+
+- name: Install Jenkins
+ yum: name=jenkins state=present
+ register: jenkins_install
+
+- include: config.yml
+
+- include: plugins.yml
+
+- include: config.yml
--- /dev/null
+---
+- include: jenkins.yml tags=jenkins
--- /dev/null
+---
+
+ - name: ensure sites-available for nginx
+ file: path=/etc/nginx/sites-available state=directory
+
+ - name: ensure sites-enable for nginx
+ file: path=/etc/nginx/sites-enabled state=directory
+
+ - name: remove default nginx site
+ action: file path=/etc/nginx/sites-enabled/default state=absent
+
+ - name: write nginx.conf
+ action: template src=../templates/nginx.conf dest=/etc/nginx/nginx.conf
+
+ - name: create nginx site config
+ action: template src=../templates/jenkins.conf dest=/etc/nginx/sites-available/jenkins.conf
+ notify:
+ - restart nginx
+
+ - name: link nginx config
+ action: file src=/etc/nginx/sites-available/jenkins.conf dest=/etc/nginx/sites-enabled/jenkins.conf state=link
--- /dev/null
+---
+- name: List plugins
+ shell: java -jar {{ jenkins.cli_dest }} -s http://localhost:{{ port }} list-plugins | cut -f 1 -d ' '
+ when: plugins is defined
+ register: plugins_installed
+
+- name: Install/update plugins
+ shell: java -jar {{ jenkins.cli_dest }} -s http://localhost:{{ port }} install-plugin {{ item }}
+ when: plugins_installed.changed and plugins_installed.stdout.find('{{ item }}') == -1
+ with_items: plugins
+ notify:
+ - 'restart jenkins'
+
+- name: List plugins to be updated
+ shell: java -jar {{ jenkins.cli_dest }} -s http://localhost:{{ port }} list-plugins | grep ')$' | cut -f 1 -d ' ' | sed ':a;N;$!ba;s/\n/ /g'
+ register: plugins_updates
+
+- name: Update plugins
+ shell: java -jar {{ jenkins.cli_dest }} -s http://localhost:{{ port }} install-plugin {{ item }}
+ with_items: plugins_updates.stdout.split()
+ when: plugins_updates.stdout != ''
+ ignore_errors: yes
+ notify:
+ - 'restart jenkins'
--- /dev/null
+---
+- name: Install python-devel
+ yum: name=python-devel state=present
+
+- name: Install python-pycurl
+ yum: name=python-pycurl state=present
+
+- name: Add Jenkins GPG Key
+ rpm_key: state=present key=https://jenkins-ci.org/redhat/jenkins-ci.org.key
+
+- name: Create the repo file for Jenkins
+ copy: src=jenkins.repo
+ dest=/etc/yum.repos.d/
+ owner=root
+ group=root
+ mode=0644
--- /dev/null
+<?xml version='1.0' encoding='UTF-8'?>
+<hudson.tasks.Mailer_-DescriptorImpl plugin="mailer@1.11">
+ <defaultSuffix>{{ email.default_email_suffix }}</defaultSuffix>
+ <smtpHost>{{ email.smtp_host }}</smtpHost>
+ <useSsl>{{ email.smtp_ssl }}</useSsl>
+ <charset>UTF-8</charset>
+</hudson.tasks.Mailer_-DescriptorImpl>
--- /dev/null
+# {{ ansible_managed }}
+
+server {
+ listen 80;
+
+ # FIXME
+ server_name localhost;
+
+ access_log /var/log/nginx/jenkins_access.log;
+ error_log /var/log/nginx/jenkins_error.log;
+
+ location / {
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+
+ proxy_pass http://127.0.0.1:8080;
+ proxy_read_timeout 90;
+
+ }
+}
--- /dev/null
+# {{ ansible_managed }}
+user nginx;
+worker_processes {{ nginx_processor_count }};
+worker_rlimit_nofile 8192;
+
+pid /var/run/nginx.pid;
+
+events {
+ worker_connections {{ nginx_connections }} ;
+ # multi_accept on;
+}
+
+http {
+
+ ##
+ # Basic Settings
+ ##
+
+ #sendfile on;
+ tcp_nopush on;
+ tcp_nodelay on;
+ keepalive_timeout 65;
+ types_hash_max_size 2048;
+ server_tokens off;
+
+ # server_names_hash_bucket_size 64;
+ # server_name_in_redirect off;
+
+ include /etc/nginx/mime.types;
+ default_type application/octet-stream;
+
+ ##
+ # Logging Settings
+ ##
+
+ access_log /var/log/nginx/access.log;
+ error_log /var/log/nginx/error.log;
+
+ ##
+ # Gzip Settings
+ ##
+
+ gzip on;
+ gzip_disable "msie6";
+
+ # gzip_vary on;
+ # gzip_proxied any;
+ # gzip_comp_level 6;
+ # gzip_buffers 16 8k;
+ # gzip_http_version 1.1;
+ # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
+
+ ##
+ # If HTTPS, then set a variable so it can be passed along.
+ ##
+
+ map $scheme $server_https {
+ default off;
+ https on;
+ }
+
+ ##
+ # Virtual Host Configs
+ ##
+
+ include /etc/nginx/conf.d/*.conf;
+ include /etc/nginx/sites-enabled/*;
+}
+
--- /dev/null
+---
+jenkins_dest: /opt/jenkins
+jenkins_lib: /var/lib/jenkins
+jenkins_jobs: '{{ jenkins_lib }}/jobs'
+jenkins:
+ yum:
+ #repo: 'deb http://pkg.jenkins-ci.org/debian binary/' # Jenkins repository
+ dependencies: # Jenkins dependencies
+ #- 'openjdk-7-jre'
+ - 'java-1.7.0-openjdk'
+ - 'git'
+ - 'curl'
+ - 'nginx'
+ cli_dest: '{{ jenkins_dest }}/jenkins-cli.jar' # Jenkins CLI destination
+ updates_dest: '{{ jenkins_dest }}/updates_jenkins.json' # Jenkins updates file