Configuring GitHub, Jenkins, and SaltStack for Automated CI/CD Deployment
This guide provides step‑by‑step instructions for uploading a Jenkinsfile to GitHub, setting up Jenkins credentials and shared libraries, installing required plugins, configuring SaltStack master and minion, and troubleshooting common Git and SaltStack issues in a CI/CD pipeline.
1. GitHub Configuration
1.1 Upload the Jenkinsfile to the GitHub repository at https://github.com/zeyangli/ShareLibrary-jenkins.git.
2. Jenkins Configuration
2.1 Add GitLab credentials via Credentials → System → Add Credentials.
2.2 Configure the Shared Library under System → Global Pipeline Libraries.
2.3 Install required plugins:
saltstack ansicolor3. Deployment Configuration
3.1 Install Salt master and Salt API on the master node:
yum -y install salt salt-master salt-api
vim /etc/salt/master # add the following content (example version 2015.5.10)Configure the master (example snippet):
rest_cherrypy:
port: 9000
disable_ssl: True
external_auth:
pam:
saltapi:
- .*
- '@wheel'
- '@runner'
file_roots:
base:
- /srv/saltStart services and create a user for the API:
service salt-master start
service salt-api start
useradd saltapi
passwd saltapi # set password, e.g., 1234563.2 Deploy Salt minion on application servers:
yum -y install salt-minion
echo "master: 10.10.1.1" > /etc/salt/minion3.3 Test the setup:
salt-key -L
salt-key -a xxxxxxx
salt xxx test.
pingVerify API login:
curl http://127.0.0.1:9000/login -d username='saltapi' -d password='123456' -d eauth='pam'FAQ
1. Updating Git version on CentOS 6 (default yum provides Git 1.7.1 which is too old):
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
wget https://github.com/git/git/archive/v2.3.0.zip
unzip v2.3.0.zip
cd git
make prefix=/usr/local/git all
vim /etc/profile
export PATH=/usr/local/git/bin:$PATH
source /etc/profile2. Re‑installing Git when project build fails due to missing Git executable:
Started by user admin
java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
... (stack trace omitted for brevity) ...
Caused: hudson.plugins.git.GitException: Could not init /var/lib/jenkins/caches/git-...Solution: In Jenkins System Settings → Global Tool Configuration, update the path to the Git executable.
3. Missing SaltStack plugin error:
java.lang.NoSuchMethodError: No such DSL method 'salt' found among stepsSigned-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
DevOps Cloud Academy
Exploring industry DevOps practices and technical expertise.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
