title
Jenkins Tutorial For Beginners - 1 | Continuous Integration with Jenkins | DevOps Tools | Edureka

description
πŸ”₯ DevOps Training (Use Code "π˜πŽπ”π“π”ππ„πŸπŸŽ"): https://www.edureka.co/devops-certification-training This Jenkins tutorial ( Jenkins Tutorial Blog Series: https://goo.gl/LzrvLP ) explains the basics of continuous integration and Jenkins. This DevOps and Jenkins tutorial video is specially designed for beginners to learn. To attend a live DevOps class, click here: http://bit.ly/29RQuLl This video will help you learn: β€’ What is Continuous Integration β€’ What is Jenkins and how to install it β€’ Configuring Jenkins β€’ Creating a Job with Jenkins β€’ Hands On – CI with Jenkins Subscribe to our channel to get video updates. Hit the subscribe button above. Check our complete DevOps playlist here: https://bit.ly/3iJoJIP Facebook: https://www.facebook.com/edurekaIN/ Twitter: https://twitter.com/edurekain LinkedIn: https://www.linkedin.com/company/edureka Telegram: https://t.me/edurekaupdates #Jenkins #JenkinsTutorial #DevOpsTutorial #DevOpsTools How it Works? 1. This is a 4 Week Instructor led Online Course. 2. Course consists of 24 hours of online classes, 25 hours of assignment, 20 hours of project 3. We have a 24x7 One-on-One LIVE Technical Support to help you with any problems you might face or any clarifications you may require during the course. 4. You will get Lifetime Access to the recordings in the LMS. 5. At the end of the training you will have to complete the project based on which we will provide you a Verifiable Certificate! - - - - - - - - - - - - - - About the Course Edureka’s DevOps online training is designed to help you master key tools of Devops lifecycle like Docker, Puppet, Jenkins, Nagios, GIT, Ansible, SaltStack and Chef used by a DevOps Engineer for automating multiple steps in SDLC. During this course, our expert DevOps instructors will help you: 1. Understand the concepts and necessities of DevOps 2. Understand the need for DevOps and the day-to-day real-life problems it resolves 3. Learn installation and configuration of common infrastructure servers like Apache, and Nginx for the Enterprise 4. Learn popular DevOps tools like Jenkins, Puppet, Chef, Ansible, SaltStack, Nagios and GIT 5. Implement automated system update, installations and deployments 6. Learn Virtualization Concepts 7. Configuration deployment and packaging, continuous integration using GIT 8. Fine tune Performance and set-up basic Security for Infrastructure 9. Manage server operations using Code which is popularly known as Infrastructure as a Code 10. Understand the need for and concepts of Monitoring and Logging. Along with the above mentioned topics, to help you master the most popular DevOps tools, you will also receive 3 additional self-paced courses including presentations, class recordings, assignments, solutions for the following tools: 1: Ansible - Covers Introduction, Setup & Configuration, Ansible Playbooks, 37 Ansible Modules, Different Roles and Command Line usage. 2: Chef - Covers Introduction, Building the Cook Book, Node Object & Search, Data-bags, Chef environment, Roles, Deploying Nodes in Production and using the Open Source Chef Server. 3: Puppet - Covers Puppet Infrastructure & run-cycle, the Puppet Language, Environment defining Nodes and Modules, Provisioning a Web Server and Executing Modules Against A Puppet Master. - - - - - - - - - - - - - - Who should go for this course? DevOps practitioners are among the highest paid IT professionals today, and the market demand for them is growing rapidly. With emergence of new job roles around DevOps philosophy, anyone aspiring to get into these new roles, can take up this DevOps course. Some of these roles are: 1. DevOps Architect 2. Automation Engineer 3. Software Tester 4. Security Engineer 5. Integration Specialist 6. Release Manager - - - - - - - - - - - - - - Project Work 1. Host a dummy webpage using Apache Web Server. 2. Write shell script which reports: a) Various system configurations related to the user and the OS. b) Data related to load on the server. c) Top 5 processes with maximum number of threads. d) Sort the services by memory 3. Install Nagios on a VM node for monitoring the various parameter of the VM. For more information, please write back to us at sales@edureka.co or call us at IND: 9606058406 / US: 18338555775 (toll-free). Customer Reviews: Ankur Kashyap, DevOps, Build & Release says: β€œI was enrolled into Devops training from Edureka On a professionalism, they provide a great presentation on the topic that helps to understand the indepth of Devops technology. Good knowledgeable staff, provide recorded sessions with life time warranty. Also technical team is really helpful if you stuck in some demo sessions. Keep it up !! ”

