
Discover Jenkins, the leading automation server, and learn to automate tasks with pipelines and continuous integration and delivery while integrating with Docker, Ansible, Amazon Web Services, Git, and Maven.
Install VirtualBox on Windows and download the CentOS minimal ISO. Create a virtual machine from the ISO to start building your lab for Jenkins mastery.
Set up a CentOS 7 64-bit virtual machine in VirtualBox, enable bridged networking, install a minimal CentOS, and create an admin Jenkins user to boot into a ready lab.
Configure PuTTY to SSH into the Jenkins lab machine by retrieving the IP with ip a, installing PuTTY, saving the session, and logging in as the Jenkins user with password.
Connect to the virtual machine via ssh, verify internet access, install docker-ce on CentOS, enable the docker service, add Jenkins to the docker group, and test with docker ps.
Install docker compose on linux by downloading the binary, granting executable permissions to /usr/local/bin/docker-compose, and verifying the installation with a docker-compose command.
Install and run a Jenkins server quickly by downloading the official Jenkins Docker image with a command, then run the image to get Jenkins up in minutes.
Create a Docker compose file to spin up a Jenkins server, defining a Jenkins service with an image, port 8080, and a host volume mapped to Jenkins home on net.
Spin up a Jenkins service in Docker via compose, set Jenkins user permissions, and start the container. Retrieve the password from logs, install plugins, and create an admin user.
Edit the hosts file as administrator to map the Jenkins server ip to Jenkins.local, creating a local dns; then access Jenkins.local:8080.
Switch from PuTTY to ssh via ubuntu on Windows to get clearer, more reliable terminal sessions to the Jenkins machine. Access Jenkins.local securely with ssh, using the DNS name created.
Learn to manage a Jenkins service with Docker Compose, using up -d, down, start, stop, and restart commands, while volumes preserve Jenkins data.
Explore the Jenkins UI by navigating the dashboard, signing in, and learning key components like creating new items, user permissions, build history, credentials, security, and plugins.
Create your first Jenkins job as a freestyle project, configure a shell build step inside a container, and verify results via console output after you run the build.
Configure a Jenkins job to run dynamic Linux commands by using echo with command substitution, e.g., printing the current date, inside the job shell and viewing results in console output.
Learn to redirect bash output in a Jenkins job by using variables and echo, writing to a file inside the container, and understanding container isolation and volumes.
Learn to execute a bash script from Jenkins by creating a script, granting executable permission, and passing parameters, including name and last name, to run in a container.
Discover how to configure a Jenkins job as parameterized, define string parameters like first name and second name, and run builds with parameters to greet different people.
Learn to create a Jenkins list parameter (choice parameter) and use it in a script, with first name, second name, and last name in build with parameters.
Use boolean show parameter in a Jenkins script to conditionally print a first and last name; pass three parameters, copy the script to a container, and run to see output.
Connect Jenkins to a remote Docker container with SSH to run jobs externally. Create a CentOS 7 container with OpenSSH, a remote user, and secure .ssh access for CI.
Configure a Docker image to run an SSH service, generate and deploy SSH keys, set permissions, and start sshd so Jenkins can connect and run commands remotely.
Build and run a remote host via docker-compose, create a custom remote-host image from centos7, and enable passwordless ssh from a Jenkins container using a key.
Learn to find, install, and verify the SSH plugin in Jenkins, including installing without restart and then restarting Jenkins to test the plugin.
Configure Jenkins to connect to a docker ssh server by adding ssh sites and credentials for the remote host. Verify the connection and save the settings.
Create a Jenkins freestyle project to run a shell script on a remote host via SSH. The script writes a file on the remote host, validating remote execution.
Create a Jenkins job that backs up MySQL, uploads the backup to Amazon S3 via Docker, and runs the entire process with a single click.
Create a MySQL 5.7 container with docker compose up -d, configure environment variable for the root password, persist data via a volume, and verify readiness with logs and container access.
Install the MySQL client and AWS CLI in a CentOS 7 docker image to enable taking MySQL backups and uploading them to Amazon S3.
Sign in to the AWS console, open S3, and create a bucket with a name, then upload files to store objects in the cloud.
Create an IAM user with programmatic access to enable AWS authentication and S3 connectivity, attach AmazonS3FullAccess for testing, and download the credentials file.
Take a manual MySQL backup with mysqldump and the correct host. Upload the backup to an S3 bucket using AWS CLI with environment-variable credentials.
Automate MySQL backups with a shell script by using variables for host, password, and database name, driven by bash parameters; generate timestamped file names with date for unique backups.
Upload your database backup to Amazon S3 by exporting AWS credentials, configuring environment variables, and using aws s3 cp with a dynamic bucket and date-based file naming.
Learn to securely manage passwords and keys in Jenkins by using global credentials and secret text entries, including mysql_password and aws_secret_key, for protected data.
Create a parameterized freestyle Jenkins job to back up a MySQL database and upload it to an AWS S3 bucket using a remote ssh script and secret text for credentials.
Execute a parameterized Jenkins job to back up a MySQL database and upload the backup to AWS S3, with sensitive details masked for safe, repeatable deployments.
Persist the script on the remote host by mounting a Docker volume and mapping the host file to /tmp/script.sh via docker compose, with executable permissions.
Learn how Jenkins parameters steer dynamic jobs by changing db_host, testdb, and bucket names to create a new database and upload it to a matching bucket.
Learn to integrate Ansible with Jenkins, automate tasks, and explore Ansible scripting, HTML, CSS, MySQL, and Jenkins job parameters, including extra variables.
Learn to install Ansible in a Jenkins docker container using pip, Dockerfile, and docker-compose, then run playbooks with a Jenkins Ansible setup.
Share ssh private keys between the Jenkins container and your host by mapping the Jenkins home volume, creating an ansible folder, and persisting the remote key with docker compose.
Create a basic Ansible inventory to define hosts and groups, configure SSH access with a private key, and test connectivity to a remote host using the ping module.
Create your first ansible playbook in yml, set the test1 host, add tasks, copy play.yml to the jenkins_home ansible folder, then run ansible-playbook -i hosts play.yml to execute remotely.
Install the Ansible plugin via the manage plugins page with install without restart, restart Jenkins, then prepare to create a job that runs an Ansible playbook.
Execute an Ansible playbook from a Jenkins job by configuring a freestyle project, setting the playbook path and inventory, and validating results in the console.
Learn to pass Jenkins parameters into an Ansible playbook and print dynamic messages to stdout, avoiding direct playbook edits by using extra variables and debug statements.
Install the AnsiColor plugin and enable the ANSI color map and colorized standard output in Jenkins to display colored console output for playbooks.
Apply Jenkins and Ansible in a practical case to build a dynamic user table stored in MySQL, rendered with HTML, CSS, and PHP, with age-based filtering triggered by build parameters.
Create a MySQL database called people to store user data, then build a register table with id, name, last name, and age.
Create a bash script to seed the database with 50 fake users from people.txt, using nl for ids and awk with -F ',' to split name and last name.
Create a Bash script that retrieves names and last names from a file, assigns a random age with shuf, and inserts records into the MySQL register table.
Test your script by ensuring executable permission, copying to the MySQL container, and importing data from people.txt into the registered table, then verify IDs, names, last names, and ages.
Build a dockerized web server with nginx and php-fpm on CentOS 7, using a dockerfile, nginx.conf, and a start script to run sshd, php, and nginx.
Build and run a dockerized nginx web server with PHP inside a custom image using docker-compose. Expose port 80, connect to the network, and verify with a PHP info page.
Build a simple HTML table styled with CSS, populated by PHP from a MySQL database inside a docker container, and filter results by age.
Integrate a docker web container into the Ansible inventory by updating the hosts file in jenkins_home/ansible, then verify reachability with Ansible ping and Jenkins.
Create an Ansible playbook to refresh the web table by transferring a jinja2 template from the Jenkins container to the web1 container's index.php and rendering age data with a variable.
Test and validate your Ansible playbook by copying a table template into the Jenkins container, fixing permissions, and using -e variables to filter results via jinja logic.
Create a parameterized Jenkins freestyle job that, with a click, runs an Ansible playbook and outputs a PHP-driven HTML table from a database filtered by age on a web server.
Enable login security in Jenkins and examine the risks of disabling authentication. Create and manage users, define rules, and grant permissions to specific users and jobs.
Enable users to sign up in Jenkins to demonstrate self-registration and how a new account can default to admin, then disable it and plan future permission restrictions.
Install a role-based authorization strategy plugin to enhance Jenkins security, configure global security to delegate authorization to the plugin, and explore managing roles in the managed and assign roles section.
Create users manually in Jenkins' own database via Manage Jenkins and Manage Users, then test login to see access controlled by the security plugin and optional LDAP settings.
Learn to create a read-only role in Jenkins by navigating to manage roles, selecting read-only permissions, and saving the new role.
Assign the read-only role to the tom user in Jenkins to attach permissions and fix login errors. Then modify that role to allow reading jobs, enabling viewing them.
Create a build execution role in Jenkins to let a user read and build jobs, while restricting create, delete, or modify actions. Assign role to a user to enable builds.
Learn how to restrict Jenkins jobs to specific users by creating project roles with pattern-based access. Assign them to users via global roles and pattern rules like Ansible-.* and backup-.*.
Explore global environment variables in Jenkins and see how they are automatically available to every job, with examples like build number, build ID, and build URL.
Create global environment variables in Jenkins under Manage Jenkins > Configure the System > Global properties. Use them in a job to echo values like course name and country.
Change the Jenkins URL to a DNS name like jenkins.local, updating the Jenkins Location in Manage Jenkins. Save to resolve the IP-based error and enable DNS access.
Learn to automate Jenkins jobs with the built-in cron, configuring daily or minute-by-minute schedules using cron expressions, and observe results through timer-triggered builds and console output.
Learn to trigger Jenkins jobs from an external source by creating a dedicated user with read and build permissions, and assigning a global trigger role to enable all jobs.
Learn how to trigger a Jenkins job from a script without parameters by retrieving a crumb token and posting to the job url using curl.
Learn to trigger Jenkins jobs with parameters from a script. Grab the crumb, authenticate, and post build with parameters for backup-to-aws and ansible-users-db.
Install the mailer plugin in Jenkins by going to Manage Jenkins, then Manage Plugins, and install Mailer from the Available tab if needed; if not visible, check the Installed tab.
Integrate AWS Simple Email Service with Jenkins by verifying an email or domain, configuring SES SMTP, and testing notifications to ensure reliable Jenkins mail delivery.
Configure the smtp gmail server in Jenkins, enable ssl on port 465, and turn on less secure apps to test email delivery. Next, learn how these notifications connect to jobs.
Learn to configure email notifications in Jenkins using post-build actions, sending alerts for unstable and failed builds, with recipient setup and recovery emails.
Explore how Jenkins and Maven integrate to automate building, testing, and deploying Java projects from a Git repository via continuous integration.
install the maven plugin in Jenkins by accessing manage plugins, filtering for Maven, and installing the Maven Integration plugin, then validate the installation in the install tab.
Install and verify the Git plugin and Git client in Jenkins by checking installed plugins or expanding to the Available tab and installing as needed.
Learn how to clone a GitHub repository using Jenkins by setting up a freestyle project, configuring SCM with the Git plugin, and cloning the master branch into the Jenkins workspace.
Set up a Jenkins Maven installation in Global Tool Configuration, then configure a job to invoke top-level Maven targets and build a JAR by packaging with Maven, skipping tests.
Learn to run unit tests in a Maven project with Jenkins, configure the build, set environment variables, build a jar, and execute tests in a continuous integration workflow.
Deploy the built jar locally in Jenkins after downloading code, building, and passing tests. Run java -jar inside the Jenkins container to complete continuous integration and continued deployment.
learn to generate and display a graph of test results by publishing the JUnit test report in Jenkins, using the Maven surefire report to show trends across executions.
Archive the last successful artifact in Jenkins by configuring artifact archiving for the target jar, ensuring it only saves on successful builds and provides a downloadable file.
Set up Jenkins post-build email notifications for a Maven project, verify failure alerts, and ensure success messages arrive to confirm the build is back to normal.
This course requires you to download docker from the official Docker Repositories as well as images from Docker Hub. If you are a Udemy Business user, please check with your employer before downloading software.
Are you tired of struggling to learn Docker? Does it feel too complicated or confusing? Have you heard about it but still don't fully understand what it's all about?
Ready to become a DevOps automation expert with Jenkins?
Jenkins is a powerful, flexible tool that can automate almost anything! In this course, you'll learn to build strong automated processes like Pipelines, CI/CD Workflows, and more. Jenkins is a must-have skill in the DevOps world, trusted by top professionals to streamline development, testing, and deployment.
You'll also explore tools that work alongside Jenkins, like:
Docker for containerization
AWS for cloud computing
Ansible for configuration management
Git for version control
Maven for build automation
DSL for defining complex pipelines
Jenkinsfile for pipelines as Code
CI/CD for Continuous Integration and Deployment
This course is packed with hands-on exercises that help you master Jenkins and integrate it with these essential technologies. Whether you're a beginner or already have some experience, you'll learn practical skills to build efficient, reliable pipelines that automate your entire development lifecycle.
Don't miss the chance to step into a world of agile technologies, automate everything, and become a DevOps Master! What are you waiting for?