The post Install Jenkins as a Service on CentOS 7 appeared first on Justin Silver.
]]>I have previously written about how to Install Jenkins on CentOS as a Service where it was necessary to write your own startup, shutdown, configuration, and init.d scripts. Luckily this is all much easier now as you can install the software directly from a yum
repository – you’ll just need to fetch the repo from http://pkg.jenkins-ci.org/redhat/jenkins.repo.
Make sure you have Java on your system, then fetch the yum repository and install Jenkins.
yum -y install java curl http://pkg.jenkins-ci.org/redhat/jenkins.repo -o /etc/yum.repos.d/jenkins.repo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key yum -y install jenkins
Since CentOS 7 uses Systemd, use it to start the service on reboot.
systemctl enable jenkins service jenkins start
This will start jenkins on port 8080 by default (you can change these settings in /etc/sysconfig/jenkins). Leaving it as is and setting up a reverse Nginx proxy is my preference. Once you load the Jenkins home page you will be prompted to enter a password located in a file on your system to continue the setup. Here is a sample of my Nginx configuration.
# jenkins is upstream listening on port 8080 upstream jenkins { server 127.0.0.1:8080 fail_timeout=0; } # nginx is listening on port 80 server { listen 80; server_name jenkins.example.com; location / { proxy_set_header Host $host:$server_port; 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://jenkins; } }
Keep in mind that you may have issues initially proxying to Jenkins if SELinux is configured to block access to port 8080. If you try to load the site via Ngnix and get a “502 Bad Gateway” error, check out the /var/log/audit/audit.log
– you will probably see errors regarding Nginx connecting to your port. You can either add the port by hand, or do it automatically with audit2allow
.
mkdir ~/.semanage && cd ~/.semanage cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M semanage semodule -i semanage.pp
If you need to generate an SSH key for the Jenkins user, use sudo to run as the proper user.
sudo -u jenkins ssh-keygen
Enjoy!
The post Install Jenkins as a Service on CentOS 7 appeared first on Justin Silver.
]]>The post Service Process Start, Service Start Process appeared first on Justin Silver.
]]>I may be slightly dyslexic as I am constantly typing service start nginx
or service restart mysqld
when interacting with services controlled via init.d
. Rather than making myself constantly retype it I created a shell script that would reverse it for me, and then just linked the script to the various commands I wanted to use service
with.
#!/bin/sh # description: This reverses the last argument since I screw it up all the time. # processname: service-reverser EXEC=`echo "$0 $1" | sed -e 's/\/etc\/init\.d\/\(.*\) \(.*\)/service \2 \1/g'` $EXEC
Next make the file executable, and then link it up.
chmod +x /usr/local/bin/service-reverser ln -s /usr/local/bin/service-reverser /etc/init.d/start ln -s /usr/local/bin/service-reverser /etc/init.d/stop ln -s /usr/local/bin/service-reverser /etc/init.d/status ln -s /usr/local/bin/service-reverser /etc/init.d/restart
Now you can reverse the argument and name when using service
.
[root@web1 ~]# service status nginx nginx (pid 17813) is running... [root@web1 ~]# service nginx status nginx (pid 17813) is running...
The post Service Process Start, Service Start Process appeared first on Justin Silver.
]]>