detail
{'title': 'Jenkins Tutorial For Beginners - 1 | Continuous Integration with Jenkins | DevOps Tools | Edureka', 'heatmap': [{'end': 1175.034, 'start': 1041.705, 'weight': 0.702}, {'end': 1762.916, 'start': 1497.303, 'weight': 0.981}, {'end': 2095.833, 'start': 1826.728, 'weight': 0.725}, {'end': 2285.099, 'start': 2151.821, 'weight': 0.761}, {'end': 2480.6, 'start': 2413.214, 'weight': 0.797}, {'end': 2873.625, 'start': 2543.389, 'weight': 0.782}, {'end': 3399.526, 'start': 3063.233, 'weight': 0.767}, {'end': 3525.028, 'start': 3459.453, 'weight': 0.756}], 'summary': 'This tutorial introduces jenkins for beginners, emphasizing the need for build and release pipeline setup, integrating with other tools, devops release mechanisms, continuous integration, jenkins installation, security, automation, git integration, release automation, and devops configurations, promoting faster development, code coverage of over 85%, and reducing testing time.', 'chapters': [{'end': 63.567, 'segs': [{'end': 63.567, 'src': 'embed', 'start': 23.147, 'weight': 0, 'content': [{'end': 29.951, 'text': 'A lot of people are jumping to this and everybody is a lot of concerned about setting up their build and release pipeline.', 'start': 23.147, 'duration': 6.804}, {'end': 42.423, 'text': 'Now this billing and release pipeline is actually divided into three different parts and we will be getting into details of it and where Jenkins fit and how do we connect to it with the other tools which are in the ecosystem.', 'start': 30.759, 'duration': 11.664}, {'end': 45.404, 'text': 'But before starting off with this presentation,', 'start': 42.883, 'duration': 2.521}, {'end': 49.945, 'text': 'can I have a quick confirmation from you guys that you are able to hear my voice and also see the slides?', 'start': 45.404, 'duration': 4.541}, {'end': 53.266, 'text': 'You can type in your chat boxes or raise your hands.', 'start': 50.745, 'duration': 2.521}, {'end': 55.807, 'text': 'Cool, guys, thanks.', 'start': 54.707, 'duration': 1.1}, {'end': 57.848, 'text': "So I'll just.", 'start': 56.207, 'duration': 1.641}, {'end': 60.926, 'text': 'tell you how we are going to interact.', 'start': 59.605, 'duration': 1.321}, {'end': 63.567, 'text': 'So you could type in your chat boxes like you have already done.', 'start': 61.066, 'duration': 2.501}], 'summary': 'Discussion on build and release pipeline with emphasis on jenkins integration.', 'duration': 40.42, 'max_score': 23.147, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo23147.jpg'}], 'start': 2.574, 'title': 'Introduction to jenkins webinar', 'summary': 'Introduces a webinar on getting started with jenkins, focusing on the need for build and release pipeline setup, and integrating jenkins with other tools in the ecosystem.', 'chapters': [{'end': 63.567, 'start': 2.574, 'title': 'Introduction to jenkins webinar', 'summary': 'Introduces the webinar on getting started with jenkins, highlighting the growing interest in devops and the need for build and release pipeline setup, with a focus on the three different parts of the pipeline and integrating jenkins with other tools in the ecosystem.', 'duration': 60.993, 'highlights': ['The chapter introduces the growing interest in DevOps and the need for build and release pipeline setup.', 'The presentation will cover the three different parts of the build and release pipeline and integration of Jenkins with other tools in the ecosystem.', "The speaker, Ashish Nanodkar, emphasizes the importance of confirming participants' ability to hear the presentation and see the slides."]}], 'duration': 60.993, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo2574.jpg', 'highlights': ['The presentation will cover the three different parts of the build and release pipeline and integration of Jenkins with other tools in the ecosystem.', 'The chapter introduces the growing interest in DevOps and the need for build and release pipeline setup.', "The speaker, Ashish Nanodkar, emphasizes the importance of confirming participants' ability to hear the presentation and see the slides."]}, {'end': 785.334, 'segs': [{'end': 92.62, 'src': 'embed', 'start': 64.387, 'weight': 0, 'content': [{'end': 69.729, 'text': 'If you want to discuss anything with me or ask queries person to person, you can just raise your hands.', 'start': 64.387, 'duration': 5.342}, {'end': 73.891, 'text': 'Whenever I get a logical break, I will be unmuting you and then we can discuss.', 'start': 70.189, 'duration': 3.702}, {'end': 82.614, 'text': 'Okay, sounds good? So, we were talking of DevOps release and build mechanisms.', 'start': 74.491, 'duration': 8.123}, {'end': 92.62, 'text': 'So you know that the code starts right away from the developed machine and we need some sort of version control systems in place.', 'start': 83.295, 'duration': 9.325}], 'summary': 'Discussion on devops release and build mechanisms, emphasizing the need for version control systems.', 'duration': 28.233, 'max_score': 64.387, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo64387.jpg'}, {'end': 146.22, 'src': 'embed', 'start': 115.186, 'weight': 2, 'content': [{'end': 119.928, 'text': 'And where does continuous integration fall in this complete release cycle?', 'start': 115.186, 'duration': 4.742}, {'end': 122.802, 'text': 'What is continuous integration in the first place?', 'start': 121.161, 'duration': 1.641}, {'end': 127.246, 'text': 'Is it different from what people call as continuous deployment or continuous delivery?', 'start': 122.982, 'duration': 4.264}, {'end': 130.208, 'text': 'If it is different, what is it exactly?', 'start': 127.886, 'duration': 2.322}, {'end': 132.169, 'text': "We'll see what is Jenkins.", 'start': 130.928, 'duration': 1.241}, {'end': 138.534, 'text': "Of course, that's software, right? So if you are attending this webinar, you already know a bit about what Jenkins is.", 'start': 133.11, 'duration': 5.424}, {'end': 139.275, 'text': 'You must have heard it.', 'start': 138.574, 'duration': 0.701}, {'end': 146.22, 'text': "So we'll get to know what it is and how it stands and what are the importance of it.", 'start': 140.676, 'duration': 5.544}], 'summary': 'Continuous integration and jenkins importance in release cycle.', 'duration': 31.034, 'max_score': 115.186, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo115186.jpg'}, {'end': 186.266, 'src': 'embed', 'start': 153.418, 'weight': 1, 'content': [{'end': 154.819, 'text': "Okay, so we'll be talking about that.", 'start': 153.418, 'duration': 1.401}, {'end': 164.408, 'text': "We'll be setting up Jenkins, configuring all of it all by ourselves, and setting it up in our network inside our own environment.", 'start': 155.26, 'duration': 9.148}, {'end': 169.773, 'text': "We'll be setting up some jobs, I'll get a repository from GitHub, we'll play along with it.", 'start': 165.149, 'duration': 4.624}, {'end': 171.174, 'text': "We'll also have.", 'start': 170.434, 'duration': 0.74}, {'end': 177.324, 'text': 'a small demo on how to trigger Maven targets using Jenkins.', 'start': 173.123, 'duration': 4.201}, {'end': 181.885, 'text': "So if you're a developer working on Java projects, you know what I'm talking of.", 'start': 177.944, 'duration': 3.941}, {'end': 186.266, 'text': 'Either you would be using Ant or you would be Maven,', 'start': 182.765, 'duration': 3.501}], 'summary': 'Setting up jenkins and configuring jobs in our network environment, with a demo on triggering maven targets.', 'duration': 32.848, 'max_score': 153.418, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo153418.jpg'}, {'end': 230.74, 'src': 'embed', 'start': 201.457, 'weight': 3, 'content': [{'end': 205.179, 'text': 'okay?, So that you get a hands-on approach and you can ask targeted questions.', 'start': 201.457, 'duration': 3.722}, {'end': 213.583, 'text': 'Well, if you are all aware, since our college days, of the waterfall model, the old software days right?', 'start': 207.44, 'duration': 6.143}, {'end': 219.026, 'text': 'Everything goes step by step and it has to be controlled by different teams.', 'start': 214.044, 'duration': 4.982}, {'end': 223.689, 'text': "So let's say we are working on a very big project and a few of my team members are developing the code.", 'start': 219.547, 'duration': 4.142}, {'end': 226.919, 'text': 'testing team still waits for the code to be finished.', 'start': 224.258, 'duration': 2.661}, {'end': 230.74, 'text': "Unless and until the features are all developed, they wouldn't be starting testing.", 'start': 227.759, 'duration': 2.981}], 'summary': 'Waterfall model involves sequential steps, causing delays in testing and development.', 'duration': 29.283, 'max_score': 201.457, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo201457.jpg'}, {'end': 313.358, 'src': 'embed', 'start': 287.1, 'weight': 4, 'content': [{'end': 291.763, 'text': "So he doesn't have to wait for weeks or months for the complete software to be ready and then test it.", 'start': 287.1, 'duration': 4.663}, {'end': 294.384, 'text': 'What he can do is incrementally test the stuff.', 'start': 292.303, 'duration': 2.081}, {'end': 304.41, 'text': 'While all these things are happening, you can easily figure out the redundant work.', 'start': 298.887, 'duration': 5.523}, {'end': 308.653, 'text': "Developers wouldn't be doing any redundant work because they're developing new features every day.", 'start': 305.111, 'duration': 3.542}, {'end': 313.358, 'text': "But from a tester's perspective, He would be testing the code.", 'start': 309.233, 'duration': 4.125}], 'summary': 'Developers can incrementally test new features, avoiding redundant work for testers.', 'duration': 26.258, 'max_score': 287.1, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo287100.jpg'}, {'end': 398.889, 'src': 'embed', 'start': 370.357, 'weight': 5, 'content': [{'end': 378.761, 'text': 'Jenkins, which is a continuous integration server, now the continuous integration phase starts from the point where developer commits the code.', 'start': 370.357, 'duration': 8.404}, {'end': 384.385, 'text': 'As soon as the code is out from the developer machine.', 'start': 380.282, 'duration': 4.103}, {'end': 391.729, 'text': 'in earlier days, what people used to do is there was a separate team that would be merging the code from different branches.', 'start': 384.385, 'duration': 7.344}, {'end': 398.889, 'text': 'So there were different teams working on diversified areas of the bigger project on separate modules.', 'start': 392.605, 'duration': 6.284}], 'summary': 'Jenkins automates code integration, enhancing collaboration among diverse project teams.', 'duration': 28.532, 'max_score': 370.357, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo370357.jpg'}, {'end': 661.857, 'src': 'embed', 'start': 636.261, 'weight': 6, 'content': [{'end': 641.763, 'text': 'just form that because we are going to identify the developers who are setting up the things,', 'start': 636.261, 'duration': 5.502}, {'end': 648.965, 'text': 'the testers who are actually writing the unit test and testing it, and everyone is accountable for the particular piece of code that they are writing.', 'start': 641.763, 'duration': 7.202}, {'end': 656.528, 'text': 'So what are the benefits of CI? Cast the issues first and nip them in the bud.', 'start': 650.866, 'duration': 5.662}, {'end': 660.416, 'text': 'What we mean by this is We know that the softwares fail.', 'start': 656.648, 'duration': 3.768}, {'end': 661.857, 'text': 'We are aware of it.', 'start': 661.117, 'duration': 0.74}], 'summary': 'Ci promotes accountability and early issue detection to improve software quality.', 'duration': 25.596, 'max_score': 636.261, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo636261.jpg'}], 'start': 64.387, 'title': 'Devops, jenkins, agile, and continuous integration', 'summary': 'Covers devops release and build mechanisms, continuous integration, and configuring jenkins for java projects. it also discusses the benefits of agile methodologies, including faster development, parallel work, incremental testing, and the significance of continuous integration in catching bugs early and promoting a transparent system.', 'chapters': [{'end': 201.457, 'start': 64.387, 'title': 'Understanding devops and jenkins', 'summary': 'Covers the process of devops release and build mechanisms, including the movement of code through version control systems and the significance of continuous integration, with a specific focus on setting up and configuring jenkins for java projects.', 'duration': 137.07, 'highlights': ['The chapter covers the process of DevOps release and build mechanisms, including the movement of code through version control systems. It explains the path of the code from the developed machine to version control systems and the subsequent automation, checking, building, deploying, and configuring processes.', 'The significance of continuous integration and its differentiation from continuous deployment or continuous delivery is discussed. It delves into the importance and distinctions of continuous integration, continuous deployment, and continuous delivery within the release cycle.', 'Setting up and configuring Jenkins for Java projects, including triggering Maven targets, is emphasized. It highlights the practical aspects of setting up Jenkins, configuring it for Java projects, and demonstrating the triggering of Maven targets.']}, {'end': 785.334, 'start': 201.457, 'title': 'Benefits of agile and continuous integration', 'summary': 'Discusses the transition from the waterfall model to agile methodologies in software development, emphasizing the advantages of agile such as faster development, parallel work, and incremental testing. it also highlights the significance of continuous integration in catching bugs early, creating a sense of responsibility and ownership, and promoting a transparent system.', 'duration': 583.877, 'highlights': ['Transition from waterfall model to Agile methodologies in software development, leading to faster development and parallel work. The adoption of Agile methodologies in software development has enabled faster and parallel work, allowing the development of software in bits and pieces rather than waiting for the complete software to be finished.', 'Emphasis on incremental testing in Agile, enabling testers to test features as soon as they are finished, avoiding the need to wait for weeks or months for the complete software. The incremental testing approach in Agile allows testers to test features as soon as they are finished, eliminating the need to wait for the complete software to be ready for testing.', 'Integration of continuous integration (CI) tools like Jenkins to automate build and release mechanisms, leading to smoother integration and reduced code conflicts. The integration of continuous integration tools like Jenkins has automated build and release mechanisms, resulting in smoother integration and reduced code conflicts by setting up the build and release pipeline.', 'Benefits of CI in catching bugs early, creating a sense of responsibility and ownership, and promoting a transparent system. Continuous integration helps in catching bugs early, instilling a sense of responsibility and ownership among team members, and promoting a transparent system where everyone is accountable for their code.']}], 'duration': 720.947, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo64387.jpg', 'highlights': ['The chapter covers the process of DevOps release and build mechanisms, including the movement of code through version control systems.', 'Setting up and configuring Jenkins for Java projects, including triggering Maven targets, is emphasized.', 'The significance of continuous integration and its differentiation from continuous deployment or continuous delivery is discussed.', 'Transition from waterfall model to Agile methodologies in software development, leading to faster development and parallel work.', 'Emphasis on incremental testing in Agile, enabling testers to test features as soon as they are finished.', 'Integration of continuous integration (CI) tools like Jenkins to automate build and release mechanisms, leading to smoother integration and reduced code conflicts.', 'Benefits of CI in catching bugs early, creating a sense of responsibility and ownership, and promoting a transparent system.']}, {'end': 1123.818, 'segs': [{'end': 858.511, 'src': 'embed', 'start': 831.108, 'weight': 2, 'content': [{'end': 833.71, 'text': 'The best case scenarios are more than 95% of code coverage.', 'start': 831.108, 'duration': 2.602}, {'end': 836.852, 'text': 'People have written code coverage that is almost 100%.', 'start': 834.35, 'duration': 2.502}, {'end': 845.036, 'text': 'So write the unit test cases that would test your code in every nook and corner so that you know everything is working fine.', 'start': 836.852, 'duration': 8.184}, {'end': 850.059, 'text': 'CI systems help you in building the code very fast.', 'start': 846.377, 'duration': 3.682}, {'end': 858.511, 'text': "How is it made fast? Let's say I'm generating The code for any security system that has to be deployed on multiple operating systems.", 'start': 851.479, 'duration': 7.032}], 'summary': 'Code coverage exceeds 95% with some reaching almost 100%; thorough unit testing ensures all code functionality is verified; ci systems enable fast code building.', 'duration': 27.403, 'max_score': 831.108, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo831108.jpg'}, {'end': 912.855, 'src': 'embed', 'start': 871.619, 'weight': 0, 'content': [{'end': 879.444, 'text': 'And this parallel configuration can help reduce the time to just minutes instead of hours or days or weeks.', 'start': 871.619, 'duration': 7.825}, {'end': 883.006, 'text': 'We stop waiting to find out if the code is going to work.', 'start': 880.524, 'duration': 2.482}, {'end': 887.844, 'text': "We know it is going to work or it's going to fail as soon as possible.", 'start': 883.362, 'duration': 4.482}, {'end': 893.126, 'text': 'So this continuous integration, it generates the artifacts which are supposed to be deployed.', 'start': 888.984, 'duration': 4.142}, {'end': 899.049, 'text': 'And where they are supposed to be deployed? Before deploying it to the production, we test it in the pre-production area.', 'start': 893.146, 'duration': 5.903}, {'end': 906.732, 'text': 'Now this pre-production area would be in a production-like configuration, or it would be on production itself, but the live traffic cannot hit it.', 'start': 899.649, 'duration': 7.083}, {'end': 907.873, 'text': 'It cannot reach it.', 'start': 907.192, 'duration': 0.681}, {'end': 912.855, 'text': 'So this is where continuous deployment happens, and this is done by your CI systems itself.', 'start': 907.893, 'duration': 4.962}], 'summary': 'Parallel configuration reduces time to minutes, ensuring code success before deployment to production.', 'duration': 41.236, 'max_score': 871.619, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo871619.jpg'}, {'end': 1077.792, 'src': 'embed', 'start': 991.368, 'weight': 4, 'content': [{'end': 994.79, 'text': 'Jenkins itself does not stand anywhere.', 'start': 991.368, 'duration': 3.422}, {'end': 998.312, 'text': 'So if you want to run a Maven job, you need to install Maven plugin.', 'start': 995.15, 'duration': 3.162}, {'end': 1006.131, 'text': 'If you want to run a GitHub integration or you want to integrate it with subversion, you need to have some plugins installed.', 'start': 998.772, 'duration': 7.359}, {'end': 1012.714, 'text': "But it's really good that Jenkins comes shipped with, or ships with a few of the plugins already installed.", 'start': 1006.991, 'duration': 5.723}, {'end': 1017.657, 'text': 'That would help you get the stuff up and running very fast.', 'start': 1013.154, 'duration': 4.503}, {'end': 1020.798, 'text': 'But if you want some customized stuff, you always need to have plugins.', 'start': 1017.817, 'duration': 2.981}, {'end': 1021.759, 'text': "And they're always there.", 'start': 1020.818, 'duration': 0.941}, {'end': 1027.461, 'text': 'There are thousands of plugins which are available with Jenkins that will help you to integrate any tool that is available in market, any.', 'start': 1022.259, 'duration': 5.202}, {'end': 1032.124, 'text': "At least I didn't find any of the tools that wouldn't be integrated with Jenkins.", 'start': 1028.662, 'duration': 3.462}, {'end': 1041.705, 'text': 'You call it Sonar, you call it Nagios PagerDuty, you call it a chat messaging system or a notification system, or integration with Git,', 'start': 1032.164, 'duration': 9.541}, {'end': 1049.248, 'text': 'Perforce or even Mercurial, or any code revision system, or maybe code review system,', 'start': 1041.705, 'duration': 7.543}, {'end': 1055.529, 'text': 'if you talk of like Garrett would be there or a review board would be there.', 'start': 1049.248, 'duration': 6.281}, {'end': 1056.67, 'text': 'any tools, okay?', 'start': 1055.529, 'duration': 1.141}, {'end': 1060.891, 'text': "So that's the reason why we are using Jenkins.", 'start': 1059.15, 'duration': 1.741}, {'end': 1068.244, 'text': "It's free, it's open source, It can be downloaded for any of the use, free of cost, and you guys also use it in the enterprise level.", 'start': 1061.051, 'duration': 7.193}, {'end': 1072.147, 'text': 'Of course, support is paid, but we are not going there for now.', 'start': 1069.285, 'duration': 2.862}, {'end': 1074.729, 'text': 'There are a lot of companies who are Jenkins.', 'start': 1072.167, 'duration': 2.562}, {'end': 1077.792, 'text': 'And you can also access their Jenkins board from public.', 'start': 1075.089, 'duration': 2.703}], 'summary': 'Jenkins has thousands of plugins for easy tool integration, making it widely used in enterprises.', 'duration': 86.424, 'max_score': 991.368, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo991368.jpg'}], 'start': 785.334, 'title': 'Continuous integration and automation using jenkins', 'summary': 'Emphasizes the importance of continuous integration in speeding up code development, achieving a code coverage of more than 85%, and reducing testing time from days to minutes through parallel configuration. it also discusses the use of jenkins for continuous integration and deployment, highlighting its features, integration with various tools, and its benefits as a free, open-source, and accessible enterprise-level tool.', 'chapters': [{'end': 912.855, 'start': 785.334, 'title': 'Continuous integration and automation', 'summary': 'Highlights the importance of continuous integration in speeding up code development by automating testing and deployment, achieving a code coverage of more than 85%, reducing testing time from days to minutes through parallel configuration, and enabling continuous deployment in a production-like pre-production environment.', 'duration': 127.521, 'highlights': ['Continuous Integration (CI) speeds up code development by automating testing and deployment. CI eliminates the need to manually understand and test code, providing immediate feedback and allowing fixes to be made swiftly, resulting in faster code development.', 'Achieving a code coverage of more than 85% is targeted, with best case scenarios reaching over 95%. The target is to achieve a code coverage of more than 85%, with some cases reaching over 95%, demonstrating the focus on thorough testing through unit test cases to ensure all aspects of the code are functioning properly.', 'Parallel configuration in CI reduces testing time from days to minutes. By running jobs parallelly and building on individual operating systems simultaneously, the testing time is significantly reduced from potentially days or weeks to just minutes, resulting in faster code development.', 'Continuous deployment is enabled in a production-like pre-production environment through CI systems. CI generates artifacts that are tested in a pre-production area resembling production, or on the production environment itself without live traffic, facilitating continuous deployment before deploying to the actual production environment.']}, {'end': 1123.818, 'start': 913.735, 'title': 'Using jenkins for continuous integration and deployment', 'summary': 'Discusses the use of jenkins for continuous integration and deployment, highlighting its features, integration with various tools, and its benefits in terms of being free, open source, and accessible at an enterprise level.', 'duration': 210.083, 'highlights': ['Jenkins is free, open source, and accessible at an enterprise level. Jenkins is free, open source, and can be accessed at an enterprise level, with support being paid.', 'Jenkins can integrate with various tools available in the market, including Sonar, Nagios, PagerDuty, and code revision systems like Git, Perforce, and Mercurial. Jenkins can integrate with various tools such as Sonar, Nagios, PagerDuty, Git, Perforce, and Mercurial, among others.', 'Jenkins requires plugins for customized functionality, with thousands of plugins available to integrate any tool in the market. Jenkins requires plugins for customized functionality, and there are thousands of plugins available for integration with any tool in the market.', 'Jenkins serves as a framework and requires plugins for various features such as Maven jobs, GitHub integration, and subversion integration. Jenkins serves as a framework and requires plugins for features like Maven jobs, GitHub integration, and subversion integration.']}], 'duration': 338.484, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo785334.jpg', 'highlights': ['Parallel configuration in CI reduces testing time from days to minutes.', 'Continuous Integration (CI) speeds up code development by automating testing and deployment.', 'Achieving a code coverage of more than 85% is targeted, with best case scenarios reaching over 95%.', 'Continuous deployment is enabled in a production-like pre-production environment through CI systems.', 'Jenkins can integrate with various tools available in the market, including Sonar, Nagios, PagerDuty, and code revision systems like Git, Perforce, and Mercurial.', 'Jenkins requires plugins for customized functionality, with thousands of plugins available to integrate any tool in the market.', 'Jenkins serves as a framework and requires plugins for various features such as Maven jobs, GitHub integration, and subversion integration.', 'Jenkins is free, open source, and accessible at an enterprise level.']}, {'end': 1706.707, 'segs': [{'end': 1278.943, 'src': 'embed', 'start': 1231.153, 'weight': 0, 'content': [{'end': 1234.233, 'text': 'So you could set it up on Ubuntu as well as CentOS or Relboxes.', 'start': 1231.153, 'duration': 3.08}, {'end': 1235.814, 'text': "I'm using Ubuntu.", 'start': 1235.034, 'duration': 0.78}, {'end': 1238.855, 'text': "I want to be light on resource utilization, that's why I'm using it.", 'start': 1236.374, 'duration': 2.481}, {'end': 1241.795, 'text': "So the version of Ubuntu that I'm using is 14.04 32-bit systems.", 'start': 1239.835, 'duration': 1.96}, {'end': 1248.128, 'text': 'and the steps that you would be using for installing Jenkins.', 'start': 1244.807, 'duration': 3.321}, {'end': 1251.03, 'text': 'Now this is one, you could download the war file and then execute it.', 'start': 1248.168, 'duration': 2.862}, {'end': 1256.592, 'text': 'Or even easier, you could directly add a key or to your source list.', 'start': 1252.27, 'duration': 4.322}, {'end': 1259.373, 'text': 'you could add a source.', 'start': 1256.592, 'duration': 2.781}, {'end': 1264.095, 'text': 'sorry, you could add a source list to your apt-get and then simply download the package.', 'start': 1259.373, 'duration': 4.722}, {'end': 1273.219, 'text': "I'll show you the other way, which is more easier, so that you don't have to worry about downloading the different war files going through the URLs.", 'start': 1264.975, 'duration': 8.244}, {'end': 1276.061, 'text': "Here it comes it's more easy.", 'start': 1274.5, 'duration': 1.561}, {'end': 1278.943, 'text': 'We call it as installing Jenkins.', 'start': 1276.782, 'duration': 2.161}], 'summary': 'Installing jenkins on ubuntu 14.04 32-bit using resource-light approach.', 'duration': 47.79, 'max_score': 1231.153, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo1231153.jpg'}, {'end': 1393.55, 'src': 'embed', 'start': 1352.819, 'weight': 2, 'content': [{'end': 1355.401, 'text': "Let's make this stuff more visible.", 'start': 1352.819, 'duration': 2.582}, {'end': 1379.687, 'text': 'Okay Get your sudo or add sudo to every command that I would be using.', 'start': 1363.067, 'duration': 16.62}, {'end': 1382.647, 'text': 'First things, add a source list.', 'start': 1380.547, 'duration': 2.1}, {'end': 1385.168, 'text': "So, very first I'm adding a key,", 'start': 1383.988, 'duration': 1.18}, {'end': 1390.689, 'text': 'then I would be creating a source list file for Jenkins and then we would be doing the regular AppGate update and AppGate install Jenkins.', 'start': 1385.168, 'duration': 5.521}, {'end': 1393.55, 'text': "That way we don't have to worry about downloading the war file.", 'start': 1391.209, 'duration': 2.341}], 'summary': 'Adding source list, key, and installing jenkins without downloading war file.', 'duration': 40.731, 'max_score': 1352.819, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo1352819.jpg'}, {'end': 1511.111, 'src': 'embed', 'start': 1488.3, 'weight': 3, 'content': [{'end': 1495.502, 'text': "in that case you wouldn't be getting pre-installed scripts for controlling the services.", 'start': 1488.3, 'duration': 7.202}, {'end': 1506.328, 'text': 'What I mean that if you set it up like this the trick that I have done right now you could get a benefit of pre-setup all the services.', 'start': 1497.303, 'duration': 9.025}, {'end': 1507.389, 'text': 'so you could use something like this', 'start': 1506.328, 'duration': 1.061}, {'end': 1511.111, 'text': 'Service Jenkins start, service Jenkins restart, stop status.', 'start': 1507.549, 'duration': 3.562}], 'summary': 'Setting up pre-installed scripts can streamline service management.', 'duration': 22.811, 'max_score': 1488.3, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo1488300.jpg'}, {'end': 1602.218, 'src': 'embed', 'start': 1578.646, 'weight': 4, 'content': [{'end': 1588.511, 'text': 'So this question is that how is Jenkins different from TeamCity by nature or by maybe from any other software? Like I said, Jenkins is a framework.', 'start': 1578.646, 'duration': 9.865}, {'end': 1594.334, 'text': 'It is just a framework which helps you coordinate the stuff.', 'start': 1590.392, 'duration': 3.942}, {'end': 1598.816, 'text': 'Now, plugins are there to help you out, to integrate with one another.', 'start': 1595.054, 'duration': 3.762}, {'end': 1600.217, 'text': "That's how it is.", 'start': 1599.516, 'duration': 0.701}, {'end': 1602.218, 'text': 'What the other softwares would be providing you.', 'start': 1600.417, 'duration': 1.801}], 'summary': 'Jenkins is a framework for coordinating with plugins, unlike other software.', 'duration': 23.572, 'max_score': 1578.646, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo1578646.jpg'}, {'end': 1676.001, 'src': 'embed', 'start': 1648.796, 'weight': 5, 'content': [{'end': 1655.74, 'text': 'Is there any way to configure only user authentication via LDAP and user groups in Jenkins? Yes, there is a way to do that.', 'start': 1648.796, 'duration': 6.944}, {'end': 1660.442, 'text': "Let's see if my Jenkins is installed.", 'start': 1658.401, 'duration': 2.041}, {'end': 1661.943, 'text': 'Okay, so Jenkins is installed.', 'start': 1660.622, 'duration': 1.321}, {'end': 1664.945, 'text': 'It would be running by default on port number 8080.', 'start': 1662.323, 'duration': 2.622}, {'end': 1665.665, 'text': 'You could change it.', 'start': 1664.945, 'duration': 0.72}, {'end': 1667.517, 'text': 'If you want to.', 'start': 1666.997, 'duration': 0.52}, {'end': 1672.7, 'text': "So by default it's running on port number 8080.", 'start': 1670.459, 'duration': 2.241}, {'end': 1674.681, 'text': "We'll just check it if it's still working.", 'start': 1672.7, 'duration': 1.981}, {'end': 1676.001, 'text': "Let's start.", 'start': 1675.461, 'duration': 0.54}], 'summary': 'Jenkins can be configured for ldap user authentication and groups, with default port 8080.', 'duration': 27.205, 'max_score': 1648.796, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo1648796.jpg'}], 'start': 1123.818, 'title': 'Jenkins installation and architectural differences', 'summary': 'Covers the installation of jenkins on ubuntu, including supported machines and installation steps, setting up jenkins with appgate, and highlights the architectural differences between jenkins and teamcity, emphasizing its plugin-based integration and user authentication methods.', 'chapters': [{'end': 1343.612, 'start': 1123.818, 'title': 'Installing jenkins on ubuntu', 'summary': 'Discusses the process of installing jenkins on ubuntu, including the supported machines, the default container for running jenkins, and the installation steps.', 'duration': 219.794, 'highlights': ['Jenkins can be installed on various machines, including Windows and different flavors of Linux, such as Ubuntu, CentOS, and Relboxes, and supports both 32-bit and 64-bit systems.', 'The default container for running Jenkins is its own server, which uses JT engine by default and can also be deployed using Tomcat by downloading the WAR file.', 'The preferred method for installing Jenkins on Ubuntu is by adding a source list to apt-get and then simply downloading the package from the official website of Jenkins, which provides the installation URL.']}, {'end': 1537.46, 'start': 1352.819, 'title': 'Setting up jenkins with appgate', 'summary': 'Covers setting up jenkins with appgate, including adding source list, updating and installing jenkins, highlighting the benefits of this approach to include pre-installed scripts for controlling the services and automatic startup of jenkins on system reboot.', 'duration': 184.641, 'highlights': ['By adding a source list, creating a source list file for Jenkins, and performing regular AppGate update and install Jenkins, the speaker aims to simplify the process of setting up Jenkins, thus reducing the need to download the war file.', 'Jenkins is designed to be user-friendly, requiring minimal configuration initially, and providing the option to install plugins only when needed, streamlining the setup process.', "Setting up Jenkins in the described manner allows for the pre-installation of scripts to control services, enabling commands like 'Service Jenkins start', 'service Jenkins restart', 'stop status', and automatic startup of Jenkins on system reboot, enhancing convenience and efficiency."]}, {'end': 1706.707, 'start': 1538.1, 'title': 'Jenkins vs teamcity: architectural differences', 'summary': 'Explains the architectural differences between jenkins and proprietary softwares like teamcity, emphasizing jenkins as a framework with plugins for integration, while also addressing user authentication via ldap and user groups in jenkins.', 'duration': 168.607, 'highlights': ['Jenkins is a framework with plugins for integration, while proprietary softwares like TeamCity have mostly required features built-in. Jenkins is described as a framework with plugins for integration, in contrast to proprietary softwares like TeamCity which have mostly required features built-in.', 'User authentication via LDAP and user groups can be configured in Jenkins. The chapter confirms that user authentication via LDAP and user groups can be configured in Jenkins.', 'Jenkins is by default running on port number 8080, but it can be changed. It is mentioned that Jenkins is by default running on port number 8080, with the possibility of it being changed.']}], 'duration': 582.889, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo1123818.jpg', 'highlights': ['Jenkins can be installed on various machines, including Windows and different flavors of Linux, such as Ubuntu, CentOS, and Relboxes, and supports both 32-bit and 64-bit systems.', 'The preferred method for installing Jenkins on Ubuntu is by adding a source list to apt-get and then simply downloading the package from the official website of Jenkins, which provides the installation URL.', 'By adding a source list, creating a source list file for Jenkins, and performing regular AppGate update and install Jenkins, the speaker aims to simplify the process of setting up Jenkins, thus reducing the need to download the war file.', "Setting up Jenkins in the described manner allows for the pre-installation of scripts to control services, enabling commands like 'Service Jenkins start', 'service Jenkins restart', 'stop status', and automatic startup of Jenkins on system reboot, enhancing convenience and efficiency.", 'Jenkins is a framework with plugins for integration, while proprietary softwares like TeamCity have mostly required features built-in.', 'User authentication via LDAP and user groups can be configured in Jenkins.', 'Jenkins is by default running on port number 8080, but it can be changed.']}, {'end': 2226.82, 'segs': [{'end': 2095.833, 'src': 'heatmap', 'start': 1807.059, 'weight': 0, 'content': [{'end': 1810.841, 'text': 'So, if you see the plugins listed here, we have got subversion plugin installed.', 'start': 1807.059, 'duration': 3.782}, {'end': 1813.662, 'text': 'we have got authentication plugins already there.', 'start': 1810.841, 'duration': 2.821}, {'end': 1816.303, 'text': 'we have got Windows slave plugins present there.', 'start': 1813.662, 'duration': 2.641}, {'end': 1822.766, 'text': 'LDAP, JUnit, so pretty much everything that you need to cover on a Java project.', 'start': 1817.584, 'duration': 5.182}, {'end': 1826.608, 'text': 'So there should also be a Maven plugin installed.', 'start': 1823.466, 'duration': 3.142}, {'end': 1829.249, 'text': 'Yeah, so there is a Maven plugin installed here as well.', 'start': 1826.728, 'duration': 2.521}, {'end': 1832.011, 'text': "All right, we'll be making use of these things.", 'start': 1830.25, 'duration': 1.761}, {'end': 1837.935, 'text': 'One such plugin which is not present here is integration with GitHub or using Git.', 'start': 1833.032, 'duration': 4.903}, {'end': 1846.181, 'text': 'So if you have a Git server or you are using some third party providers like GitHub or GitLab, Bitbucket, that integration is not present here.', 'start': 1838.136, 'duration': 8.045}, {'end': 1847.162, 'text': "So we'll be setting it up.", 'start': 1846.321, 'duration': 0.841}, {'end': 1850.424, 'text': "Let's go back to the slides and see what we have here.", 'start': 1848.163, 'duration': 2.261}, {'end': 1854.707, 'text': 'So the dashboard that we were looking at, it was a bare dashboard.', 'start': 1851.205, 'duration': 3.502}, {'end': 1857.289, 'text': 'Bare dashboard as in there were no jobs created.', 'start': 1855.448, 'duration': 1.841}, {'end': 1859.475, 'text': 'and hit the new button.', 'start': 1858.635, 'duration': 0.84}, {'end': 1867.519, 'text': 'here it says create new jobs, or we could click on the new item that would help us create one single entity which we want to automate,', 'start': 1859.475, 'duration': 8.044}, {'end': 1869.2, 'text': 'and that entity is called a job.', 'start': 1867.519, 'duration': 1.681}, {'end': 1876.623, 'text': 'Every entities or jobs that you have created would be listed like this, showing some color codes.', 'start': 1870.3, 'duration': 6.323}, {'end': 1884.226, 'text': 'Blue is for success, red is for failure, gray is when the job is aborted or it has not been started yet.', 'start': 1877.363, 'duration': 6.863}, {'end': 1897.798, 'text': "Okay One of the questions that I've just answered, that is Jenkins deployable on other application servers? Yes it is.", 'start': 1888.433, 'duration': 9.365}, {'end': 1903.761, 'text': 'So any server that would support a WAR file, you can deploy it there just as a regular web application,', 'start': 1898.178, 'duration': 5.583}, {'end': 1906.402, 'text': 'and it would get it running on port number 8080..', 'start': 1903.761, 'duration': 2.641}, {'end': 1909.764, 'text': "But you wouldn't get benefit of setting it up as services.", 'start': 1906.402, 'duration': 3.362}, {'end': 1913.646, 'text': 'All right? Okay.', 'start': 1911.025, 'duration': 2.621}, {'end': 1920.456, 'text': 'Very first, whenever you have Jenkins running, Your first step would be to configure the JDK and the build tools.', 'start': 1915.527, 'duration': 4.929}, {'end': 1929.422, 'text': "But these days we don't need to follow this step just because if your system is having Java installed on it,", 'start': 1922.877, 'duration': 6.545}, {'end': 1935.466, 'text': "if I can just hit Java version if it gives me a correct answer, I'm okay with that.", 'start': 1929.422, 'duration': 6.044}, {'end': 1939.889, 'text': 'My Jenkins can automatically detect and it can run.', 'start': 1937.347, 'duration': 2.542}, {'end': 1947.414, 'text': "So what I've installed here, the Jenkins version, it is automatically running, right? So we don't need to worry about this setup.", 'start': 1940.249, 'duration': 7.165}, {'end': 1951.351, 'text': "But if you want to set it up, it's under Global Configurations.", 'start': 1947.867, 'duration': 3.484}, {'end': 1953.173, 'text': 'Let me show it to you.', 'start': 1952.452, 'duration': 0.721}, {'end': 1962.643, 'text': "In the Manage Jenkins section, which will take you to the Admin Panel, there is a Configure System, where we'll be setting the global settings.", 'start': 1954.454, 'duration': 8.189}, {'end': 1985.178, 'text': 'So in this global settings, there are some main configuration areas.', 'start': 1980.376, 'duration': 4.802}, {'end': 1987.179, 'text': 'After that, we have JDK installations.', 'start': 1985.338, 'duration': 1.841}, {'end': 1995.062, 'text': 'So if you want to use your own custom JDK instead of one which is being installed on this machine, you could specify it here.', 'start': 1987.959, 'duration': 7.103}, {'end': 1999.084, 'text': 'Or alternatively, you could set up the Java home path.', 'start': 1996.023, 'duration': 3.061}, {'end': 2004.186, 'text': "So if you know what I'm talking of, on any of the Ubuntu systems, you could define the environment variables.", 'start': 2000.124, 'duration': 4.062}, {'end': 2008.848, 'text': 'We already have got one, which is the path variable, which everyone is aware of.', 'start': 2005.046, 'duration': 3.802}, {'end': 2017.452, 'text': "There's another one which is called Java Home, and then this one is required for Maven to run properly.", 'start': 2009.326, 'duration': 8.126}, {'end': 2024.478, 'text': "Okay? So Java Home you'll be setting up.", 'start': 2019.174, 'duration': 5.304}, {'end': 2026.579, 'text': "We don't need to worry about any of the configurations for now.", 'start': 2024.738, 'duration': 1.841}, {'end': 2028.321, 'text': "It's all default.", 'start': 2027.24, 'duration': 1.081}, {'end': 2036.427, 'text': 'If you want specific Maven installations to be running, we can set it up here, or you could just add Maven to your default path, where,', 'start': 2028.461, 'duration': 7.966}, {'end': 2038.649, 'text': 'if you type in MVN, it should work.', 'start': 2036.427, 'duration': 2.222}, {'end': 2043.721, 'text': "All right, if you don't want to use environment variables, in that case you could set it up here.", 'start': 2039.42, 'duration': 4.301}, {'end': 2048.243, 'text': "I'll show you whenever we download Maven in this demo session.", 'start': 2044.642, 'duration': 3.601}, {'end': 2055.284, 'text': 'Maven and Ant will do it when we need it.', 'start': 2052.924, 'duration': 2.36}, {'end': 2062.987, 'text': "Okay, in order to make Jenkins work with Git, until now we haven't configured anything.", 'start': 2057.306, 'duration': 5.681}, {'end': 2064.788, 'text': "I've just shown you the configuration screens.", 'start': 2063.088, 'duration': 1.7}, {'end': 2067.289, 'text': "We haven't even created the jobs.", 'start': 2065.588, 'duration': 1.701}, {'end': 2072.617, 'text': 'Okay, so first things first, we need to secure this machine.', 'start': 2069.335, 'duration': 3.282}, {'end': 2081.583, 'text': 'For securing this, I would go again to Manage Jenkins, configuring the global security options, which is on link number two.', 'start': 2074.458, 'duration': 7.125}, {'end': 2085.346, 'text': 'Enable security.', 'start': 2084.485, 'duration': 0.861}, {'end': 2088.148, 'text': 'There are multiple ways to enable the security.', 'start': 2085.906, 'duration': 2.242}, {'end': 2095.833, 'text': "Either you delegate to another servlet container, or you use Jenkins' own database for storing your username and passwords.", 'start': 2088.928, 'duration': 6.905}], 'summary': 'Jenkins setup includes various plugins and configurations, with plans to integrate with github, git, and securing the machine using global security options.', 'duration': 43.365, 'max_score': 1807.059, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo1807059.jpg'}, {'end': 1947.414, 'src': 'embed', 'start': 1922.877, 'weight': 2, 'content': [{'end': 1929.422, 'text': "But these days we don't need to follow this step just because if your system is having Java installed on it,", 'start': 1922.877, 'duration': 6.545}, {'end': 1935.466, 'text': "if I can just hit Java version if it gives me a correct answer, I'm okay with that.", 'start': 1929.422, 'duration': 6.044}, {'end': 1939.889, 'text': 'My Jenkins can automatically detect and it can run.', 'start': 1937.347, 'duration': 2.542}, {'end': 1947.414, 'text': "So what I've installed here, the Jenkins version, it is automatically running, right? So we don't need to worry about this setup.", 'start': 1940.249, 'duration': 7.165}], 'summary': 'Jenkins can automatically detect and run with java installed, eliminating the need for manual setup.', 'duration': 24.537, 'max_score': 1922.877, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo1922877.jpg'}, {'end': 2095.833, 'src': 'embed', 'start': 2065.588, 'weight': 3, 'content': [{'end': 2067.289, 'text': "We haven't even created the jobs.", 'start': 2065.588, 'duration': 1.701}, {'end': 2072.617, 'text': 'Okay, so first things first, we need to secure this machine.', 'start': 2069.335, 'duration': 3.282}, {'end': 2081.583, 'text': 'For securing this, I would go again to Manage Jenkins, configuring the global security options, which is on link number two.', 'start': 2074.458, 'duration': 7.125}, {'end': 2085.346, 'text': 'Enable security.', 'start': 2084.485, 'duration': 0.861}, {'end': 2088.148, 'text': 'There are multiple ways to enable the security.', 'start': 2085.906, 'duration': 2.242}, {'end': 2095.833, 'text': "Either you delegate to another servlet container, or you use Jenkins' own database for storing your username and passwords.", 'start': 2088.928, 'duration': 6.905}], 'summary': 'Instructions on securing jenkins through global security options and enabling security.', 'duration': 30.245, 'max_score': 2065.588, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo2065588.jpg'}, {'end': 2201.946, 'src': 'embed', 'start': 2158.185, 'weight': 4, 'content': [{'end': 2160.046, 'text': 'Okay, we are not going to enable it for anyone.', 'start': 2158.185, 'duration': 1.861}, {'end': 2165.549, 'text': "Just apply, save, it's really that easy.", 'start': 2162.087, 'duration': 3.462}, {'end': 2168.891, 'text': "Users, we don't have any users created for now.", 'start': 2166.21, 'duration': 2.681}, {'end': 2171.032, 'text': "Let's create an account.", 'start': 2169.972, 'duration': 1.06}, {'end': 2186.379, 'text': 'So I will create my account, type in some password, And then my email address.', 'start': 2171.773, 'duration': 14.606}, {'end': 2191.481, 'text': 'Sign up.', 'start': 2191.141, 'duration': 0.34}, {'end': 2197.303, 'text': 'This email address would be used by Jenkins to send you notifications.', 'start': 2192.862, 'duration': 4.441}, {'end': 2201.946, 'text': "All right, so now I'm logged in.", 'start': 2200.725, 'duration': 1.221}], 'summary': 'Creating an account for jenkins, easy and straightforward process.', 'duration': 43.761, 'max_score': 2158.185, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo2158185.jpg'}], 'start': 1706.707, 'title': 'Jenkins setup and security', 'summary': 'Discusses the lack of pre-installed security options and ldap authentication in jenkins, as well as the presence of various pre-installed plugins, highlighting the absence of integration with git services. it also provides a detailed overview of setting up jenkins, configuring jdk and build tools, securing the system, and creating user accounts.', 'chapters': [{'end': 1850.424, 'start': 1706.707, 'title': 'Jenkins plugins overview', 'summary': 'Discusses the lack of pre-installed security options and ldap authentication in jenkins, but highlights the presence of various pre-installed plugins such as subversion, authentication, windows slave, ldap, junit, and maven, with a notable absence of integration with git services like github, gitlab, and bitbucket.', 'duration': 143.717, 'highlights': ['The chapter highlights the presence of various pre-installed plugins such as subversion, authentication, Windows slave, LDAP, JUnit, and Maven, indicating that Jenkins comes with a wide range of plugins for Java projects.', 'It mentions the absence of integration with Git services like GitHub, GitLab, and Bitbucket, emphasizing the need to set it up separately for using Git with Jenkins.', 'It discusses the lack of pre-installed security options and LDAP authentication in Jenkins, highlighting the need to set up additional security measures.', 'It emphasizes the absence of security measures, jobs, and LDAP authentication in the current Jenkins setup, indicating a lack of out-of-the-box security features.', 'It mentions the presence of a Maven plugin as part of the pre-installed plugins, indicating support for Maven-based projects.']}, {'end': 2226.82, 'start': 1851.205, 'title': 'Setting up and securing jenkins', 'summary': 'Provides a detailed overview of setting up jenkins, including configuring jdk and build tools, securing the system, and creating user accounts, demonstrating the ease of use and flexibility of jenkins.', 'duration': 375.615, 'highlights': ['Jenkins can be deployed on any server supporting a WAR file, running on port 8080. Jenkins can be deployed on any server supporting a WAR file, running on port 8080.', 'Configuring JDK and build tools is the first step when setting up Jenkins, but it can be automatically detected if the system already has Java installed. Configuring JDK and build tools is the first step when setting up Jenkins, but it can be automatically detected if the system already has Java installed.', 'Demonstration of configuring global settings, including JDK installations and setting up Java home path for Maven. Demonstration of configuring global settings, including JDK installations and setting up Java home path for Maven.', "Securing the system by enabling security and configuring global security options using Jenkins' own database for storing usernames and passwords. Securing the system by enabling security and configuring global security options using Jenkins' own database for storing usernames and passwords.", 'Creating user accounts, allowing users to sign up, and then disabling the setting for other people to sign up. Creating user accounts, allowing users to sign up, and then disabling the setting for other people to sign up.']}], 'duration': 520.113, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo1706707.jpg', 'highlights': ['Jenkins comes with a wide range of pre-installed plugins for Java projects, including subversion, authentication, Windows slave, LDAP, JUnit, and Maven.', 'Setting up integration with Git services like GitHub, GitLab, and Bitbucket is necessary as Jenkins lacks pre-installed integration with Git services.', 'Configuring JDK and build tools is the initial step when setting up Jenkins, and it can be automatically detected if the system already has Java installed.', "Securing the system by enabling security and configuring global security options using Jenkins' own database for storing usernames and passwords is essential.", 'Creating user accounts, allowing users to sign up, and then disabling the setting for other people to sign up is a crucial step in Jenkins setup.']}, {'end': 3316.57, 'segs': [{'end': 2340.369, 'src': 'embed', 'start': 2270.458, 'weight': 0, 'content': [{'end': 2273.554, 'text': 'What other things can Jenkins do for you? It could get the code down.', 'start': 2270.458, 'duration': 3.096}, {'end': 2274.755, 'text': 'It could check the check style.', 'start': 2273.634, 'duration': 1.121}, {'end': 2276.235, 'text': 'It could check the syntax.', 'start': 2274.795, 'duration': 1.44}, {'end': 2278.196, 'text': 'Semantics could build it.', 'start': 2276.656, 'duration': 1.54}, {'end': 2282.638, 'text': 'Before packaging, it can check the compilation and test all the unit test cases.', 'start': 2279.377, 'duration': 3.261}, {'end': 2285.099, 'text': "Once that's done, it would be packaging it.", 'start': 2283.418, 'duration': 1.681}, {'end': 2290.721, 'text': 'It could also keep your packaged artifacts somewhere on the third repository.', 'start': 2285.599, 'duration': 5.122}, {'end': 2296.584, 'text': 'Now, the binary repositories that you might have either would be Nexus or you are using Artifactory.', 'start': 2291.201, 'duration': 5.383}, {'end': 2300.105, 'text': 'whatever you are using, Gentileans can deploy that code there for you.', 'start': 2296.584, 'duration': 3.521}, {'end': 2307.535, 'text': 'It can also move your code from the Jenkins running boxes to some other box or some other machine,', 'start': 2301.59, 'duration': 5.945}, {'end': 2310.477, 'text': 'where that machine can take care of deploying it onto the production units.', 'start': 2307.535, 'duration': 2.942}, {'end': 2319.864, 'text': 'Maybe that box is your chef workstation or it could be your puppet master, anything, whatever you want to configure.', 'start': 2311.618, 'duration': 8.246}, {'end': 2331.845, 'text': 'So the underlying idea is that anything that you can configure manually can be automated using Jenkins.', 'start': 2322.226, 'duration': 9.619}, {'end': 2340.369, 'text': "So if I'm firing a thousand commands on my machine, if I put it in nice build steps or create a script out of it, Jenkins can do it for me.", 'start': 2332.265, 'duration': 8.104}], 'summary': 'Jenkins automates code checking, building, testing, packaging, and deploying, enabling configuration automation for various processes.', 'duration': 69.911, 'max_score': 2270.458, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo2270458.jpg'}, {'end': 2505.625, 'src': 'heatmap', 'start': 2413.214, 'weight': 3, 'content': [{'end': 2416.356, 'text': 'or for any automation for that say, any tool that you are using.', 'start': 2413.214, 'duration': 3.142}, {'end': 2420.918, 'text': "I'm creating a new job where I would be requiring to connect to GitHub.", 'start': 2417.056, 'duration': 3.862}, {'end': 2427.621, 'text': "Like I said, Jenkins doesn't have Git integration built in so I would be adding a plugin here.", 'start': 2421.378, 'duration': 6.243}, {'end': 2434.885, 'text': 'So go to manage plugins area where we move to the available section where all the available plugins would be listed.', 'start': 2428.042, 'duration': 6.843}, {'end': 2439.928, 'text': 'Go to the filter section, type in Git plugin.', 'start': 2436.766, 'duration': 3.162}, {'end': 2447.076, 'text': "Or if you don't know the plugin name, You could simply find the plugins by typing git.", 'start': 2441.008, 'duration': 6.068}, {'end': 2449.357, 'text': 'There would be many plugins which are available.', 'start': 2447.757, 'duration': 1.6}, {'end': 2450.818, 'text': 'Try the one that suits you.', 'start': 2449.717, 'duration': 1.101}, {'end': 2458.061, 'text': "If you don't know which one, Google it out and, sorry, Jenkins website can help you set up things for you.", 'start': 2451.158, 'duration': 6.903}, {'end': 2462.063, 'text': 'Git plugin installed without restart.', 'start': 2459.802, 'duration': 2.261}, {'end': 2470.446, 'text': 'So it would be installing all the supportive plugins if they need, or installation or updation, whatever it requires.', 'start': 2464.223, 'duration': 6.223}, {'end': 2480.6, 'text': 'It will take a few minutes.', 'start': 2479.54, 'duration': 1.06}, {'end': 2505.625, 'text': 'Okay, good question here.', 'start': 2504.765, 'duration': 0.86}], 'summary': 'Setting up git plugin in jenkins for automation, using available plugins and connecting to github.', 'duration': 54.467, 'max_score': 2413.214, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo2413214.jpg'}, {'end': 2873.625, 'src': 'heatmap', 'start': 2543.389, 'weight': 0.782, 'content': [{'end': 2551.814, 'text': "While you're installing the Jenkins package, one Jenkins user is created on your system, which is also having Jenkins group,", 'start': 2543.389, 'duration': 8.425}, {'end': 2553.995, 'text': 'and its home directory would be varlib Jenkins.', 'start': 2551.814, 'duration': 2.181}, {'end': 2556.056, 'text': "It wouldn't be slash home slash Jenkins.", 'start': 2554.215, 'duration': 1.841}, {'end': 2560.978, 'text': 'It would be slash var slash lib slash Jenkins, where all your folders would be kept.', 'start': 2556.616, 'duration': 4.362}, {'end': 2565.861, 'text': 'Out of these folders, there are a few important ones that you need to care about.', 'start': 2561.439, 'duration': 4.422}, {'end': 2569.234, 'text': 'Jobs, where all your job configurations would be kept.', 'start': 2566.832, 'duration': 2.402}, {'end': 2574.377, 'text': 'Nodes, where all your slave nodes would be kept.', 'start': 2570.635, 'duration': 3.742}, {'end': 2576.399, 'text': 'That means the configuration of the slave nodes would be kept.', 'start': 2574.417, 'duration': 1.982}, {'end': 2579, 'text': 'All your plugins goes into plugins directory.', 'start': 2576.979, 'duration': 2.021}, {'end': 2582.523, 'text': 'Let me show you the plugins directory.', 'start': 2580.361, 'duration': 2.162}, {'end': 2584.004, 'text': 'Alice on plugins.', 'start': 2583.103, 'duration': 0.901}, {'end': 2588.126, 'text': 'There are plugins which have got JPI extension to them.', 'start': 2585.245, 'duration': 2.881}, {'end': 2589.968, 'text': "You'll have to copy those plugins here.", 'start': 2588.347, 'duration': 1.621}, {'end': 2593.25, 'text': 'Next time you restart Jenkins, it will be taken care of.', 'start': 2590.368, 'duration': 2.882}, {'end': 2604.329, 'text': 'Now, since this is a home folder for Jenkins, if you add any of the keys, those keys would be added into a secret.sh folder.', 'start': 2595.123, 'duration': 9.206}, {'end': 2606.63, 'text': "Now, it's not there since we haven't added anything.", 'start': 2604.389, 'duration': 2.241}, {'end': 2615.375, 'text': 'Okay If I have to do that, I could just say su on Jenkins.', 'start': 2607.65, 'duration': 7.725}, {'end': 2617.116, 'text': 'Show me the path where I am.', 'start': 2616.156, 'duration': 0.96}, {'end': 2621.579, 'text': 'Okay sh keygen to generate the key for myself.', 'start': 2617.656, 'duration': 3.923}, {'end': 2623.62, 'text': 'That means for the Jenkins user.', 'start': 2622.159, 'duration': 1.461}, {'end': 2632.067, 'text': 'Done And there would be a folder present here.', 'start': 2626.266, 'duration': 5.801}, {'end': 2633.067, 'text': 'Let me exit.', 'start': 2632.447, 'duration': 0.62}, {'end': 2638.188, 'text': 'If you see, there is a .', 'start': 2637.208, 'duration': 0.98}, {'end': 2641.269, 'text': 'sh folder created, which would be having all the keys.', 'start': 2638.188, 'duration': 3.081}, {'end': 2651.791, 'text': 'If you are not using Java, Jenkins can be used to automate any stuff.', 'start': 2648.371, 'duration': 3.42}, {'end': 2659.179, 'text': 'It could be either C++ or maybe PHP projects or Python projects, okay?', 'start': 2652.391, 'duration': 6.788}, {'end': 2665.32, 'text': 'So what you could do is you could also automate building your code and generating RPMs out of it.', 'start': 2659.759, 'duration': 5.561}, {'end': 2673.101, 'text': 'So, if you know how to build the RPM files by writing spec files and distributing the content across the temporary folders,', 'start': 2666.16, 'duration': 6.941}, {'end': 2675.361, 'text': 'that you would be having some source files there.', 'start': 2673.101, 'duration': 2.26}, {'end': 2680.822, 'text': 'okay?. If you know how to do that and you could generate RPMs, you can also automate that using Jenkins, okay?', 'start': 2675.361, 'duration': 5.461}, {'end': 2685.003, 'text': 'So yes, Hemani, your question is legitimate and it can be done.', 'start': 2681.262, 'duration': 3.741}, {'end': 2692.881, 'text': "I'll show you once we get to the building process so that you know how to add the build steps.", 'start': 2689.039, 'duration': 3.842}, {'end': 2695.583, 'text': 'Okay, so here is Jenkins.', 'start': 2694.022, 'duration': 1.561}, {'end': 2696.544, 'text': "It's restarted.", 'start': 2695.783, 'duration': 0.761}, {'end': 2698.405, 'text': 'Trying to log in.', 'start': 2697.644, 'duration': 0.761}, {'end': 2703.828, 'text': 'Worked Jenkins would be having Git plugin installed now.', 'start': 2699.065, 'duration': 4.763}, {'end': 2710.592, 'text': 'So it will present in the installed, sorry, it will be present in the installed plugin section.', 'start': 2704.668, 'duration': 5.924}, {'end': 2711.713, 'text': 'Here it is.', 'start': 2711.212, 'duration': 0.501}, {'end': 2718.617, 'text': 'Okay And where it is reflecting? It would be reflecting itself in the new item.', 'start': 2712.893, 'duration': 5.724}, {'end': 2720.239, 'text': "I'll be creating a job now.", 'start': 2718.959, 'duration': 1.28}, {'end': 2735.924, 'text': "So when we want to create a job, what we'll be doing is I'm using our demo repository here, which is at this URL.", 'start': 2726.941, 'duration': 8.983}, {'end': 2746.187, 'text': "BacalioGameOfLife.git is a project, a demo project that we'll be using, which has got its own unit test written.", 'start': 2736.604, 'duration': 9.583}, {'end': 2747.207, 'text': 'So we could use any.', 'start': 2746.267, 'duration': 0.94}, {'end': 2752.951, 'text': 'repository that is available on GitHub, just it should be publicly available, and we are not committing back to it.', 'start': 2748.169, 'duration': 4.782}, {'end': 2754.451, 'text': 'So we are not messing up with the code.', 'start': 2753.091, 'duration': 1.36}, {'end': 2759.873, 'text': 'So I would be using this repository for setting up a job for myself.', 'start': 2755.872, 'duration': 4.001}, {'end': 2766.995, 'text': 'So for setting up the job, what I would be doing is, I would be creating a job in Freestyle Project.', 'start': 2761.473, 'duration': 5.522}, {'end': 2772.997, 'text': 'You can also specify that it is going to be a Maven project right up front, so you could choose a Maven job.', 'start': 2767.335, 'duration': 5.662}, {'end': 2780.197, 'text': 'Or an external job, that means if you want to trigger another job on another Jenkins installation, you could also do that.', 'start': 2774.232, 'duration': 5.965}, {'end': 2782.719, 'text': 'Or if you have some requirements.', 'start': 2780.978, 'duration': 1.741}, {'end': 2788.483, 'text': 'like you want to build the code on multiple operating systems at once using different environmental parameters,', 'start': 2782.719, 'duration': 5.764}, {'end': 2792.707, 'text': 'you could go for a multi-configuration project.', 'start': 2788.483, 'duration': 4.224}, {'end': 2799.151, 'text': 'I use Freestyle Project, we will call it as Game of Life Packaging.', 'start': 2792.767, 'duration': 6.384}, {'end': 2804.777, 'text': 'Give your job some meaningful name.', 'start': 2803.297, 'duration': 1.48}, {'end': 2806.518, 'text': 'You could create one.', 'start': 2805.758, 'duration': 0.76}, {'end': 2818.62, 'text': 'Now, how do we set it up? This job will generate deployable package.', 'start': 2807.438, 'duration': 11.182}, {'end': 2823.661, 'text': 'Okay Any description that suits you.', 'start': 2821.881, 'duration': 1.78}, {'end': 2826.362, 'text': 'Now, there are options for discarding old builds.', 'start': 2824.641, 'duration': 1.721}, {'end': 2830.562, 'text': 'Whenever Jenkins job execute, it would generate a few log files.', 'start': 2827.502, 'duration': 3.06}, {'end': 2833.023, 'text': "It would generate some artifacts if you're packaging this stuff.", 'start': 2830.603, 'duration': 2.42}, {'end': 2837.415, 'text': 'And every time you generate these files, a few MB of space would be used up.', 'start': 2833.752, 'duration': 3.663}, {'end': 2842.218, 'text': 'And sooner or later, you would be running out of disk space.', 'start': 2838.655, 'duration': 3.563}, {'end': 2849.163, 'text': "If you don't want to do that, what you would be doing is you would specify how many maximum number of builds that you would be keeping.", 'start': 2842.939, 'duration': 6.224}, {'end': 2857.789, 'text': 'You can also specify the number of days that you wish to keep the builds on that box.', 'start': 2853.046, 'duration': 4.743}, {'end': 2861.191, 'text': 'So I would say, I just need five last builds.', 'start': 2858.79, 'duration': 2.401}, {'end': 2863.433, 'text': "I'm not worried about any amount of builds there.", 'start': 2861.331, 'duration': 2.102}, {'end': 2866.741, 'text': 'on environmental skill?', 'start': 2864.239, 'duration': 2.502}, {'end': 2867.821, 'text': 'sorry, not environmental.', 'start': 2866.741, 'duration': 1.08}, {'end': 2873.625, 'text': 'on enterprise level skill, what you would be doing is you would be setting up days to your release cycle.', 'start': 2867.821, 'duration': 5.804}], 'summary': 'Jenkins installation creates a user with key management and plugin setup. it can automate building and packaging of code across different environments.', 'duration': 330.236, 'max_score': 2543.389, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo2543389.jpg'}, {'end': 2788.483, 'src': 'embed', 'start': 2761.473, 'weight': 4, 'content': [{'end': 2766.995, 'text': 'So for setting up the job, what I would be doing is, I would be creating a job in Freestyle Project.', 'start': 2761.473, 'duration': 5.522}, {'end': 2772.997, 'text': 'You can also specify that it is going to be a Maven project right up front, so you could choose a Maven job.', 'start': 2767.335, 'duration': 5.662}, {'end': 2780.197, 'text': 'Or an external job, that means if you want to trigger another job on another Jenkins installation, you could also do that.', 'start': 2774.232, 'duration': 5.965}, {'end': 2782.719, 'text': 'Or if you have some requirements.', 'start': 2780.978, 'duration': 1.741}, {'end': 2788.483, 'text': 'like you want to build the code on multiple operating systems at once using different environmental parameters,', 'start': 2782.719, 'duration': 5.764}], 'summary': 'Setting up a job in jenkins involves creating a freestyle or maven project, and allows for triggering external jobs on other jenkins installations.', 'duration': 27.01, 'max_score': 2761.473, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo2761473.jpg'}, {'end': 3082.17, 'src': 'embed', 'start': 3050.374, 'weight': 9, 'content': [{'end': 3055.316, 'text': "If you don't have internet, you definitely have got some yum kind of repository set up on the local.", 'start': 3050.374, 'duration': 4.942}, {'end': 3057.397, 'text': 'You could also do that with AppGate if you want to.', 'start': 3055.836, 'duration': 1.561}, {'end': 3062.933, 'text': 'So you can download the package, keep it there, and then install it via the same process that we have used.', 'start': 3058.089, 'duration': 4.844}, {'end': 3068.638, 'text': 'Or, even simpler, you could just get a WAR file and execute it with a Java command.', 'start': 3063.233, 'duration': 5.405}, {'end': 3070.34, 'text': 'Okay, should work.', 'start': 3069.599, 'duration': 0.741}, {'end': 3075.124, 'text': 'Alright, the next part here, we could choose Git.', 'start': 3071.741, 'duration': 3.383}, {'end': 3082.17, 'text': "What's my repository URL? I must go back and figure it out.", 'start': 3076.345, 'duration': 5.825}], 'summary': 'Setting up local repositories and executing war files for installation and deployment.', 'duration': 31.796, 'max_score': 3050.374, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo3050374.jpg'}, {'end': 3144.152, 'src': 'embed', 'start': 3114.525, 'weight': 5, 'content': [{'end': 3117.65, 'text': 'Okay Master branch has to be checked out.', 'start': 3114.525, 'duration': 3.125}, {'end': 3119.011, 'text': 'You can set up the branches here.', 'start': 3117.69, 'duration': 1.321}, {'end': 3124.236, 'text': 'Now, I could choose between the different source code management softwares or SCM softwares.', 'start': 3120.232, 'duration': 4.004}, {'end': 3128.159, 'text': 'It could be CVS, there would be a Perforce version available.', 'start': 3124.296, 'duration': 3.863}, {'end': 3132.943, 'text': 'You could also have Mercurial plugin installed here that would be supporting Mercurial.', 'start': 3128.179, 'duration': 4.764}, {'end': 3133.643, 'text': 'Git is there.', 'start': 3133.103, 'duration': 0.54}, {'end': 3136.346, 'text': 'Subversion comes in pre-installed as plugin.', 'start': 3134.304, 'duration': 2.042}, {'end': 3144.152, 'text': 'Okay, once you are having the source code on the disk, if you want to check it again, that what should keep this system running?', 'start': 3137.767, 'duration': 6.385}], 'summary': 'Setting up branches with various source code management softwares and plugins.', 'duration': 29.627, 'max_score': 3114.525, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo3114525.jpg'}, {'end': 3184.292, 'src': 'embed', 'start': 3158.504, 'weight': 6, 'content': [{'end': 3164.267, 'text': 'So on the build trigger side, you can trigger the build after other projects are built, so you could create it as a dependency.', 'start': 3158.504, 'duration': 5.763}, {'end': 3168.75, 'text': 'You could build it periodically, every five minutes, every 10 minutes if you want to do so.', 'start': 3164.968, 'duration': 3.782}, {'end': 3172.712, 'text': "Or if you don't want to load your systems with too much of builds.", 'start': 3169.51, 'duration': 3.202}, {'end': 3176.686, 'text': 'what you could do is, if someone commits, Okay, only then you would be running the build.', 'start': 3172.712, 'duration': 3.974}, {'end': 3178.668, 'text': 'In that case, you should be polling the SCM.', 'start': 3176.946, 'duration': 1.722}, {'end': 3184.292, 'text': 'And the frequency at which you would be checking your source code management software, you can manage it here.', 'start': 3179.248, 'duration': 5.044}], 'summary': 'Configure build trigger with options like dependency, periodic or commit-based, and scm polling.', 'duration': 25.788, 'max_score': 3158.504, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo3158504.jpg'}, {'end': 3230.492, 'src': 'embed', 'start': 3199.323, 'weight': 7, 'content': [{'end': 3201.385, 'text': 'In our case, we would be adding a build step.', 'start': 3199.323, 'duration': 2.062}, {'end': 3211.728, 'text': "We will set up top level Maven targets, and since we want to package the code, it's very easy to do so.", 'start': 3201.925, 'duration': 9.803}, {'end': 3213.368, 'text': 'I could just say clean and package.', 'start': 3211.928, 'duration': 1.44}, {'end': 3224.531, 'text': 'Okay, so the command that you would be actually firing here would be mvn clean package inside that workspace wherever the code is going to be checked out.', 'start': 3214.508, 'duration': 10.023}, {'end': 3230.492, 'text': 'Generally, the codes are checked out in a separate folder, depending on which version of Jenkins you are using.', 'start': 3224.991, 'duration': 5.501}], 'summary': "Setting up top level maven targets allows easy code packaging with 'mvn clean package' command.", 'duration': 31.169, 'max_score': 3199.323, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo3199323.jpg'}, {'end': 3275.597, 'src': 'embed', 'start': 3246.24, 'weight': 8, 'content': [{'end': 3249.102, 'text': 'And config.xml are actually present at every different levels.', 'start': 3246.24, 'duration': 2.862}, {'end': 3253.864, 'text': 'So when it is present inside a job folder, it would be holding the job configuration.', 'start': 3249.362, 'duration': 4.502}, {'end': 3259.027, 'text': 'When it is present at the root level folder, it is holding the Jenkins environment configuration.', 'start': 3253.924, 'duration': 5.103}, {'end': 3263.255, 'text': 'So same file at different levels mean different things.', 'start': 3260.694, 'duration': 2.561}, {'end': 3264.875, 'text': 'And since it is .', 'start': 3263.955, 'duration': 0.92}, {'end': 3270.116, 'text': 'xml, it would be following the xml 1.0 version to write all the configuration settings there.', 'start': 3264.875, 'duration': 5.241}, {'end': 3275.597, 'text': 'Well, there would be another folder created when we start the job.', 'start': 3271.956, 'duration': 3.641}], 'summary': 'Config.xml holds job or jenkins config at different levels, following xml 1.0.', 'duration': 29.357, 'max_score': 3246.24, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo3246240.jpg'}], 'start': 2227.36, 'title': 'Jenkins automation and git integration', 'summary': 'Covers automating build processes with jenkins, including connecting to github, packaging the code, deploying artifacts, and setting up git integration, emphasizing adding plugins, configuring job settings, and enabling concurrent builds.', 'chapters': [{'end': 2400.724, 'start': 2227.36, 'title': 'Automating build processes with jenkins', 'summary': 'Discusses automating build processes using jenkins, including connecting to github, packaging the code, deploying artifacts, and automating various tasks such as checking syntax, compilation, and unit testing.', 'duration': 173.364, 'highlights': ['Jenkins can automate various tasks such as checking syntax, compilation, and unit testing before packaging the code. Jenkins can perform tasks such as checking syntax, compilation, and testing all the unit test cases before packaging the code, streamlining the build process.', 'Jenkins can deploy code to binary repositories like Nexus or Artifactory. Jenkins can deploy packaged artifacts to binary repositories such as Nexus or Artifactory, providing seamless integration with the development workflow.', 'Jenkins can automate manual configurations, effectively replacing manual commands with build steps or scripts. Jenkins can automate any manual configurations or commands by replacing them with build steps or scripts, streamlining and automating repetitive tasks.']}, {'end': 3026.873, 'start': 2401.605, 'title': 'Setting up git integration in jenkins', 'summary': 'Explains the process of setting up git integration in jenkins, including adding plugins, manually deploying plugins, configuring job settings, and enabling concurrent builds, with emphasis on relevant directories and key considerations.', 'duration': 625.268, 'highlights': ['Jenkins requires manual setup of keys and plugins before automation Before handing over tasks to Jenkins for automation, manual setup of keys and plugins is necessary.', 'Process of adding Git plugin in Jenkins The process involves navigating to the manage plugins area, searching for the Git plugin, and installing it without needing a restart.', 'Manual deployment of plugins in Jenkins In the absence of internet, plugins can be manually deployed by downloading the plugin files with .jpi extension from the Jenkins website and placing them in the plugins folder of Jenkins.', "Key directories in Jenkins installation The important directories include 'Jobs' for job configurations, 'Nodes' for slave node configurations, and 'plugins' for storing all plugins.", 'Configuring job settings in Jenkins Job settings involve specifying the type of job, providing a meaningful name, managing old builds, and enabling concurrent builds.']}, {'end': 3316.57, 'start': 3027.573, 'title': 'Installing jenkins and setting up source code management', 'summary': 'Covers installing jenkins behind a firewall, setting up source code repositories, triggering build jobs, and configuring build steps for packaging the code, with a detailed explanation of the process and configurations.', 'duration': 288.997, 'highlights': ['Setting up source code management: Explains the process of setting up different source code management software, such as Git, CVS, Perforce, Mercurial, and Subversion, with specific repository URLs and branch configurations. Multiple source code management options, specific repository URLs.', 'Triggering build jobs and configuring build triggers: Covers different ways to trigger build jobs, including setting up dependencies, periodic builds, and triggering builds based on SCM polling, with a detailed explanation of configuring the frequency of checking source code management software. Options for triggering build jobs, frequency configurations.', "Configuring build steps for packaging the code: Explains the process of setting up Maven targets, specifically using 'clean' and 'package' commands, and provides an overview of the workspace structure and configuration files at different levels in Jenkins. Use of Maven targets, workspace structure overview.", "Explanation of Jenkins environment configuration: Provides a detailed explanation of the configuration files at different levels in Jenkins, specifically the job configurations in the 'config.xml' file and the 'workspace' and 'user content' folders for sharing files over HTTP. Detailed explanation of Jenkins environment configuration.", 'Instructions for installing Jenkins behind a firewall: Recommends downloading the package and keeping it in the local source code repository if there is no direct internet access, and provides alternative methods such as using AppGate or executing a WAR file with a Java command. Recommendations for installing Jenkins behind a firewall.']}], 'duration': 1089.21, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo2227360.jpg', 'highlights': ['Jenkins can automate various tasks such as checking syntax, compilation, and unit testing before packaging the code.', 'Jenkins can deploy packaged artifacts to binary repositories such as Nexus or Artifactory, providing seamless integration with the development workflow.', 'Jenkins can automate any manual configurations or commands by replacing them with build steps or scripts, streamlining and automating repetitive tasks.', 'Process of adding Git plugin in Jenkins involves navigating to the manage plugins area, searching for the Git plugin, and installing it without needing a restart.', 'Configuring job settings in Jenkins involves specifying the type of job, providing a meaningful name, managing old builds, and enabling concurrent builds.', 'Explains the process of setting up different source code management software, such as Git, CVS, Perforce, Mercurial, and Subversion, with specific repository URLs and branch configurations.', 'Covers different ways to trigger build jobs, including setting up dependencies, periodic builds, and triggering builds based on SCM polling, with a detailed explanation of configuring the frequency of checking source code management software.', "Explains the process of setting up Maven targets, specifically using 'clean' and 'package' commands, and provides an overview of the workspace structure and configuration files at different levels in Jenkins.", "Provides a detailed explanation of the configuration files at different levels in Jenkins, specifically the job configurations in the 'config.xml' file and the 'workspace' and 'user content' folders for sharing files over HTTP.", 'Recommends downloading the package and keeping it in the local source code repository if there is no direct internet access, and provides alternative methods such as using AppGate or executing a WAR file with a Java command.']}, {'end': 4393.3, 'segs': [{'end': 3389.898, 'src': 'embed', 'start': 3362.912, 'weight': 0, 'content': [{'end': 3368.135, 'text': 'So, if you want to check the code, you want to deploy it, you want to copy it to some other location.', 'start': 3362.912, 'duration': 5.223}, {'end': 3370.376, 'text': 'there are plugins that could help you with doing that.', 'start': 3368.135, 'duration': 2.241}, {'end': 3373.698, 'text': 'If you want to create documentation, Javadoc can be a great tool.', 'start': 3371.237, 'duration': 2.461}, {'end': 3376.58, 'text': 'You can just trigger it.', 'start': 3373.798, 'duration': 2.782}, {'end': 3385.294, 'text': 'okay?. for adding any of the commands that you are able to fire on Unix systems or Linux systems and you want to automate that using Jenkins.', 'start': 3376.58, 'duration': 8.714}, {'end': 3389.898, 'text': 'you can simply add execute shell and you can type in your commands here.', 'start': 3385.294, 'duration': 4.604}], 'summary': 'Use jenkins plugins to automate code deployment and execute shell commands on unix/linux systems.', 'duration': 26.986, 'max_score': 3362.912, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo3362912.jpg'}, {'end': 3463.376, 'src': 'embed', 'start': 3432.541, 'weight': 1, 'content': [{'end': 3434.722, 'text': 'Release notes can be published under user content.', 'start': 3432.541, 'duration': 2.181}, {'end': 3438.459, 'text': "Is it a good practice? Well, yes, it's a really good practice.", 'start': 3434.782, 'duration': 3.677}, {'end': 3448.726, 'text': 'And what we do is not only release nodes, we generally also publish the recent Java docs, whatever are present there.', 'start': 3438.779, 'duration': 9.947}, {'end': 3452.409, 'text': 'And there is a small framework that we have designed for ourselves.', 'start': 3449.326, 'duration': 3.083}, {'end': 3459.173, 'text': 'What it does is it would keep on monitoring all the job statuses which are happening, the latest reports that are being published.', 'start': 3452.489, 'duration': 6.684}, {'end': 3463.376, 'text': 'So you could have either your check style report.', 'start': 3459.453, 'duration': 3.923}], 'summary': 'Publishing release notes and java docs is a good practice. a framework monitors job statuses and report publications.', 'duration': 30.835, 'max_score': 3432.541, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo3432541.jpg'}, {'end': 3525.028, 'src': 'heatmap', 'start': 3459.453, 'weight': 0.756, 'content': [{'end': 3463.376, 'text': 'So you could have either your check style report.', 'start': 3459.453, 'duration': 3.923}, {'end': 3472.364, 'text': "if you're running Python, there would be a PyCheck report or code mess reports or any of the code level statuses that you are generating.", 'start': 3463.376, 'duration': 8.988}, {'end': 3479.932, 'text': 'you could publish all those reports in that particular user content area and you could share the URLs with the people.', 'start': 3472.364, 'duration': 7.568}, {'end': 3486.979, 'text': "That's very good practice because it makes the developers aware of what the code status is right away.", 'start': 3481.574, 'duration': 5.405}, {'end': 3491.487, 'text': 'treat the DevOps persons as human keyword.', 'start': 3489.005, 'duration': 2.482}, {'end': 3493.869, 'text': "They wouldn't be coming back to you asking for answers.", 'start': 3491.527, 'duration': 2.342}, {'end': 3495.53, 'text': 'Everything is there in the dashboard.', 'start': 3494.289, 'duration': 1.241}, {'end': 3498.252, 'text': "They go there, figure it out, and the work's done.", 'start': 3495.87, 'duration': 2.382}, {'end': 3502.835, 'text': "So right now, I'll keep it short, apply, save.", 'start': 3499.533, 'duration': 3.302}, {'end': 3509.02, 'text': "Now, I don't expect the job to run right away because there are a lot many things that we haven't done in the background.", 'start': 3504.216, 'duration': 4.804}, {'end': 3510.201, 'text': "We haven't set up Java Home.", 'start': 3509.08, 'duration': 1.121}, {'end': 3512.062, 'text': "We haven't installed any Maven.", 'start': 3510.641, 'duration': 1.421}, {'end': 3514.424, 'text': 'We have just configured the job.', 'start': 3513.303, 'duration': 1.121}, {'end': 3517.366, 'text': "We are expecting it to run, but it wouldn't run for sure.", 'start': 3514.564, 'duration': 2.802}, {'end': 3525.028, 'text': "So let's first check whether it would run.", 'start': 3519.984, 'duration': 5.044}], 'summary': 'Publish code reports for developers to access and stay informed, improving efficiency and productivity.', 'duration': 65.575, 'max_score': 3459.453, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo3459453.jpg'}, {'end': 3754.931, 'src': 'embed', 'start': 3723.496, 'weight': 2, 'content': [{'end': 3730.359, 'text': 'approved in an enterprise instead of allowing to update the latest available from the Jenkins plugin repo?', 'start': 3723.496, 'duration': 6.863}, {'end': 3731.779, 'text': "It's all manual.", 'start': 3731.019, 'duration': 0.76}, {'end': 3736.061, 'text': "You don't tell Jenkins to do the updation all by itself.", 'start': 3732.119, 'duration': 3.942}, {'end': 3740.943, 'text': 'And let me show you.', 'start': 3737.681, 'duration': 3.262}, {'end': 3750.308, 'text': 'On the configuration of global security, you could have metric-based security as well.', 'start': 3743.804, 'duration': 6.504}, {'end': 3754.931, 'text': 'So what we can do is we can limit it to only the admin.', 'start': 3751.769, 'duration': 3.162}], 'summary': 'Manual update process, limit security to admin in jenkins global configuration.', 'duration': 31.435, 'max_score': 3723.496, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo3723496.jpg'}], 'start': 3318.157, 'title': 'Jenkins and release automation', 'summary': 'Covers deploying and automating processes using jenkins, including code checking, deployment, and executing commands. it also discusses publishing release notes and reports, along with strategies for jenkins plugin updates and maven installation.', 'chapters': [{'end': 3432.461, 'start': 3318.157, 'title': 'Deploying and automating with jenkins', 'summary': 'Discusses deploying and automating processes using jenkins, including steps like checking code, deploying, copying to other locations, creating documentation, and executing commands, with examples of using plugins like javadoc and jenkins execute shell.', 'duration': 114.304, 'highlights': ['Using plugins like Javadoc and Jenkins execute shell to automate processes The chapter discusses using plugins like Javadoc and Jenkins execute shell to automate processes, such as creating documentation and executing commands on Unix or Linux systems using Jenkins.', 'Steps for deploying and automating processes using Jenkins The chapter outlines steps for deploying and automating processes using Jenkins, including checking code, deploying, copying to other locations, and invoking Maven targets.', 'Adding and using plugins for specific tasks in Jenkins The transcript mentions the ability to add and use plugins for specific tasks in Jenkins, such as copying artifacts and executing Python code, with the option to install more plugins based on requirements.']}, {'end': 3684.42, 'start': 3432.541, 'title': 'Publishing release notes and reports', 'summary': 'Discusses the practice of publishing release notes and recent java docs in a user content area, along with a framework to monitor job statuses and reports, emphasizing the benefits of making developers aware of code status and enabling them to troubleshoot issues efficiently.', 'duration': 251.879, 'highlights': ['Developers can publish release notes and various code reports in a user content area, such as check style, PyCheck, and code mess reports, and share the URLs to keep developers informed about code statuses. The practice involves publishing release notes and various code reports (e.g., check style, PyCheck, code mess reports) in a user content area and sharing the URLs to keep developers informed about code statuses.', 'A framework is designed to monitor job statuses and the latest reports, providing developers with immediate access to code status information and eliminating the need for DevOps personnel to seek answers, resulting in efficient issue resolution. The framework monitors job statuses and the latest reports, providing developers with immediate access to code status information and eliminating the need for DevOps personnel to seek answers, resulting in efficient issue resolution.', 'Setting up a machine to support Git commands and ensuring Git installation to resolve errors encountered during job execution. The process involves setting up a machine to support Git commands and ensuring Git installation to resolve errors encountered during job execution.']}, {'end': 4393.3, 'start': 3689.483, 'title': 'Jenkins plugin updates and maven installation', 'summary': 'Discusses strategies to restrict jenkins plugin updates, including manual approval, and the process of installing maven, highlighting the need for setting up maven and jdk installations for jenkins jobs.', 'duration': 703.817, 'highlights': ['Strategies to restrict Jenkins plugin updates include manual approval and installing only approved versions, with updates being available but not installed until approved. Jenkins allows restricting plugin updates to only approved versions, ensuring manual approval before installation.', 'Process of installing Maven involves either direct installation from the package or downloading binary files, with the need to set up Maven and JDK installations for Jenkins jobs. The process of installing Maven includes options for direct installation or downloading binary files, highlighting the need for setting up Maven and JDK installations for Jenkins jobs.', 'Setting up JDK installations for Jenkins jobs allows choosing specific versions for different jobs, providing flexibility for using multiple Java versions. Jenkins allows setting up JDK installations for specific jobs, providing flexibility in using multiple Java versions for different jobs.']}], 'duration': 1075.143, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo3318157.jpg', 'highlights': ['Steps for deploying and automating processes using Jenkins The chapter outlines steps for deploying and automating processes using Jenkins, including checking code, deploying, copying to other locations, and invoking Maven targets.', 'Developers can publish release notes and various code reports in a user content area, such as check style, PyCheck, and code mess reports, and share the URLs to keep developers informed about code statuses. The practice involves publishing release notes and various code reports (e.g., check style, PyCheck, code mess reports) in a user content area and sharing the URLs to keep developers informed about code statuses.', 'Strategies to restrict Jenkins plugin updates include manual approval and installing only approved versions, with updates being available but not installed until approved. Jenkins allows restricting plugin updates to only approved versions, ensuring manual approval before installation.']}, {'end': 6518.996, 'segs': [{'end': 4522.515, 'src': 'embed', 'start': 4496.823, 'weight': 0, 'content': [{'end': 4502.086, 'text': "So if this has to be configured, we don't need three different jobs to handle that particular scenario.", 'start': 4496.823, 'duration': 5.263}, {'end': 4505.591, 'text': 'What we could do is, We could simply change it to something like this.', 'start': 4502.647, 'duration': 2.944}, {'end': 4512.153, 'text': "U81 would be replaced by some parameter which I'll call as the deploy server.", 'start': 4505.971, 'duration': 6.182}, {'end': 4517.034, 'text': 'And this deploy server we can pass as a parameter at the top.', 'start': 4513.273, 'duration': 3.761}, {'end': 4522.515, 'text': 'So we would say that this build is parameterized and I need to add a parameter of type string.', 'start': 4517.994, 'duration': 4.521}], 'summary': "Configure with parameter 'deploy server' to replace u81 and make the build parameterized.", 'duration': 25.692, 'max_score': 4496.823, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo4496823.jpg'}, {'end': 4668.688, 'src': 'embed', 'start': 4639.744, 'weight': 1, 'content': [{'end': 4642.787, 'text': "That's the only reason that we are setting up this stuff all by ourselves.", 'start': 4639.744, 'duration': 3.043}, {'end': 4653.285, 'text': 'But eventually, since we are not doing automation manually, we need Jenkins to handle all those things for us, like automating, generating commands,', 'start': 4643.783, 'duration': 9.502}, {'end': 4656.626, 'text': 'firing the targets, building up the packages, deploying it somewhere.', 'start': 4653.285, 'duration': 3.341}, {'end': 4663.167, 'text': 'If it has to be done after every developer makes, you cannot do it manually.', 'start': 4657.926, 'duration': 5.241}, {'end': 4665.287, 'text': "That's where Jenkins would really shine off.", 'start': 4663.327, 'duration': 1.96}, {'end': 4668.688, 'text': 'Does it answer your question, Atish?', 'start': 4667.588, 'duration': 1.1}], 'summary': 'Setting up automation using jenkins for handling tasks like automating, generating commands, and deploying packages to save time and effort.', 'duration': 28.944, 'max_score': 4639.744, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo4639744.jpg'}, {'end': 4963.022, 'src': 'embed', 'start': 4938.407, 'weight': 2, 'content': [{'end': 4944.931, 'text': 'Well, pros and cons of Jenkins open source software that we are using right now against the enterprise Jenkins from CloudBees.', 'start': 4938.407, 'duration': 6.524}, {'end': 4954.437, 'text': 'CloudBees are providing exclusive support for Jenkins and they have got their special plugins that these people would be providing if you buy the Jenkins services from them.', 'start': 4945.451, 'duration': 8.986}, {'end': 4958.019, 'text': "That's the only pro that I look at.", 'start': 4955.818, 'duration': 2.201}, {'end': 4961.461, 'text': "So you don't have to set up all the stuff all by yourself.", 'start': 4959.22, 'duration': 2.241}, {'end': 4963.022, 'text': "You'll be getting 24 by 7 by 365 support.", 'start': 4961.821, 'duration': 1.201}], 'summary': 'Cloudbees offers exclusive support and special plugins for jenkins, providing 24/7/365 support.', 'duration': 24.615, 'max_score': 4938.407, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo4938407.jpg'}, {'end': 5328.056, 'src': 'embed', 'start': 5279.629, 'weight': 3, 'content': [{'end': 5288.152, 'text': 'CDJVM, do we have anything here? Okay, it says Java 7 OpenJDK 1.3.', 'start': 5279.629, 'duration': 8.523}, {'end': 5288.953, 'text': "That's what I'm using.", 'start': 5288.152, 'duration': 0.801}, {'end': 5292.534, 'text': 'CD, Java 7 OpenJDK.', 'start': 5289.513, 'duration': 3.021}, {'end': 5298.354, 'text': 'and use this as your Java home.', 'start': 5294.893, 'duration': 3.461}, {'end': 5318.081, 'text': "So I'm exporting another variable here, export another one, which says Java home, and Java home should be set up to user lib JVM Java 7 OpenJDK 1386.", 'start': 5298.814, 'duration': 19.267}, {'end': 5325.735, 'text': 'Okay, now try to echo Java home, does it work? Java underscore home.', 'start': 5318.081, 'duration': 7.654}, {'end': 5328.056, 'text': 'Works awesome.', 'start': 5327.356, 'duration': 0.7}], 'summary': 'Setting up java 7 openjdk as java home, successful echo test.', 'duration': 48.427, 'max_score': 5279.629, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo5279629.jpg'}, {'end': 5990.486, 'src': 'embed', 'start': 5966.248, 'weight': 4, 'content': [{'end': 5972.933, 'text': 'The number of cores that you have on the CPU should directly be matching up with the number of executors that you would be running on that particular box.', 'start': 5966.248, 'duration': 6.685}, {'end': 5978.537, 'text': 'So if you have 32 core machine, you are free to add as much as 32 different executors.', 'start': 5973.474, 'duration': 5.063}, {'end': 5983.901, 'text': 'That means so many parallel jobs can run on that particular Jenkins box, or a slave box.', 'start': 5978.557, 'duration': 5.344}, {'end': 5990.486, 'text': 'You could change the settings from the global configuration so you could go to manage Jenkins.', 'start': 5984.702, 'duration': 5.784}], 'summary': 'Match cpu cores with executors for parallel jobs on jenkins slave box.', 'duration': 24.238, 'max_score': 5966.248, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo5966248.jpg'}, {'end': 6251.714, 'src': 'embed', 'start': 6222.177, 'weight': 5, 'content': [{'end': 6228.34, 'text': 'Okay, so you could go and use Kerberos instead of some other authentication protocols which are being used.', 'start': 6222.177, 'duration': 6.163}, {'end': 6233.663, 'text': 'It integrates very seamlessly with different packages.', 'start': 6229.161, 'duration': 4.502}, {'end': 6240.546, 'text': "The ones that I've used is PXE systems, your NFS shares, that would be there.", 'start': 6234.303, 'duration': 6.243}, {'end': 6244.086, 'text': 'Okay, on even machine authentication.', 'start': 6241.383, 'duration': 2.703}, {'end': 6251.714, 'text': 'Finally the tests are executing, everything is running fine.', 'start': 6248.691, 'duration': 3.023}], 'summary': 'Kerberos integrates seamlessly with different packages and systems like pxe, nfs, and machine authentication.', 'duration': 29.537, 'max_score': 6222.177, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo6222177.jpg'}], 'start': 4393.32, 'title': 'Jenkins and devops configurations', 'summary': 'Covers matrix build configuration, jenkins plugins setup, jenkins open source vs cloudbees, java and maven configuration, jenkins job execution, and kerberos authentication integration, emphasizing automation, dynamic changes in deployment, and security measures.', 'chapters': [{'end': 4591.038, 'start': 4393.32, 'title': 'Understanding matrix build configuration', 'summary': 'Explains the concept of matrix build configuration, where a single job can handle multiple parameters and configurations, allowing for dynamic changes in deployment targets and configurations on the fly.', 'duration': 197.718, 'highlights': ['Matrix build configuration allows a single job to handle multiple parameters and configurations, enabling dynamic changes in deployment targets and configurations on the fly. This reduces the need for multiple jobs to handle different scenarios, improving efficiency and simplifying the management of configurations.', "Using matrix configuration, parameters like deploy server can be passed as a parameter at the top, allowing for flexible and dynamic changes in deployment targets. This flexibility enables the job to adapt to different deployment scenarios by simply changing parameters, enhancing the job's adaptability and reusability.", 'The matrix build configuration enables the user to change the deployment target on the fly, such as switching from U81 to U83, showcasing the dynamic nature of the configuration. This demonstrates how the matrix build configuration empowers users to make real-time changes in deployment targets without the need for separate jobs, improving agility and responsiveness.']}, {'end': 4926.444, 'start': 4591.747, 'title': 'Setting up jenkins plugins and configurations', 'summary': "Discusses setting up jenkins plugins, configuring maven, and setting up master-slave jenkins setup, emphasizing the importance of automation and jenkins' role in handling tasks like automating, generating commands, building packages, and deploying. it also briefly touches upon the potential use of groovy in jenkins jobs and the possibility of dynamic slave creation using dockers.", 'duration': 334.697, 'highlights': ['Jenkins plays a crucial role in automating tasks like generating commands, building packages, and deploying, emphasizing the importance of automation and reducing manual effort.', 'Configuring Maven through Jenkins by choosing the option to install Maven automatically, which simplifies the setup process and eliminates the need for manual configuration, saving time and effort.', 'Briefly touches upon the potential use of Groovy in Jenkins jobs, indicating the flexibility and possibilities for passing values between multiple scripts, providing a glimpse into the versatility of Jenkins for scripting and automation tasks.', 'Discusses the possibility of dynamic slave creation using dockers, highlighting its potential for creating multiple environments to test software differently, and the scalability and elasticity it offers, albeit time constraints prevent a detailed demonstration.', 'Addresses the process of setting up master-slave Jenkins setup, outlining the steps of leaving a job in running state and setting up another node as a slave, demonstrating the practical implementation of a master-slave setup and addressing the capability of setting up multiple Jenkins slave servers.']}, {'end': 5269.286, 'start': 4938.407, 'title': 'Jenkins open source vs. cloudbees enterprise', 'summary': 'Discusses the pros and cons of using jenkins open source software against the enterprise jenkins from cloudbees, highlighting the exclusive support and special plugins provided by cloudbees, as well as the configuration of a slave with the master using ssh and setting up a job to run on a particular node.', 'duration': 330.879, 'highlights': ['CloudBees provides exclusive support and special plugins for Jenkins services, eliminating the need to set up CI infrastructure independently, and offering 24/7/365 support. CloudBees offers exclusive support and special plugins for Jenkins services, providing 24/7/365 support and eliminating the need to set up CI infrastructure independently.', 'Configuration of a slave with the master is done using SSH, ensuring a fully secure setup. The configuration of a slave with the master is done using SSH, ensuring a fully secure setup.', 'The process of setting up a job to run on a particular node involves restricting the project to run on the added slave machine, showcasing the flexibility of Jenkins in managing multiple nodes for job execution. The process of setting up a job to run on a particular node involves restricting the project to run on the added slave machine, showcasing the flexibility of Jenkins in managing multiple nodes for job execution.']}, {'end': 5815.856, 'start': 5279.629, 'title': 'Configuring java and maven with jenkins', 'summary': 'Discusses configuring java 7 openjdk and maven with jenkins, troubleshooting permission issues, and restarting jenkins to update environment variables, ultimately aiming to ensure successful execution of maven commands on jenkins.', 'duration': 536.227, 'highlights': ['Configuring Java home to user lib JVM Java 7 OpenJDK 1386 and troubleshooting permission issues with Maven by changing ownership to Jenkins.', 'Troubleshooting and resolving permission issues with Maven by changing ownership to Jenkins and updating the environment variables in Jenkins to ensure successful execution of Maven commands.', 'Restarting Jenkins to update environment variables and resolve issues with Maven commands execution.', 'Troubleshooting Maven permission issues by changing ownership to Jenkins and updating environment variables in Jenkins to ensure successful execution of Maven commands.', 'Troubleshooting permission issues with Maven by changing ownership to Jenkins and updating the environment variables in Jenkins to ensure successful execution of Maven commands.']}, {'end': 6193.799, 'start': 5815.856, 'title': 'Jenkins configuration and job execution', 'summary': 'Explains how to configure jenkins to assign jobs to specific slaves, set up executors, and remotely invoke jobs using tokens and oauth for secure authentication.', 'duration': 377.943, 'highlights': ['You can configure the number of executors on Jenkins master and slave nodes, with the thumb rule being that the number of executors should match the number of CPU cores. For a 32-core machine, up to 32 different executors can be added, allowing for the execution of parallel jobs on the Jenkins or slave box.', 'Jenkins can create tokens for remote job invocation, allowing scripts to trigger jobs remotely without using passwords, ensuring secure authentication. Jenkins provides tokens for remote job invocation, removing the need for passwords and enhancing security during remote job triggering by scripts.', 'OAuth is a secure method of authentication used for setting up authentication between remotely running machines or scripts, as well as for authenticating APIs. OAuth provides a secure method of authentication between remote systems or scripts, eliminating the use of username and password authentication, and is increasingly used to authenticate APIs.']}, {'end': 6518.996, 'start': 6196.201, 'title': 'Using kerberos for authentication in devops', 'summary': 'Covers the integration of kerberos authentication in devops, highlighting its ease of setup and seamless integration with different packages, as well as the preference for using ssh over http in enterprise git for security reasons.', 'duration': 322.795, 'highlights': ['Kerberos authentication integrates seamlessly with different packages, including PXE systems, NFS shares, and machine authentication. Kerberos authentication is highlighted for its seamless integration with different packages such as PXE systems, NFS shares, and machine authentication.', 'SSH is preferred over HTTP in enterprise Git for security reasons, as it is easier to set up on the server side and more secure than HTTP. The preference for using SSH over HTTP in enterprise Git is emphasized due to its ease of setup on the server side and its higher security compared to HTTP.', 'The build was not successful, but the session covered the material and additional topics, and attendees are encouraged to provide feedback through a survey to improve the quality and delivery pattern. Despite an unsuccessful build, the session covered the material and additional topics, and attendees are encouraged to provide feedback through a survey to improve the quality and delivery pattern.']}], 'duration': 2125.676, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lxd6JMMxuwo/pics/Lxd6JMMxuwo4393320.jpg', 'highlights': ['Matrix build configuration enables dynamic changes in deployment, reducing the need for multiple jobs.', 'Jenkins automates tasks like generating commands, building packages, and deploying, reducing manual effort.', 'CloudBees provides exclusive support and special plugins for Jenkins services, eliminating the need to set up CI infrastructure independently.', 'Configuring Java home to user lib JVM Java 7 OpenJDK 1386 and troubleshooting permission issues with Maven.', 'You can configure the number of executors on Jenkins master and slave nodes, matching the number of CPU cores.', 'Kerberos authentication integrates seamlessly with different packages, including PXE systems, NFS shares, and machine authentication.']}], 'highlights': ['The presentation will cover the three different parts of the build and release pipeline and integration of Jenkins with other tools in the ecosystem.', 'The chapter introduces the growing interest in DevOps and the need for build and release pipeline setup.', 'Parallel configuration in CI reduces testing time from days to minutes.', 'Continuous Integration (CI) speeds up code development by automating testing and deployment.', 'Achieving a code coverage of more than 85% is targeted, with best case scenarios reaching over 95%.', 'Jenkins can automate various tasks such as checking syntax, compilation, and unit testing before packaging the code.', 'Steps for deploying and automating processes using Jenkins The chapter outlines steps for deploying and automating processes using Jenkins, including checking code, deploying, copying to other locations, and invoking Maven targets.', 'Strategies to restrict Jenkins plugin updates include manual approval and installing only approved versions, with updates being available but not installed until approved. Jenkins allows restricting plugin updates to only approved versions, ensuring manual approval before installation.']}