Skip to content

Instantly share code, notes, and snippets.

@prayagupa
Last active November 13, 2023 15:46
Show Gist options
  • Select an option

  • Save prayagupa/bbe9e05c4e7f6e13c20ffea0cd5fe4d1 to your computer and use it in GitHub Desktop.

Select an option

Save prayagupa/bbe9e05c4e7f6e13c20ffea0cd5fe4d1 to your computer and use it in GitHub Desktop.
jenkins, CI, CD, gocd, cicd, ci, cd

Installation

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install jenkins

CI config

[root@ip-172-23-38-167 ~]# ll /var/lib/jenkins/
total 60
-rw-r--r--.  1 jenkins jenkins 1592 Apr 23 17:55 config.xml
-rw-r--r--.  1 jenkins jenkins  159 Apr 23 17:55 hudson.model.UpdateCenter.xml
-rw-r--r--.  1 jenkins jenkins  370 Apr 23 17:35 hudson.plugins.git.GitTool.xml
-rw-------.  1 jenkins jenkins 1712 Apr 23 16:58 identity.key.enc
-rw-r--r--.  1 jenkins jenkins   94 Apr 23 16:58 jenkins.CLI.xml
-rw-r--r--.  1 jenkins jenkins    4 Apr 23 17:55 jenkins.install.InstallUtil.lastExecVersion
-rw-r--r--.  1 jenkins jenkins    4 Apr 23 17:40 jenkins.install.UpgradeWizard.state
drwxr-xr-x.  2 jenkins jenkins    6 Apr 23 16:58 jobs
drwxr-xr-x.  3 jenkins jenkins   19 Apr 23 16:58 logs
-rw-r--r--.  1 jenkins jenkins  907 Apr 23 17:55 nodeMonitors.xml
drwxr-xr-x.  2 jenkins jenkins    6 Apr 23 16:58 nodes
drwxr-xr-x. 74 jenkins jenkins 8192 Apr 23 17:55 plugins
-rw-r--r--.  1 jenkins jenkins  129 Apr 23 17:58 queue.xml
-rw-r--r--.  1 jenkins jenkins  129 Apr 23 17:55 queue.xml.bak
-rw-r--r--.  1 jenkins jenkins   64 Apr 23 16:58 secret.key
-rw-r--r--.  1 jenkins jenkins    0 Apr 23 16:58 secret.key.not-so-secret
drwx------.  4 jenkins jenkins 4096 Apr 23 17:40 secrets
drwxr-xr-x.  2 jenkins jenkins  182 Apr 23 17:35 updates
drwxr-xr-x.  2 jenkins jenkins   24 Apr 23 16:58 userContent
drwxr-xr-x.  3 jenkins jenkins   19 Apr 23 17:40 users
drwxr-xr-x.  2 jenkins jenkins    6 Apr 23 17:35 workflow-libs
[root@ip-172-23-38-167 ~]# cat /var/lib/jenkins/config.xml 
<?xml version='1.0' encoding='UTF-8'?>
<hudson>
  <disabledAdministrativeMonitors/>
  <version>1.0</version>
  <numExecutors>2</numExecutors>
  <mode>NORMAL</mode>
  <useSecurity>false</useSecurity>
<!--
  <authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">
    <denyAnonymousReadAccess>true</denyAnonymousReadAccess>
  </authorizationStrategy>
  <securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
    <disableSignup>true</disableSignup>
    <enableCaptcha>false</enableCaptcha>
  </securityRealm>
-->

  <disableRememberMe>false</disableRememberMe>
  <projectNamingStrategy class="jenkins.model.ProjectNamingStrategy$DefaultProjectNamingStrategy"/>
  <workspaceDir>${JENKINS_HOME}/workspace/${ITEM_FULLNAME}</workspaceDir>
  <buildsDir>${ITEM_ROOTDIR}/builds</buildsDir>
  <jdks/>
  <viewsTabBar class="hudson.views.DefaultViewsTabBar"/>
  <myViewsTabBar class="hudson.views.DefaultMyViewsTabBar"/>
  <clouds/>
  <scmCheckoutRetryCount>0</scmCheckoutRetryCount>
  <views>
    <hudson.model.AllView>
      <owner class="hudson" reference="../../.."/>
      <name>all</name>
      <filterExecutors>false</filterExecutors>
      <filterQueue>false</filterQueue>
      <properties class="hudson.model.View$PropertyList"/>
    </hudson.model.AllView>
  </views>
  <primaryView>all</primaryView>
  <slaveAgentPort>-1</slaveAgentPort>
  <label></label>
  <crumbIssuer class="hudson.security.csrf.DefaultCrumbIssuer">
    <excludeClientIPFromCrumb>false</excludeClientIPFromCrumb>
  </crumbIssuer>
  <nodeProperties/>
  <globalNodeProperties/>
