Skip to content

Combination of tools that aid in the delivery, development, and management of software applications throughout the systems development life cycle, as coordinated by an organisation that uses DevOps practices.

License

Notifications You must be signed in to change notification settings

eliezerchavez/cicd-toolchain

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CI/CD Toolchain

Overview 🔍

This toolchain is a combination of tools that aid in the delivery, development, and management of software applications throughout the systems development life cycle, as coordinated by an organisation that uses DevOps practices.

This tools fit into one or more activities, which supports specific DevOps initiatives: Plan, Create, Verify, Package, Release, Configure, Monitor, and Version Control.

Tools 🧰

  • Jenkins
    A self-contained, open source automation server which can be used to automate all sorts of tasks related to building, testing, and delivering or deploying software.
  • SonarQube
    An open-source platform developed by SonarSource for continuous inspection of code quality to perform automatic reviews with static analysis of code to detect bugs, code smells, and security vulnerabilities on 20+ programming languages. SonarQube offers reports on duplicated code, coding standards, unit tests, code coverage, code complexity, comments, bugs, and security vulnerabilities.
  • Nexus Repository Manager OSS
    • A proxy for remote repositories which caches artifacts saving both bandwidth and time required to retrieve a software artifact from a remote repository, and;
    • a host for internal artifacts providing an organization with a deployment target for software artifacts. An automatic code review tool to detect bugs, vulnerabilities, and code smells in your code.

Author 🖋️

Local Installation

Pre-Requisites 📋

  • Ansible
    Ansible is an open-source software provisioning, configuration management, and application-deployment tool enabling infrastructure as code. It runs on many Unix-like systems, and can configure both Unix-like systems as well as Microsoft Windows.

  • A user with sudo capabilities.

Install ✔️

ansible-playbook install.yml

or

ansible-playbook install.yml -e "<variable_name>=<variable_value>,..."

You can override the value of the following variables in the playbook:

Variable Name Default Value
server hostname
timezone America/Lima
username tools


After that you can access the tools via:

Tool URL
Jenkins http://<server>/jenkins
e.g. http://localhost/jenkins
SonarQube http://<server>/sonarqube
e.g. http://toolchain.westus.cloudapp.azure.com/sonarqube
Nexus http://<server>/nexus
e.g. http://tools.local/nexus


The default credentials for all the tools installed are: admin/letmein

Uninstall ❌

ansible-playbook uninstall.yml

Azure Installation

The following is completely optional!!!
If your machine doesn't have enough resources to run this demo environment, you could use the provided ARM Template to provision the recommended environment.

Resource Creation ✔️

  • Azure CLI
    az group create -g CICDToolchain
    az group deployment create -g CICDToolchain -n CICDToolchain --template-file azure/toolchain.json \
      --parameters adminPublicKey="$(cat ~/.ssh/id_rsa.pub)" domainNameLabel=<label>
  • PowerShell
    New-AzResourceGroup -Name CICDToolchain
    New-AzResourceGroupDeployment -ResourceGroupName CICDToolchain `
      -TemplateFile azure/toolchain.json `
      -domainNameLabel <label> `
      -adminPublicKey <pubkey>

Install ✔️

ansible-playbook -i <server_name>, -e "server=<server_name>,..." -u <ssh_user> install.yml

Uninstall ❌

ansible-playbook -i <server_name>, -e "server=<server_name>,..." -u <ssh_user> uninstall.yml

About

Combination of tools that aid in the delivery, development, and management of software applications throughout the systems development life cycle, as coordinated by an organisation that uses DevOps practices.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published