All Projects → rgl → Jenkins Vagrant

rgl / Jenkins Vagrant

Vagrant Environment for a Jenkins Continuous Integration server

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Jenkins Vagrant

django-angular2-fullstack-devops
All-in-one django/angular2 seed with cli interface for multi-environment devops on aws using ansible/packer/terraform
Stars: ✭ 54 (+58.82%)
Mutual labels:  jenkins, vagrant
cikit
Continuous Integration Kit (CIKit)
Stars: ✭ 21 (-38.24%)
Mutual labels:  jenkins, vagrant
drupalci-sonar-jenkins
DEPRECATED - Drupal CI environment with SonarQube and Jenkins for Drupal Core code analysis.
Stars: ✭ 40 (+17.65%)
Mutual labels:  jenkins, vagrant
generator-mitosis
A micro-service infrastructure generator based on Yeoman/Chatbot, Kubernetes/Docker Swarm, Traefik, Ansible, Jenkins, Spark, Hadoop, Kafka, etc.
Stars: ✭ 78 (+129.41%)
Mutual labels:  jenkins, vagrant
vagrant-alm
An excerpt of an ALM environment built on top of Vagrant, Libvirt and Ansible
Stars: ✭ 44 (+29.41%)
Mutual labels:  jenkins, vagrant
Jenkins Bootstrap Shared
Jenkins as immutable infrastructure made easy. A repository of shared scripts meant to be used as a git submodule. Packing Jenkins, plugins, and scripts into immutable packages and images.
Stars: ✭ 270 (+694.12%)
Mutual labels:  jenkins, vagrant
vagrant-jenkins
Vagrant box running Ubuntu with an installed Jenkins instance
Stars: ✭ 39 (+14.71%)
Mutual labels:  jenkins, vagrant
learn-ansible-and-jenkins-in-30-days
Ansible + Jenkins in 30 days tutorial.
Stars: ✭ 35 (+2.94%)
Mutual labels:  jenkins, vagrant
Book k8sInfra
< 컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커 >
Stars: ✭ 176 (+417.65%)
Mutual labels:  jenkins, vagrant
ansible-roles
Library of Ansible plugins and roles for deploying various services.
Stars: ✭ 14 (-58.82%)
Mutual labels:  jenkins, vagrant
Ansible Playbooks
Ansible playbook collection that have been written for Ubuntu. Some of the playbooks are Elasticsearch, Mesos, AWS, MySql, Sensu, Nginx etc..
Stars: ✭ 429 (+1161.76%)
Mutual labels:  jenkins, vagrant
Summary
个人总结 持续更新 欢迎提出各种issues
Stars: ✭ 12 (-64.71%)
Mutual labels:  jenkins
Hbc
API of homomorphic binary operations such as binary comparisons or binary divisions using the library HElib
Stars: ✭ 23 (-32.35%)
Mutual labels:  vagrant
Deep Learning Vm
Sets up a VM with Keras, TensorFlow, TFLearn and Theano installed
Stars: ✭ 23 (-32.35%)
Mutual labels:  vagrant
Flutter engine build
Flutter Engine构建产物归档
Stars: ✭ 19 (-44.12%)
Mutual labels:  jenkins
Siem From Scratch
SIEM-From-Scratch is a drop-in ELK based SIEM component for your Vagrant infosec lab
Stars: ✭ 31 (-8.82%)
Mutual labels:  vagrant
Jenkins4j
Simple and effective Jenkins API wrapper written in Java
Stars: ✭ 12 (-64.71%)
Mutual labels:  jenkins
Malboxes
Builds malware analysis Windows VMs so that you don't have to.
Stars: ✭ 900 (+2547.06%)
Mutual labels:  vagrant
Docker Jenkins
Jenkins with Blue Ocean and support for builiding jobs in Docker
Stars: ✭ 18 (-47.06%)
Mutual labels:  jenkins
Err Jenkins
errbot plugin for Jenkins
Stars: ✭ 18 (-47.06%)
Mutual labels:  jenkins