</hudson>

CI environment variables - http://172.23.38.167:8080/configure

vi /var/lib/jenkins/config.xml

<?xml version='1.0' encoding='UTF-8'?>
<hudson>

  <globalNodeProperties>
    <hudson.slaves.EnvironmentVariablesNodeProperty>
      <envVars serialization="custom">
        <unserializable-parents/>
        <tree-map>
          <default>
            <comparator class="hudson.util.CaseInsensitiveComparator"/>
          </default>
          <int>2</int>
          <string>APPLICATION_ENVIRONMENT</string>
          <string>continiousi</string>
          <string>SPRING_PROFILES_ACTIVE</string>
          <string>continiousi</string>
        </tree-map>
      </envVars>
    </hudson.slaves.EnvironmentVariablesNodeProperty>
  </globalNodeProperties>
</hudson>

CI war is installed at

[root@ip-172-23-38-167 ~]# ll /var/cache/jenkins/war/
total 2116
-rw-r--r--.  1 jenkins jenkins    2483 Apr 23 16:58 ColorFormatter.class
drwxr-xr-x.  5 jenkins jenkins     147 Apr 23 16:58 css
-rw-r--r--.  1 jenkins jenkins    1544 Apr 23 16:58 dc-license.txt
drwxr-xr-x.  2 jenkins jenkins      30 Apr 23 16:58 executable
-rw-r--r--.  1 jenkins jenkins   17542 Apr 23 16:58 favicon.ico
drwxr-xr-x. 12 jenkins jenkins     180 Apr 23 16:58 help
drwxr-xr-x.  6 jenkins jenkins    4096 Apr 23 16:58 images
-rw-r--r--.  1 jenkins jenkins    1845 Apr 23 16:58 JNLPMain.class
drwxr-xr-x.  2 jenkins jenkins     250 Apr 23 16:58 jsbundles
-rw-r--r--.  1 jenkins jenkins     788 Apr 23 16:58 LogFileOutputStream$1.class
-rw-r--r--.  1 jenkins jenkins     586 Apr 23 16:58 LogFileOutputStream$2.class
-rw-r--r--.  1 jenkins jenkins    2197 Apr 23 16:58 LogFileOutputStream.class
-rw-r--r--.  1 jenkins jenkins   15825 Apr 23 16:58 Main.class
-rw-r--r--.  1 jenkins jenkins    1049 Apr 23 16:58 MainDialog$1$1.class
-rw-r--r--.  1 jenkins jenkins    1123 Apr 23 16:58 MainDialog$1.class
-rw-r--r--.  1 jenkins jenkins    2424 Apr 23 16:58 MainDialog.class
-rw-r--r--.  1 jenkins jenkins     512 Apr 23 16:58 Main$FileAndDescription.class
drwxr-xr-x.  3 jenkins jenkins      75 Apr 23 16:58 META-INF
-rw-r--r--.  1 jenkins jenkins      71 Apr 23 16:58 robots.txt
drwxr-xr-x.  3 jenkins jenkins     200 Apr 23 16:58 scripts
drwxr-xr-x.  7 jenkins jenkins     237 Apr 23 16:58 WEB-INF
-rw-r--r--.  1 jenkins jenkins 2078389 Apr 23 16:58 winstone.jar

login

sudo cat /var/lib/jenkins/secrets/initialAdminPassword
99f6aa9f2be5466aa516832fd1ef23a5

Install Job DSL + Maven Integration plugin etc

java -jar /var/cache/jenkins/war/WEB-INF/jenkins-cli.jar -s http://172.23.38.167:8080/ install-plugin job-dsl -restart
Installing job-dsl from update center

wget https://updates.jenkins-ci.org/download/plugins/maven-plugin/2.15.1/maven-plugin.hpi

