ansible-role-jenkins
ansible-role-jenkins copied to clipboard
Initalise Jenkins with systemd instead of init
Fixes #351
I have tried the changes suggested in this PR and they work as expected.
For some reason it doesn't seem like this is running the CI tests — this PR looks acceptable (though will require a major version bump since there are some breaking changes), but I want to make sure we cover the CI test cases (like alternate HTTP port) before merging.
Sounds good, give me a shout if you need anything from my end
I checked role from this PR. It is ok. I can write inventory and playbook if you need.
I try add env CASC_JENKINS_CONFIG to inventory. It is not work.
jenkins_init_changes:
- option: "CASC_JENKINS_CONFIG"
value: "/var/lib/jenkins/jcasc/"
Show systemctl service:
root@jenkins:~# systemctl cat jenkins.service | grep -v "#" | grep -v "^$"
[Unit]
Description=Jenkins Continuous Integration Server
Requires=network.target
After=network.target
[Service]
Type=notify
NotifyAccess=main
ExecStart=/usr/bin/jenkins
Restart=on-failure
SuccessExitStatus=143
User=jenkins
Group=jenkins
Environment="JENKINS_HOME=/var/lib/jenkins"
WorkingDirectory=/var/lib/jenkins
Environment="JENKINS_WEBROOT=%C/jenkins/war"
Environment="JAVA_OPTS=-Djava.awt.headless=true"
Environment="JENKINS_PORT=8080"
[Install]
WantedBy=multi-user.target
[Service]
Environment="CASC_JENKINS_CONFIG=/var/lib/jenkins/jcasc/"
If i add this code to inventory:
jenkins_init_changes:
- option: "JENKINS_OPTS"
value: "{{ jenkins_options }}"
- option: "JAVA_OPTS"
value: "{{ jenkins_java_options }}"
- option: "JENKINS_HOME"
value: "{{ jenkins_home }}"
- option: "JENKINS_PREFIX"
value: "{{ jenkins_url_prefix }}"
- option: "JENKINS_PORT"
value: "{{ jenkins_http_port }}"
- option: "CASC_JENKINS_CONFIG"
value: "/var/lib/jenkins/jcasc/"
then will not Customize Jenkins and systemctl service:
root@jenkins:~# systemctl cat jenkins.service | grep -v "#" | grep -v "^$"
[Unit]
Description=Jenkins Continuous Integration Server
Requires=network.target
After=network.target
[Service]
Type=notify
NotifyAccess=main
ExecStart=/usr/bin/jenkins
Restart=on-failure
SuccessExitStatus=143
User=jenkins
Group=jenkins
Environment="JENKINS_HOME=/var/lib/jenkins"
WorkingDirectory=/var/lib/jenkins
Environment="JENKINS_WEBROOT=%C/jenkins/war"
Environment="JAVA_OPTS=-Djava.awt.headless=true"
Environment="JENKINS_PORT=8080"
[Install]
WantedBy=multi-user.target
[Service]
Environment="JENKINS_OPTS="
Environment="JAVA_OPTS=-Djenkins.install.runSetupWizard=false"
Environment="JENKINS_HOME=/var/lib/jenkins"
Environment="JENKINS_PREFIX="
Environment="JENKINS_PORT=8080"
Environment="CASC_JENKINS_CONFIG=/var/lib/jenkins/jcasc/"
👍
Merging this so it will unblock other work towards getting the role working again with more recent Jenkins versions. It might break some people's configurations, so when I release a tag it will be a major version bump.