This is a Vagrant Environment for a Continuous Integration server using the Jenkins daemon.

This configures Jenkins through CLI/JNLP and Groovy scripts to:

  • Enable the simple Logged-in users can do anything Authorization security policy.
  • Add a SSH public key to vagrant user account and use it to access the CLI.
    • Except on Windows; there it uses JNLP4/HTTPS to connect to the Jenkins Master from a Windows Service. Only a Windows Service has the needed permissions to run integration tests that use the WCF net.pipe transport and to build unity projects.
  • Optionally use LDAP user authentication.
  • Add and list users.
  • Install and configure plugins.
  • Setup GitLab integration (assumes rgl/gitlab-vagrant is already deployed)
  • Setup nginx as a Jenkins HTTPS proxy and static file server.
  • Create Freestyle project job.
  • Create Pipeline job.
  • Create Multibranch Pipeline job.
  • Add a Ubuntu Linux slave node.
  • Add a Windows slave node.
    • With docker-ce (default) or docker-ee (you need to uncomment it from the Vagrantfile).
    • With enabled long path support on the OS and chocolatey.
    • With MSYS2 to be able to use the Execute shell build step.
    • With Unity Editor.
      • You still need to activate it by running Unity Hub.
  • Add a macOS slave node.

NB If you are new to Groovy, be sure to check the Groovy Learn X in Y minutes page.

These are the machines and how they are connected with each other:

Usage

Build and install the Ubuntu 18.04 Base Box.

Build and install the Windows 2019 Base Box.

Build and install the macOS Base Box.

Add the following entry to your /etc/hosts file:

10.10.10.100 jenkins.example.com
10.10.10.102 windows.jenkins.example.com

If you want to use LDAP for user authentication, you have to:

  1. have rgl/windows-domain-controller-vagrant up and running at ../windows-domain-controller-vagrant.
  2. uncomment the config_authentication='ldap' line inside provision.sh.

Run vagrant up jenkins to launch the master. See its output to known how to login at the local Jenkins home page as admin (you can also login with one of the example accounts, e.g. alice.doe and password password).

NB nginx is setup with a self-signed certificate that you have to trust before being able to access the local Jenkins home page.

Run vagrant up ubuntu to launch the Ubuntu slave.

Run vagrant up windows to launch the Windows slave. Portainer is available at http://windows.jenkins.example.com:9000/.

Run vagrant up macos to launch the macOS slave. NB you first need to download Xcode_8.1.xip. After provisioning you can delete it, as Xcode_8.1.cpio.xz will take its place as a more efficient way to install Xcode.

Email notifications are sent to a local MailHog SMTP server running at localhost:1025 and you can browse them at http://jenkins.example.com:8025.

Groovy Snippets

Show Object Properties

def getObjectProperties(obj) {
    def filtered = ['class', 'active']

    properties = obj.metaClass.properties
        .findAll {it.name != 'class' && it.name != 'metaClass'}
        .inject([:]) {acc, e -> acc[e.name] = e.getProperty(obj); acc}

    properties
        .sort {it.key}
        .collect {it}
        .findAll {!filtered.contains(it.key)}
        .join('\n')
}

project = Jenkins.instance.getItem('MailBounceDetector-multibranch-pipeline')
getObjectProperties(project)

Create Api Token

// create an user api token.
// see http://javadoc.jenkins-ci.org/hudson/model/User.html
// see http://javadoc.jenkins-ci.org/jenkins/security/ApiTokenProperty.html
// see https://jenkins.io/doc/book/managing/cli/
import hudson.model.User
import jenkins.security.ApiTokenProperty

u = User.getById('alice.doe', false)
p = u.getProperty(ApiTokenProperty)
t = p.tokenStore.generateNewToken('token-name')
u.save()
println t.plainValue

Reference

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].