# blueocean plugin
java -jar /var/cache/jenkins/war/WEB-INF/jenkins-cli.jar -s http://172.23.38.167:8080/ install-plugin blueocean -restart

or install from http://172.23.38.167:8080/pluginManager/available

list installed plugins

[root@ip-172-23-38-167 ~]# java -jar /var/cache/jenkins/war/WEB-INF/jenkins-cli.jar -s http://172.23.38.167:8080/ list-plugins
workflow-cps                     Pipeline: Groovy                                                 2.29
bouncycastle-api                 bouncycastle API Plugin                                          2.16.1
cloudbees-folder                 Folders Plugin                                                   6.0.3
docker-commons                   Docker Commons Plugin                                            1.6
structs                          Structs Plugin                                                   1.6
junit                            JUnit Plugin                                                     1.20
antisamy-markup-formatter        OWASP Markup Formatter Plugin                                    1.5
pam-auth                         PAM Authentication plugin                                        1.3
pipeline-stage-step              Pipeline: Stage Step                                             2.2
windows-slaves                   Windows Slaves Plugin                                            1.3.1
display-url-api                  Display URL API                                                  2.0
durable-task                     Durable Task Plugin                                              1.13
mailer                           Mailer Plugin                                                    1.20
ldap                             LDAP Plugin                                                      1.14
docker-workflow                  Docker Pipeline                                                  1.10
token-macro                      Token Macro Plugin                                               2.1
pipeline-model-api               Pipeline: Model API                                              1.1.3
external-monitor-job             External Monitor Job Type Plugin                                 1.7
icon-shim                        Icon Shim Plugin                                                 2.0.3
matrix-auth                      Matrix Authorization Strategy Plugin                             1.5
script-security                  Script Security Plugin                                           1.27
matrix-project                   Matrix Project Plugin                                            1.10
ssh-credentials                  SSH Credentials Plugin                                           1.13
build-timeout                    build timeout plugin                                             1.18
credentials                      Credentials Plugin                                               2.1.13
workflow-step-api                Pipeline: Step API                                               2.9
git-client                       Git client plugin                                                2.4.2
plain-credentials                Plain Credentials Plugin                                         1.4
credentials-binding              Credentials Binding Plugin                                       1.11
github-api                       GitHub API Plugin                                                1.85
timestamper                      Timestamper                                                      1.8.8
scm-api                          SCM API Plugin                                                   2.1.1
git                              Git plugin                                                       3.3.0
workflow-api                     Pipeline: API                                                    2.13
git-server                       GIT server Plugin                                                1.7
workflow-basic-steps             Pipeline: Basic Steps                                            2.4
workflow-cps-global-lib          Pipeline: Shared Groovy Libraries                                2.7
resource-disposer                Resource Disposer Plugin                                         0.6
ws-cleanup                       Workspace Cleanup Plugin                                         0.32
ant                              Ant Plugin                                                       1.4
github                           GitHub plugin                                                    1.27.0
gradle                           Gradle Plugin                                                    1.26
pipeline-milestone-step          Pipeline: Milestone Step                                         1.3.1
jquery-detached                  JavaScript GUI Lib: jQuery bundles (jQuery and jQuery UI) plugin 1.2.1
workflow-support                 Pipeline: Supporting APIs                                        2.14
branch-api                       Branch API Plugin                                                2.0.8
pipeline-input-step              Pipeline: Input Step                                             2.5
ace-editor                       JavaScript GUI Lib: ACE Editor bundle plugin                     1.1
workflow-scm-step                Pipeline: SCM Step                                               2.4
workflow-job                     Pipeline: Job                                                    2.10
pipeline-graph-analysis          Pipeline Graph Analysis Plugin                                   1.3
workflow-multibranch             Pipeline: Multibranch                                            2.14
pipeline-rest-api                Pipeline: REST API Plugin                                        2.6
handlebars                       JavaScript GUI Lib: Handlebars bundle plugin                     1.1.1
momentjs                         JavaScript GUI Lib: Moment.js bundle plugin                      1.1.1
authentication-tokens            Authentication Tokens API Plugin                                 1.3
pipeline-stage-view              Pipeline: Stage View Plugin                                      2.6
pipeline-build-step              Pipeline: Build Step                                             2.5
pipeline-model-extensions        Pipeline: Declarative Extension Points API                       1.1.3
workflow-durable-task-step       Pipeline: Nodes and Processes                                    2.10
pipeline-stage-tags-metadata     Pipeline: Stage Tags Metadata                                    1.1.3
pipeline-model-declarative-agent Pipeline: Declarative Agent API                                  1.1.1
pipeline-model-definition        Pipeline: Model Definition                                       1.1.3
workflow-aggregator              Pipeline                                                         2.5
github-branch-source             GitHub Branch Source Plugin                                      2.0.5
pipeline-github-lib              Pipeline: GitHub Groovy Libraries                                1.0
mapdb-api                        MapDB API Plugin                                                 1.0.9.0
subversion                       Subversion Plug-in                                               2.7.2
ssh-slaves                       SSH Slaves plugin                                                1.17
email-ext                        Email Extension Plugin                                           2.57.2
javadoc                          Javadoc Plugin                                                   1.4
maven-plugin                     Maven Integration plugin                                         2.15.1
bitbucket                        Bitbucket Plugin                                                 1.1.5
job-dsl                          Job DSL                                                          1.63

Logging

https://wiki.jenkins-ci.org/display/JENKINS/Logging#Logging-Linux

tail -f /var/log/jenkins/jenkins.log

configire JDK, git and maven homes

MAVEN3 - /var/lib/jenkins/hudson.tasks.Maven.xml

<?xml version='1.0' encoding='UTF-8'?>
<hudson.tasks.Maven_-DescriptorImpl>
  <installations>
    <hudson.tasks.Maven_-MavenInstallation>
      <name>MAVEN3</name>
      <home>/usr/share/apache-maven/</home>
      <properties/>
    </hudson.tasks.Maven_-MavenInstallation>
  </installations>
</hudson.tasks.Maven_-DescriptorImpl>

git credentials

cat /var/lib/jenkins/credentials.xml

<?xml version='1.0' encoding='UTF-8'?>
<com.cloudbees.plugins.credentials.SystemCredentialsProvider plugin="credentials@2.1.13">
  <domainCredentialsMap class="hudson.util.CopyOnWriteMap$Hash">
    <entry>
      <com.cloudbees.plugins.credentials.domains.Domain>
        <specifications/>
      </com.cloudbees.plugins.credentials.domains.Domain>
      <java.util.concurrent.CopyOnWriteArrayList>
        <com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey plugin="ssh-credentials@1.13">
          <scope>GLOBAL</scope>
          <id>9a1ae61e-f50e-4dab-957d-184144595705</id>
          <description>prayagupd-bithucket-server-credentials</description>
          <username>prayagupd-git-username</username>
          <passphrase>{encryptedPass}</passphrase>
          <privateKeySource class="com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$DirectEntryPrivateKeySource">
            <privateKey>{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}</privateKey>
          </privateKeySource>
        </com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey>
      </java.util.concurrent.CopyOnWriteArrayList>
    </entry>
  </domainCredentialsMap>
</com.cloudbees.plugins.credentials.SystemCredentialsProvider>

Then use credentialId in Jenkins pipeline

https://github.com/jenkinsci/pipeline-model-definition-plugin/wiki/Running-multiple-steps

node {
   def mvnHome
   stage('Unit and component tests') {
      git credentialsId: '9a1ae61e-f50e-4dab-957d-184144595705', branch: 'SCFWM-7119', url: 'ssh://git@git.duwamish.net/somerepo.git'
      mvnHome = tool 'MAVEN3'
      
      sh "cd specs-lib"
      sh "cd specs-lib;'${mvnHome}/bin/mvn' -Dmaven.test.failure.ignore clean install"
      
      sh """
          cd scalatest-springboot
          ${mvnHome}/bin/mvn -Dmaven.test.failure.ignore clean install
          """
      }
}

Decrypt password

https://gist.github.com/tuxfight3r/eca9442ff76649b057ab

## No space left issue

[ec2-user@ip-10-0-0-10 ~]$ sudo du -sh /var/log/jenkins/* | sort -h
0	/var/log/jenkins/jenkins.log-20190130
44M	/var/log/jenkins/jenkins.log-20190203
82M	/var/log/jenkins/jenkins.log-20190128
447M	/var/log/jenkins/jenkins.log-20190131
712M	/var/log/jenkins/jenkins.log-20190129
1.8G	/var/log/jenkins/jenkins.log-20190204
183G	/var/log/jenkins/jenkins.log

echo /dev/null > /var/log/jenkins/jenkins.log

[ec2-user@ip-10-0-0-10 ~]$ sudo service jenkins start
Starting Jenkins                                           [  OK  ]

Jenkins version

jenkins --version
2.359

jenkins --help
Running from: /usr/share/java/jenkins.war
webroot: EnvVars.masterEnvVars.get("JENKINS_HOME")
Jenkins Automation Server Engine 2.359
Usage: java -jar jenkins.war [--option=value] [--option=value]

find jobs using git username

cat /var/lib/jenkins/jobs/*/*.xml  | grep prayagupd
cat /var/lib/jenkins/workspace/*/.git/config  | grep "prayagupd"
sudo installer -pkg ~/Downloads/jenkins-2.35.pkg -target /
installer: Package name is Jenkins 2.35
installer: Installing at base path /
installer: The install was successful.
$ sudo find / -name "jenkins*"
$ ll /Users/Shared/Jenkins/Home/
total 136
 2633956 -rw-r--r--    1 jenkins  jenkins  2615 Dec 10 22:35 config.xml
 2480383 -rw-r--r--    1 jenkins  jenkins  4471 Dec  9 07:42 credentials.xml
14795281 -rw-r--r--    1 jenkins  jenkins   159 Apr 20 11:45 hudson.model.UpdateCenter.xml
 2553456 -rw-r--r--    1 jenkins  jenkins   370 Dec  9 12:14 hudson.plugins.git.GitTool.xml
 2553459 -rw-r--r--    1 jenkins  jenkins   173 Dec  9 12:14 hudson.plugins.gradle.Gradle.xml
 2553460 -rw-r--r--    1 jenkins  jenkins   145 Dec  9 12:14 hudson.tasks.Ant.xml
 2553461 -rw-r--r--    1 jenkins  jenkins   335 Dec  9 12:14 hudson.tasks.Maven.xml
 2467548 -rw-------    1 jenkins  jenkins  1712 Dec  9 05:13 identity.key.enc
 2469678 -rw-r--r--    1 jenkins  jenkins     4 Apr 20 11:45 jenkins.install.InstallUtil.lastExecVersion
 2467567 -rw-r--r--    1 jenkins  jenkins     4 Dec  9 05:17 jenkins.install.UpgradeWizard.state
 2553455 -rw-r--r--    1 jenkins  jenkins   247 Dec  9 12:14 jenkins.mvn.GlobalMavenConfig.xml
 2467534 drwxr-xr-x    4 jenkins  jenkins   136 Dec  9 07:28 jobs
 2467564 drwxr-xr-x    3 jenkins  jenkins   102 Dec  9 05:13 logs
14795283 -rw-r--r--    1 jenkins  jenkins   907 Apr 20 11:45 nodeMonitors.xml
 2467536 drwxr-xr-x    2 jenkins  jenkins    68 Dec  9 05:13 nodes
 2553457 -rw-r--r--    1 jenkins  jenkins   255 Dec  9 12:14 org.jenkinsci.plugins.gitclient.JGitApacheTool.xml
 2553458 -rw-r--r--    1 jenkins  jenkins   243 Dec  9 12:14 org.jenkinsci.plugins.gitclient.JGitTool.xml
 2467533 drwxr-xr-x  135 jenkins  jenkins  4590 Dec 12 18:45 plugins
14231020 -rw-r--r--    1 jenkins  jenkins   129 Apr 13 10:36 queue.xml.bak
 2467531 -rw-r--r--    1 jenkins  jenkins    64 Dec  9 05:13 secret.key
 2467532 -rw-r--r--    1 jenkins  jenkins     0 Dec  9 05:13 secret.key.not-so-secret
 2467549 drwx------   14 jenkins  jenkins   476 Dec  9 07:38 secrets
 2467577 drwxr-xr-x    7 jenkins  jenkins   238 Apr 16 16:54 updates
 2467559 drwxr-xr-x    3 jenkins  jenkins   102 Dec  9 05:13 userContent
 2467571 drwxr-xr-x    3 jenkins  jenkins   102 Dec  9 05:13 users
 2466208 drwxr-xr-x   25 jenkins  jenkins   850 Dec  9 05:13 war
 2469254 drwxr-xr-x    2 jenkins  jenkins    68 Dec  9 05:17 workflow-libs
 2469837 drwxr-xr-x    5 jenkins  jenkins   170 Dec  9 07:46 workspace

Jenkins UI will ask for hash password, which is available at sudo cat /Users/Shared/Jenkins/Home/secrets/initialAdminPassword

Then setup username and password and profile.

admin@admin

sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist

sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist

Install plugins

Then it asks for plugins, I just install recommended ones. Also, I Can goto http://localhost:8080/pluginManager/ and add more.

Make sure proxy is configured or turned off.

System log can be viewd at https://wiki.jenkins-ci.org/display/JENKINS/Logging#Logging-MacOSX

Install Maven Integration plugin

Download from https://updates.jenkins-ci.org/download/plugins/maven-plugin/ and upload the plugin in jenkins.

I added maven config which is installed on server itself at http://localhost:8080/configureTools/ and then choose the same maven while setting up the project.

Some other useful plugins

https://wiki.jenkins-ci.org/display/JENKINS/Build+Monitor+Plugin - https://updates.jenkins-ci.org/download/plugins/build-monitor-plugin/

https://wiki.jenkins-ci.org/display/JENKINS/Green+Balls - https://updates.jenkins-ci.org/download/plugins/greenballs/

https://wiki.jenkins-ci.org/display/JENKINS/Radiator+View+Plugin - https://updates.jenkins-ci.org/download/plugins/radiatorviewplugin/

CI server

wget https://download.gocd.io/binaries/17.4.0-4892/rpm/go-server-17.4.0-4892.noarch.rpm

sudo mkdir -p /var/go
sudo chmod -R 777 /var/go ## so tha mvn can create /var/go/.m2

sudo rpm -i go-server-17.4.0-4892.noarch.rpm

[root@ip-172-21-63-243 ~]# cat /etc/default/go-server
GO_SERVER_PORT=80
GO_SERVER_SSL_PORT=8154
SERVER_WORK_DIR=/var/lib/go-server
DAEMON=Y

Pipeline config /etc/go #contains the pipeline configuration files

add cruise-config.xml

[root@ip-172-23-38-167 ~]# cat /etc/go/cruise-config.xml 
<?xml version="1.0" encoding="utf-8"?>
<cruise xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cruise-config.xsd" schemaVersion="90">
  <server artifactsdir="artifacts" agentAutoRegisterKey="48dae111-0414-4f7a-b2a2-f7e0dbae4b6a" commandRepositoryLocation="default" serverId="4f9dcf17-bb23-4420-9234-6f7f5d70c2dc" />
  <pipelines group="defaultGroup">
    <pipeline name="SomePipelinename" isLocked="false">
      <environmentvariables>
        <variable name="JAVA_HOME">
          <value>/usr/java/jdk1.8.0_60/</value>
        </variable>
      </environmentvariables>
      <materials>
        <git url="https://github.com/prayagupd/eccount-rest.git" branch="REST-API-load-balancing" materialName="rest-api" />
      </materials>
      <stage name="dev">
        <jobs>
          <job name="dev-api">
            <tasks>
              <exec command="mvn">
                <arg>clean</arg>
                <arg>test</arg>
                <runif status="passed" />
              </exec>
            </tasks>
          </job>
        </jobs>
      </stage>
    </pipeline>
  </pipelines>
  <agents>
    <agent hostname="ip-172-23-38-167.cloud.nordstrom.net" ipaddress="172.23.38.167" uuid="7946a1ce-99a2-48a1-a644-75abaf2ae57f" />
  </agents>
</cruise>

https://docs.gocd.io/current/installation/install/server/linux.html#rpm-based-distributions-ie-redhatcentosfedora

wget https://download.gocd.io/binaries/17.4.0-4892/rpm/go-agent-17.4.0-4892.noarch.rpm
 
[root@ip-172-23-38-167 ~]# cat /etc/default/go-agent
GO_SERVER_URL=https://172.23.38.167:8154/go ##has to be TLS
AGENT_WORK_DIR=/var/lib/${SERVICE_NAME:-go-agent}
DAEMON=Y
VNC=N
 /etc/init.d/go-agent sart

Pipelines in

 /var/lib/go-agent/pipelines/
@prayagupa

Copy link
Copy Markdown
Author

sudo su -s /bin/bash jenkins

@prayagupa

prayagupa commented Jun 9, 2017

Copy link
Copy Markdown
Author
vi /etc/sudoers
Defaults    env_keep += "APPLICATION_ENVIRONMENT"
Defaults    env_keep += "SPRING_PROFILES_ACTIVE"

[root@ip-172-21-1-40 ~]# sudo env
HOSTNAME=ip-172-21-1-40.us-west-2.compute.internal
TERM=xterm-256color
HISTSIZE=1000
LS_COLORS=rs=0:di=38;5;27:ln=38;5;51:mh=44;38;5;15:pi=40;38;5;11:so=38;5;13:do=38;5;5:bd=48;5;232;38;5;11:cd=48;5;232;38;5;3:or=48;5;232;38;5;9:mi=05;48;5;232;38;5;15:su=48;5;196;38;5;15:sg=48;5;11;38;5;16:ca=48;5;196;38;5;226:tw=48;5;10;38;5;16:ow=48;5;10;38;5;21:st=48;5;21;38;5;15:ex=38;5;34:*.tar=38;5;9:*.tgz=38;5;9:*.arc=38;5;9:*.arj=38;5;9:*.taz=38;5;9:*.lha=38;5;9:*.lz4=38;5;9:*.lzh=38;5;9:*.lzma=38;5;9:*.tlz=38;5;9:*.txz=38;5;9:*.tzo=38;5;9:*.t7z=38;5;9:*.zip=38;5;9:*.z=38;5;9:*.Z=38;5;9:*.dz=38;5;9:*.gz=38;5;9:*.lrz=38;5;9:*.lz=38;5;9:*.lzo=38;5;9:*.xz=38;5;9:*.bz2=38;5;9:*.bz=38;5;9:*.tbz=38;5;9:*.tbz2=38;5;9:*.tz=38;5;9:*.deb=38;5;9:*.rpm=38;5;9:*.jar=38;5;9:*.war=38;5;9:*.ear=38;5;9:*.sar=38;5;9:*.rar=38;5;9:*.alz=38;5;9:*.ace=38;5;9:*.zoo=38;5;9:*.cpio=38;5;9:*.7z=38;5;9:*.rz=38;5;9:*.cab=38;5;9:*.jpg=38;5;13:*.jpeg=38;5;13:*.gif=38;5;13:*.bmp=38;5;13:*.pbm=38;5;13:*.pgm=38;5;13:*.ppm=38;5;13:*.tga=38;5;13:*.xbm=38;5;13:*.xpm=38;5;13:*.tif=38;5;13:*.tiff=38;5;13:*.png=38;5;13:*.svg=38;5;13:*.svgz=38;5;13:*.mng=38;5;13:*.pcx=38;5;13:*.mov=38;5;13:*.mpg=38;5;13:*.mpeg=38;5;13:*.m2v=38;5;13:*.mkv=38;5;13:*.webm=38;5;13:*.ogm=38;5;13:*.mp4=38;5;13:*.m4v=38;5;13:*.mp4v=38;5;13:*.vob=38;5;13:*.qt=38;5;13:*.nuv=38;5;13:*.wmv=38;5;13:*.asf=38;5;13:*.rm=38;5;13:*.rmvb=38;5;13:*.flc=38;5;13:*.avi=38;5;13:*.fli=38;5;13:*.flv=38;5;13:*.gl=38;5;13:*.dl=38;5;13:*.xcf=38;5;13:*.xwd=38;5;13:*.yuv=38;5;13:*.cgm=38;5;13:*.emf=38;5;13:*.axv=38;5;13:*.anx=38;5;13:*.ogv=38;5;13:*.ogx=38;5;13:*.aac=38;5;45:*.au=38;5;45:*.flac=38;5;45:*.mid=38;5;45:*.midi=38;5;45:*.mka=38;5;45:*.mp3=38;5;45:*.mpc=38;5;45:*.ogg=38;5;45:*.ra=38;5;45:*.wav=38;5;45:*.axa=38;5;45:*.oga=38;5;45:*.spx=38;5;45:*.xspf=38;5;45:
SPRING_PROFILES_ACTIVE=uat
MAIL=/var/spool/mail/root
LANG=en_US.UTF-8
APPLICATION_ENVIRONMENT=uat
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
LOGNAME=root
USER=root
USERNAME=root
HOME=/root
SUDO_COMMAND=/bin/env
SUDO_USER=root
SUDO_UID=0
SUDO_GID=0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment