Jenkins: Difference between revisions
From charlesreid1
(→Links) |
(→AWS) |
||
| (4 intermediate revisions by the same user not shown) | |||
| Line 4: | Line 4: | ||
Pipelines have 3 basic steps: build step, test step, and deploy (or "deliver") step. | Pipelines have 3 basic steps: build step, test step, and deploy (or "deliver") step. | ||
=Get Started= | |||
==Installing== | |||
DigitalOcean guide to installing Jenkins on Ubuntu 16.04: https://www.digitalocean.com/community/tutorials/how-to-install-jenkins-on-ubuntu-16-04 | |||
<pre> | |||
wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add - | |||
echo deb https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list | |||
sudo apt-get -y update | |||
sudo apt-get -y install jenkins | |||
</pre> | |||
==Starting== | |||
Jenkins runs as a service, so start it like this: | |||
<pre> | |||
sudo systemctl start jenkins | |||
</pre> | |||
Check its status like this: | |||
<pre> | |||
sudo systemctl status jenkins | |||
</pre> | |||
Should see something like this: | |||
<pre> | |||
Output | |||
● jenkins.service - LSB: Start Jenkins at boot time | |||
Loaded: loaded (/etc/init.d/jenkins; bad; vendor preset: enabled) | |||
Active:active (exited) since Thu 2017-04-20 16:51:13 UTC; 2min 7s ago | |||
Docs: man:systemd-sysv-generator(8) | |||
</pre> | |||
==Accessing== | |||
You should be able to access Jenkins at port 8080. (http://your-ip:8080) | |||
If it is not available, you may nee to open port 8080 using your firewall (ufw or iptables or other). | |||
To get your Jenkins admin secret, run: | |||
<pre> | |||
sudo cat /var/lib/jenkins/secrets/initialAdminPassword | |||
</pre> | |||
=AWS= | =AWS= | ||
| Line 10: | Line 58: | ||
Tasks: | Tasks: | ||
IF setting up SSL: | |||
* Open firewall port 8081 (security group) | |||
* Set up nginx on the front end | |||
* Obtain an SSL certificate for the domain that points to your server (you need a domain, not a bare IP address) | |||
* Yes this is a pain in the ass. Good luck. You can find domains for as cheap as $0.40/month on Namecheap.com | |||
* LetsEncrypt is how you get your certificate | |||
* See https://git.charlesreid1.com/charlesreid1/certbot | |||
* Set up nginx to reverse-proxy to port 8081 | |||
Otherwise: | |||
* Open firewall port 8080 (security group) | |||
Okay, now on to the rest: | |||
* Set up nginx on the frontend for SSL | |||
* Install Jenkins | * Install Jenkins | ||
* Access Jenkins | * Access Jenkins | ||
* Run a basic Python workflow | * Run a basic Python workflow | ||
Latest revision as of 01:23, 6 August 2018
Basics
You develop Pipelines, the main object in Jenkins
Pipelines have 3 basic steps: build step, test step, and deploy (or "deliver") step.
Get Started
Installing
DigitalOcean guide to installing Jenkins on Ubuntu 16.04: https://www.digitalocean.com/community/tutorials/how-to-install-jenkins-on-ubuntu-16-04
wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add - echo deb https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list sudo apt-get -y update sudo apt-get -y install jenkins
Starting
Jenkins runs as a service, so start it like this:
sudo systemctl start jenkins
Check its status like this:
sudo systemctl status jenkins
Should see something like this:
Output
● jenkins.service - LSB: Start Jenkins at boot time
Loaded: loaded (/etc/init.d/jenkins; bad; vendor preset: enabled)
Active:active (exited) since Thu 2017-04-20 16:51:13 UTC; 2min 7s ago
Docs: man:systemd-sysv-generator(8)
Accessing
You should be able to access Jenkins at port 8080. (http://your-ip:8080)
If it is not available, you may nee to open port 8080 using your firewall (ufw or iptables or other).
To get your Jenkins admin secret, run:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
AWS
Spin up an AWS node.
Tasks:
IF setting up SSL:
- Open firewall port 8081 (security group)
- Set up nginx on the front end
- Obtain an SSL certificate for the domain that points to your server (you need a domain, not a bare IP address)
- Yes this is a pain in the ass. Good luck. You can find domains for as cheap as $0.40/month on Namecheap.com
- LetsEncrypt is how you get your certificate
- See https://git.charlesreid1.com/charlesreid1/certbot
- Set up nginx to reverse-proxy to port 8081
Otherwise:
- Open firewall port 8080 (security group)
Okay, now on to the rest:
- Set up nginx on the frontend for SSL
- Install Jenkins
- Access Jenkins
- Run a basic Python workflow
Links
Jenkins tutorial on python build workflows with Jenkins: https://jenkins.io/doc/tutorials/build-a-python-app-with-pyinstaller/
Guide to setting up a Jenkins build server on AWS: https://aws.amazon.com/getting-started/projects/setup-jenkins-build-server/