recimo napisah sad jednu skriptu za instalaciju Jenkins od početka na Centos 7 minimal ISO
Nemam prdstavu kad ljudi traže poznavanje bash scripting jezika, šta to podrazumeva.
Nešto više od ovoga jedino što bih mogao da uključim if else petlje. Recimo ako bih hteo da napišem da skripta radi i za Centos 6.
#! /bin/bash
# This script will install Jenkins on CentOS 7 minimal ISO
PASSWORD="nekipassword"
DOMAIN="jenkins.domain.cc"
# installing useful tools
yum -y install vim net-tools wget telnet
# install nginx
yum -y install epel-release
yum -y install nginx
systemctl enable nginx
systemctl start nginx
systemctl stop firewalld
systemctl disable firewalld
# Install Java and Jenkins
wget -O /etc/yum.repos.d/jenkins.repo
http://pkg.jenkins-ci.org/redhat/jenkins.repo
rpm --import
https://jenkins-ci.org/redhat/jenkins-ci.org.key
yum -y install jenkins java
systemctl enable jenkins && systemctl start jenkins
# Setup vhost/server block
mkdir -p /var/www/$DOMAIN/public_html
echo 'Hello world!' > /var/www/$DOMAIN/public_html/index.html
chmod 755 /var/www/$DOMAIN/public_html
mkdir /etc/nginx/sites-available /etc/nginx/sites-enabled
sed -i '/http {/a include /etc/nginx/sites-enabled/*.conf;\nserver_names_hash_bucket_size 64;' /etc/nginx/nginx.conf
echo "server {
listen 80;
server_name $DOMAIN;
location / {
# 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;
proxy_redirect
http://127.0.0.1:8080 http://$DOMAIN;
# Required for new HTTP-based CLI
proxy_http_version 1.1;
proxy_request_buffering off;
# workaround for
https://issues.jenkins-ci.org/browse/JENKINS-45651
add_header X-SSH-Endpoint jenkins.domain.tld:50022 always;
}
}
" > /etc/nginx/sites-available/$DOMAIN.conf
sed -i '/location \/ {/a\ proxy_set_header Host $host:$server_port;\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n proxy_set_header X-Forwarded-Proto $scheme;' /etc/nginx/sites-available/$DOMAIN.conf
ln -s /etc/nginx/sites-available/$DOMAIN.conf /etc/nginx/sites-enabled/$DOMAIN.conf
#set selinux
yum install -y setroubleshoot-server selinux-policy-devel
semanage port -m -t http_port_t -p tcp 8080
chcon -Rt httpd_sys_content_t /var/www/
systemctl restart nginx jenkins
# enable jenkins user to login to ssh and create keys
yum -y install sshpass
echo -e "$PASSWORD\n$PASSWORD" | passwd jenkins
sed -i 's/\/var\/lib\/jenkins\:\/bin\/false/\/var\/lib\/jenkins\:\/bin\/bash/g' /etc/passwd
mkdir /var/lib/jenkins/.ssh
ssh-keygen -f /var/lib/jenkins/.ssh/jenkins -t rsa -N ''
cp /var/lib/jenkins/.ssh/jenkins.pub /var/lib/jenkins/.ssh/authorized_keys
mv /var/lib/jenkins/.ssh/jenkins /var/lib/jenkins/.ssh/id_rsa
chown -R jenkins /var/lib/jenkins/.ssh/
echo -e 'Host *\nStrictHostKeyChecking=no' > /var/lib/jenkins/.ssh/config