Commit e19ac342 by Jesse Zoldak Committed by GitHub

Merge pull request #4135 from edx/zoldak/jenkins-systemd

Fix jenkins common role  TE-2210
parents b6781dc2 c8d0460b
build_jenkins_user_uid: 1002
build_jenkins_group_gid: 1004
build_jenkins_version: jenkins_1.651.3
build_jenkins_jvm_args: '-Djava.awt.headless=true -Xmx8192m'
build_jenkins_configuration_scripts:
......
......@@ -3,6 +3,8 @@ dependencies:
- common
- role: jenkins_common
jenkins_common_version: '{{ build_jenkins_version }}'
jenkins_common_user_uid: '{{ build_jenkins_user_uid }}'
jenkins_common_group_gid: '{{ build_jenkins_group_gid }}'
jenkins_common_jvm_args: '{{ build_jenkins_jvm_args }}'
jenkins_common_configuration_scripts: '{{ build_jenkins_configuration_scripts }}'
jenkins_common_template_files: '{{ build_jenkins_template_files }}'
......
jenkins_common_user: jenkins
jenkins_common_group: edx
jenkins_common_group: jenkins
jenkins_common_home: /var/lib/jenkins
jenkins_common_config_path: /init-configs
jenkins_common_config_path: '{{ jenkins_common_home }}/init-configs'
jenkins_common_port: 8080
jenkins_common_version: jenkins_1.651.3
jenkins_common_war_source: https://s3.amazonaws.com/edx-testeng-tools/jenkins
......@@ -21,7 +21,7 @@ jenkins_common_debian_pkgs:
jenkins_common_configuration_git_url: https://github.com/edx/jenkins-configuration.git
jenkins_common_jenkins_configuration_branch: master
jenkins_common_configuration_src_path: src/main/groovy
jenkins_common_git_home: /git
jenkins_common_git_home: '{{ jenkins_common_home }}/git'
jenkins_common_configuration_scripts: []
jenkins_common_non_plugin_template_files:
......
......@@ -10,19 +10,42 @@
- install
- install:system-requirements
- name: Create jenkins group with specified gid
group:
name: '{{ jenkins_common_group }}'
gid: '{{ jenkins_common_group_gid }}'
state: present
when: jenkins_common_group_gid is defined
tags:
- install
- install:system-requirements
- name: Create jenkins group
group:
name: '{{ jenkins_common_group }}'
state: present
when: jenkins_common_group_gid is not defined or not jenkins_common_group_gid
tags:
- install
- install:system-requirements
- name: Create the jenkins user with specified uid and add to the group
user:
name: '{{ jenkins_common_user }}'
append: yes
uid: '{{ jenkins_common_user_uid }}'
groups: '{{ jenkins_common_group }}'
when: jenkins_common_user_uid is defined
tags:
- install
- install:system-requirements
- name: Add the jenkins user to the group
- name: Create the jenkins user and add to the group
user:
name: '{{ jenkins_common_user }}'
append: yes
groups: '{{ jenkins_common_group }}'
when: jenkins_common_user_uid is not defined or not jenkins_common_user_uid
tags:
- install
- install:system-requirements
......@@ -32,6 +55,7 @@
path: '{{ item }}'
state: directory
owner: '{{ jenkins_common_user }}'
group: '{{ jenkins_common_group }}'
with_items:
- /usr/share/jenkins
- '{{ jenkins_common_home }}/init.groovy.d'
......@@ -39,6 +63,8 @@
- '{{ jenkins_common_home }}/utils'
- '{{ jenkins_common_home }}/plugins'
- '{{ jenkins_common_git_home }}'
- /var/log/jenkins
- /var/cache/jenkins
tags:
- install
- install:base
......@@ -47,6 +73,8 @@
get_url:
url: '{{ jenkins_common_war_source }}/{{ jenkins_common_version }}.war'
dest: /usr/share/jenkins/jenkins.war
owner: '{{ jenkins_common_user }}'
group: '{{ jenkins_common_group }}'
force: yes
tags:
- install
......@@ -60,6 +88,14 @@
- install
- install:system-requirements
- name: Configure logrotate for jenkins application log
template:
src: "etc/logrotate.d/jenkins_log.j2"
dest: "/etc/logrotate.d/jenkins"
tags:
- install
- install:system-requirements
- name: Add env vars
template:
src: "jenkins-env.sh.j2"
......@@ -76,6 +112,8 @@
repo: '{{ jenkins_common_configuration_git_url }}'
dest: '{{ jenkins_common_git_home }}/jenkins-configuration'
version: '{{ jenkins_common_jenkins_configuration_branch }}'
become: true
become_user: '{{ jenkins_common_user }}'
tags:
- install
- install:base
......@@ -88,6 +126,8 @@
environment:
UTILS_PATH: '{{ jenkins_common_home }}/utils'
JENKINS_VERSION: '{{ jenkins_common_version }}'
become: true
become_user: '{{ jenkins_common_user }}'
tags:
- install
- install:base
......@@ -96,6 +136,8 @@
- name: Copy init scripts into init.groovy.d
command: 'cp {{ jenkins_common_git_home }}/jenkins-configuration/{{ jenkins_common_configuration_src_path }}/{{ item }} {{ jenkins_common_home }}/init.groovy.d/'
with_items: '{{ jenkins_common_configuration_scripts }}'
become: true
become_user: '{{ jenkins_common_user }}'
tags:
- install
- install:base
......@@ -106,6 +148,7 @@
path: '{{ item }}'
state: directory
owner: '{{ jenkins_common_user }}'
group: '{{ jenkins_common_group }}'
with_items:
- '{{ jenkins_common_config_path }}/credentials'
- '{{ jenkins_common_config_path }}/ec2'
......@@ -118,6 +161,8 @@
template:
src: '{{ role_path }}/templates/config/{{ item }}.yml.j2'
dest: '{{ jenkins_common_config_path }}/{{ item }}.yml'
owner: '{{ jenkins_common_user }}'
group: '{{ jenkins_common_group }}'
with_items: '{{ jenkins_common_non_plugin_template_files }}'
tags:
- install
......@@ -128,6 +173,8 @@
template:
src: '{{ role_path }}/templates/config/plugins.yml.j2'
dest: '{{jenkins_common_config_path }}/plugins.yml'
owner: '{{ jenkins_common_user }}'
group: '{{ jenkins_common_group }}'
tags:
- install
- install:base
......@@ -135,7 +182,11 @@
- install:jenkins-configuration
- name: Copy ec2 config files
template: src={{ item }} dest='{{ jenkins_common_config_path }}/ec2/'
template:
src: '{{ item }}'
dest: '{{ jenkins_common_config_path }}/ec2/'
owner: '{{ jenkins_common_user }}'
group: '{{ jenkins_common_group }}'
with_fileglob:
- '{{ role_path }}/files/ec2/*'
tags:
......@@ -144,7 +195,11 @@
- install:jenkins-configuration
- name: Copy xml config files
template: src={{ item }} dest='{{ jenkins_common_config_path }}/xml/'
template:
src: '{{ item }}'
dest: '{{ jenkins_common_config_path }}/xml/'
owner: '{{ jenkins_common_user }}'
group: '{{ jenkins_common_group }}'
with_fileglob:
- '{{ role_path }}/files/xml/*'
tags:
......@@ -159,6 +214,8 @@
environment:
PLUGIN_OUTPUT_DIR: '{{ jenkins_common_home }}/plugins'
PLUGIN_CONFIG: '{{ jenkins_common_config_path }}/plugins.yml'
become: true
become_user: '{{ jenkins_common_user }}'
tags:
- install
- install:base
......@@ -180,6 +237,8 @@
copy:
content: "{{ item.content }}"
dest: '{{ jenkins_common_config_path }}/credentials/{{ item.name }}'
owner: '{{ jenkins_common_user }}'
group: '{{ jenkins_common_group }}'
with_items: '{{ JENKINS_CUSTOM_SSH_LIST }}'
no_log: yes
tags:
......@@ -191,6 +250,8 @@
copy:
content: '{{ JENKINS_EC2_PRIVATE_KEY }}'
dest: '{{ jenkins_common_config_path }}/ec2/id_rsa'
owner: '{{ jenkins_common_user }}'
group: '{{ jenkins_common_group }}'
no_log: yes
tags:
- install
......
# Put in place by ansible
/var/log/jenkins/*jenkins.log {
weekly
copytruncate
missingok
rotate 52
compress
delaycompress
notifempty
}
......@@ -2,9 +2,20 @@
Description=Jenkins
[Service]
Environment=JENKINS_HOME={{ jenkins_common_home }}
Environment=JENKINS_CONFIG_PATH={{ jenkins_common_config_path }}
ExecStart=/usr/bin/java {{ jenkins_common_jvm_args }} -jar /usr/share/jenkins/jenkins.war --httpPort={{ jenkins_common_port }}
Type=forking
Environment="JENKINS_HOME={{ jenkins_common_home }}"
Environment="JENKINS_CONFIG_PATH={{ jenkins_common_config_path }}"
PassEnvironment=JENKINS_HOME JENKINS_CONFIG_PATH
User=jenkins
Group=jenkins
ExecStart=/usr/bin/java \
{{ jenkins_common_jvm_args }} \
-jar /usr/share/jenkins/jenkins.war \
--daemon \
--logfile=/var/log/jenkins/jenkins.log \
--webroot=/var/cache/jenkins \
--httpPort={{ jenkins_common_port }} \
--ajp13Port=-1
[Install]
WantedBy=multi-user.target
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment