Nexus Repository | Nexus Repository DevOps | DevOps Tool | Intellipaat

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] hey guys welcome to day 10 of intellipaats devops week and in this session we're going to look into a devops tool called nexus repository so before in the previous session we looked into excel deploy so in this session we're going to look into a different devops tool now without any further delays let's look into the agenda first we'll start off by understanding what is an artifact once that is done we'll look into what is nexus repository and in after that we'll be looking into the use cases of nexus repository finally we'll do a comparison between jfrog and nexus to understand the differences and then we'll show you how to install nexus repository once you successfully installed you can check out the next part of the session which is a nexus repository hands-on so that you could get hands-on experience on the same so that would be the last part of this session so before moving on with the session please subscribe to our channel and also hit the bell icon for the upcoming updates from our channel and also if you enjoy our content you can leave a like let's understand what an artifact actually is the files that contain both the compile code and the resources that are used to compile them are known as artifacts basically whenever a developer writes a source code he gives it to a build tool so that the build tool can compile as source code into binary code this is because whenever developer writes source code he writes it in the language that humans cannot understand a human language but machines can't understand that language to make it understandable for machines the build tool compiles it so that it's converted into a binary code that is ones and zeros that can be easily understood by machines when these binary codes are taken together with the dependencies and resources that are required to run it and put together into one file or packaged into one file that one file is known as an artifact basically these are readily deployable files like an executable in java an artifact would be a dot jar file or a dot war file or a dot eer file dot jar files are basic java applications and dot war files are for web applications and dot er files are for enterprise applications that can be contained in egb containers in npm the artifact file would be a dot or gz file and in dot net the artifact file would be a dll file now let's see what an artifact repository is an artifact repository is a repository which can store multiple different versions of artifacts each time the war file or tar.gz file is created it is stored in a server dedicated for the artifacts suppose you have compiled your source code and you have taken all the resources and dependencies with that source code and packaged into one artifact this will be your application after you create your artifact for the version one you store it in your artifact repository and if the artifact is being worthy you can go ahead for deployment and then later when you create a version 2 for the same thing you can go ahead with the deployment again and same with the version 3 where you can go with the deployment again an artifact repository will store all these artifacts so that we can use them whenever we want now suppose in a case where artifact 3 or artifact version 3 has an error after deployment so we need to do a rollback now now unlike the normal method where we have to go back to our vcs example git and then remove latest comment and go back to the previous comment and then compile the whole code again what we can do in this case is that we can just roll back the artifact itself we don't have to compile it again we don't have to build all the files again we just have to pull the artifact or pull the deployment file back and then just launch the previous artifact guys now that we have understood what an artifact is and what an artifactory repository is we can go ahead and see what a nexus repository is nexus repository is a tool used in devops methodology for multiple purposes one of its main purpose is to store artifacts that are readily deployable code which we learned before that have been created in the code pipeline another one of its purpose is to act as a sort of buffer for downloading dependencies for the build tool and languages basically nexus is a repository manager it's an artifact repository manager it does what a normal artifact repository would do it stores artifact and then it deploys them based on need now it also has one more feature where it manages and downloads dependencies for the build tool like how we learned about maven where maven downloads and manages the dependencies if we use a nexus repository in this case nexus would be connected to a build tool and it would understand the needs and requirements through the build tool in this case the build tool won't be managing independent and managing and downloading the dependencies here nexus repository manager would be doing that and since it performs so many tasks it is very easily integrated into the code pipeline first your code will be created in your version control and then it will be sent to the build tool for being converted into a source code for being converted into binary code and then it will be compiled with the dependencies which are gotten from the nexus repository manager and compiled into one big artifact which will be again stored in the nexus and it is also connected to the continuous integration tool which could be your team city or jenkins or bamboo depending on what your company is using and it also connects to the containers and the deployment tools so that you can easily deploy the artifacts that have been stored in the nexus what are the nexus repository responsibilities like we learned earlier first it helps in storing readily deployable code which are the artifacts what are the nexus repositories responsibilities like we looked earlier the first responsibility is it helps in storing readily deployable code that is your artifact if you have created an artifact for your version one of your application you go ahead and push it to your nexus repository and if it is deem worthy then can go ahead for deployment and same with the version 2 of the artifact you can go ahead for deployment and same with artifact version 3 and we can go for deployment now in case there needs to be a rollback it's as easy as pulling the version 3 back and pushing the version 2 of the artifact for deployment it is not the same as a version control system for source code where the latest code is always replaced by the next code whereas in a nexus or in an artifact repository artifacts are always stored they're not replaced so there's no overriding done over here so the next responsibility of nexus is it helps in downloading and managing dependencies now after your build tool reads through the configuration file that is your configuration file for building your source code it understands what the dependencies are and then it tells those requirements to the nexus it asks the nexus for dependencies nexus reads them it goes to the remote repository and gets those dependencies and it stores them inside a local server so that it can be used by the build tool to build the source code now that we've understood what nexus repository is we can go ahead and see what are the features of nexus repository altation crowd support staging and build promotion tagging and user token support now let's see all of them one by one altation crowd support nexus provides support for altation crowd which is a security software that is used to manage and track user accounts and application accesses it comes in built with nexus repository management pro and can be easily configured according to an organization's names basically whenever you need to manage a lot of artifacts you're handling a lot of sensitive data you're handling the asset of a company so if there is ever an error or there is a conflict in future you need to keep track of who made that mistake or who was the person who pushed that code or deployed that code or deploy that artifact etc so for that nexus has third party software called altation crowd support that is built into it which helps in managing and tracking all of these things staging and build promotion nexus provides a staging feature that can be easily integrated with an organization's software development life cycle it helps in staging all the release candidates that are the components of the software that are tested meticulously before being isolated for release onto production stage so what this basically means is that nexus provides us a platform a platform where we can have candidates and these candidates are then tested meticulously before they're isolated for a release onto the production stage that is before they're sent for actual production and actual deployment as an application so it allows us to keep multiple candidates instead of just having one candidate so you can manage different projects and have different artifacts for different applications on one stage before they are isolated for deployment since the feature allows for multiple candidates to be staged at the same time then based on requirements the candidates can be discarded or promoted once all these candidates once all these different candidates for the applications are pushed to the productions are pushed to the platform they can be discarded that means they can be removed if they don't meet the requirements of that application or they could be promoted if they meet all the requirements then it's all good and they can be sent for deployment as the application nexus provides the ability to tag components so they can be associated with each other the usage of this feature is entirely up to the user as it has no specific use case but it's mostly used in life cycles to keep track of different builds or for differentiating between multiple projects during mergers what this basically means is that nexus gives us the ability to tag different components of a particular application so that they can be associated with each other but what is being said is that that this feature is mostly used for keeping track of different builds or different projects during mergers suppose you have different projects which are now to be merged into a single big project so to keep track of that we need to use the tagging feature or if you have different bills on the same platform you need to make sure which bill is associated with which build or which bill is going to be pushed for deployment next so for that reason nexus provides us with the ability of tagging for example a release manager provides approval for a test phase and promotion phase and only then will they be sent to the nexus manager to be stored user token support nexus uses a two-part token system to overcome the limited security of the build tools and removes the need to store sensitive information in text format what this basically means is that whenever you connect your maven to your nexus you're storing essential information like you're storing your username you're storing your password inside a settings.xml file because you need this file to connect your build tool to your nexus example of maven just a quick info guys intelpad provides devops online training validated and certified by nascom future skills and ibm the course link is given in the description below now let's continue with the session you'll be storing the username and the password that you need to use to connect to nexus inside of text file and it is written in plain text which is a security liability if anyone acquires this file they can know what your password and your username is and cause a lot of trouble so to avoid such a problem nexus uses a feature of two-part token system which eliminates the need of having credentials at all basically whoever has the tokens can access nexus there are some other features also for nexus like high availability repository health check enterprise support and group blob stores high availability nexus has a feature called high availability clustering that keeps multiple redundant nodes inside the data center to increase the availability of the artifacts and dependencies in case any one of the node crashes or becomes unavailable due to some reason so what this basically means is that whenever nexus stores any artifacts it does so in a high availability clustering that means it stores it on multiple nodes in case one of those nodes crashes or becomes unavailable due to some reason that you can still access those artifacts using one of the other nodes now this is very important in case you need to run your artifacts in case you need to deploy artifacts and you don't have the availability then it's a big problem you have a deadline and you have to finish it but you can't because your nodes down in case of nexus there are multiple nodes so that if one node crashes you can still use other nodes repository health check nexus can recognize security risk in the code at an early stage the features that it uses for the particular purpose does mainly three things first it provides guidance on what has to be upgraded and what has to be reworked and replaced basically repository health check tells you what has been what component of your code is old and needs to be upgraded otherwise there might be a security risk or it might not be very efficient and it might slow down your whole process so repository healthsick tells you about it this is the feature of nexus the second thing it does is it lists down components of the software based on their susceptibility and also lists the number of times the component has been downloaded basically it lists all the components down in a rank based system where the highest rank component would be the one that is most vulnerable and it also lists the number of times each component has been downloaded so the third thing it does is it gives monthly summarized reports on the health of the code pipeline revealing any dangerous trends or vulnerabilities basically what it does is it goes through your code pipeline and it lets you know at the end of every month with a summarized report whether there is a issue with the core pipeline or not whether there any vulnerabilities and whether it is inefficient or not enterprise support nexus also provides a full-time support of a skill team focused on resolving issues now when you're working with open source office you don't have any guarantee when you have errors suppose you're using an open source software and you have deployed your application but now there it crashes and you have to figure out what the error is and when you read the error and you can't solve it there's no one you can depend on but since you will be paying for nexus pro you can have an assurance that there is a full-time support team that will help you resolve those issues that's another feature of nexus pro group blob stores nexus provides a group blob store which is a combination of multiple blob stores acting as one fill policies are used to select which blob store is used and this allows users to have a choice in choosing and using their storage basically whenever you download any binary assets via proxy repository or published to hosted repository they are stored in blob stores blob stores basically store any binary asset that you might need to use when you have different blob stores you need what nexus does is it groups all of those blob stores into a singular blob store that helps in accessing any binary asset that you may need now fill policies are basically execution policy that means an order can be executed only in a specific volume if you want to execute order in one particular volume then you can use a fill policy to execute that basically fill policies are used to select which blob store is used and this allows users to have a choice in choosing and using their storage just a quick info guys test your knowledge of devops by answering this question what does devops stands for a development and operations b drive and operations c digital and operations d none of these comment your answer in the comment section below subscribe to intellipack to know the right answer now let's continue with the session now let's see what are the difference between nexus repository and a jfrog artifactory so the first difference is nexus uses a file system for storage and artifactory uses a derby database for storage by default but in artifactory you can change that setting nexus cannot generate and save a settings.xml file whereas in artifactory you can generate and save a settings.xml file in nexus you would have to do that manually whereas in artifactory it helps you do it nexus is limited in replicating repositories whereas artifactory can easily replicate your repositories to other artifactory instances so basically what is being said is that artifactory can much more seamlessly replicate any repository that you may need to use and then store it in an artifactory instance whereas nexus cannot do the same thing nexus has limited build time when it builds an artifact whereas artifactory has a faster build time so it can access all this artifactories much more faster than a nexus cam now you still may be wondering why to use nexus instead of artifactory now that i've told you that artifactory can be much better in certain scenarios but the thing is certain companies may need nexus because they may have been using nexus for a long time and now that they have been using it for such a long time it would be very hard to migrate from using one tool to another tool and they may also be using certain other tools in conjunction with nexus which requires nexus to be run in that case you would need to use nexus now that we've understood what an artifact is and what an artifact repository is and then we understood what nexus repository is as a tool we can go ahead and see the installation for nexus so the prerequisites for installing nexus are having open jdk and having gb of ram and 15 gb of hard drive space these are the at least requirements for this we'll have to open a marketplace sent to us again and launch a t2.medium so let's go ahead and do but also in the end it totally depends on your preference maybe you are more comfortable with using nexus or maybe you're more comfortable with using artifactory and there is no harm in knowing how both work so guys now that you've understood what an artifact is and what an artifact repository is and consequently understanding what nexus repositories we can go ahead with the installation for it now let's look at what the prerequisites we need before we can go with the installation so the prerequisites are have open jdk that's java and second is have 2 gb of ram and 15 gb of hard drive space so for this reason we will go ahead and launch a marketplace centos instance so let's head to our browser and come to our ec2 dashboard and click on launch instance now go to our aws marketplace type in sent to us click on the first ami we get continue we need t2.medium so we'll click over here configure some details we'll add storage of at least 20 gigs since we need 15 we'll go ahead and write 20 over here we'll add a security rule all pcp links and source anywhere go ahead and launch it acknowledge launch instance if you go view your instances it will be initializing but since i've already created one before i can go ahead and launch this one i use my putty tool for that paste my ip address go to the appearance make it 16 colors default background make it green okay connection seconds between keepalyze 180 authorization for my key and then open so it will ask for login ads i'll type centos let's go full screen screen sudo 2 so we don't have to keep having super every time and we'll go ahead and install java that is the command for that is um install java 1.8.0 open jdk dev yes okay now that we've installed java clear the screen we have all our particular zefini all our prerequisites we have java installed and we have a instance with at least 2 gb of ram and at least 15 gb of space so we can go ahead with the installation of nexus repository now there are two ways we can go with this we can go either directly to their website and download the file from there or we can use docker to launch a container with nexus in it since launching docker instance is much more easier we're just gonna use docker so let's go ahead and install docker for that we will need to install some packages or sent to us there is a particular step there are particular steps that we need to follow while installing docker so let's go ahead and see what are the steps so first we need to install the required packages so for that i'm going to copy this command yum install minus y em utilist device mapper persistent data lbm2 come back here and paste the command and press enter now the next command is to set up a stable repository i'm gonna copy this command come back here paste the command and it will say that repo saved and finally we'll come back and we'll use this command that is clear screen m install docker ce docker ce client and container dot io this will install a docker so let's go ahead and click on enter yes please just a quick info guys intelpad provides devops online training validated and certified by nascom future skills and ibm the course link is given in the description below now let's continue with the session now that we've installed a docker let's make sure it is installed for that the command is system ctl status docker this would tell us that docker is loaded but it is inactive so let's go ahead and make it active so for that we'll type system ctl start docker and if we see the status again it will show us that it is active and running now that we have docker running we can go ahead and pull the image for nexus so for that the command is docker full sonar type slash nexus now we'll press enter it will start pulling the image for nexus 3 and save it in your instance and after it's done that you can check for it using the command docker image images so we have our image sonar type nexus input now let's go ahead and run the container so that we can launch the application so for that the command is docker run minus d minus p we will run the application at 8081 port 8081 the name we'll put for it is nexus itself and we'll copy the image id and press enter now we launched the docker container so type docker ps to see our container now we can see that the container is running at 8081 and it's launched nexus so now let's go ahead and access it using our web browser go to our web browser copy the ip address of the instance you're using go ahead and paste it type the port number that is 8081 after one column and press enter this should start your nexus repository manager and after it started you can see the dashboard for it that is get started repository formats github actions software composition analysis etc we let's go ahead and set up the admin but before that we have now completed our installation for nexus repository so we can move on with the practice that is hands-on for nexus repository so let's see what are the steps we have to take nexus repository hands-on so the test steps we have to take are the first step run nexus repository and set up the admin second install the git to get the sample code and third install maven to compile and package the sample code and fourth connect maven two nexus and fifth check how the artifact versioning works in nexus so the first step that is run nexus repository we have completed that and after that we have to set up the admin so let's go ahead and set up the admin so you come over here click on sign in and it will ask for your username and password so username will be admin itself but the password is located in nexus data admin.password now this says it will be located on the server that you're using but since we used a docker container it will be inside our docker container so let's go back to our instance and let's go inside our docker container so for that the command would be docker exec minus id the container id of the container and bash enter and if you type ls you can see that nexus data is there inside our container so let's go inside it nexus since that's where our password is stored okay inside nexus data if you type in this you can see the admin.password is here so type get admin dot password and this is the generated password that we will be using so just copy it come back to your browser paste it as the password and sign and then the setup wizard will come up click on next and it will ask you for a new password so that you don't have to keep on typing that long hexadecimal password let me click on next and we'll ask you to configure an anonymous access if you want to you can go ahead but it's not advisable to do it as it allows unauthenticated downloads and browsing so let's go ahead and click on next and complete finish now that we've set up our admin we can go ahead with the next step that is to install git and get the sample code now before we go ahead and get our code let's go back to our browser and let's familiarize ourselves with the software a little bit now if you see a gear icon over here click on that it will have server administration and configuration and you can see that you can you have all your repositories over here the public repository and this is where your artifacts will be stored you can go ahead and create a repository if you want then you have your blob stores where your binary assets you the ones you want you can access them here and then you have your security details like what roles you want to set for users you want to give access to and etc you can come over here and see support tools and then there are system tools and etc that's it for familiarizing let's go ahead and install our sample project for that we'll come back to our instance come out of the container and clear the screen and we'll need to access the repository from our github so we'll go ahead and so the project will need is in this link https github.com sample prime even project copy this link come back to our browser and paste it so this is the one we'll need go ahead and click on clone download copy the url come back to your instance cd into opt and type git clone and the link if you tell us you can see that your sample maven project has been installed now to compile this that is the next step we'll need to compile and package this for that we'll need apache maven so if you remember the process for that we have to go back to our web browser and close this and type apache maven we need to get the dar.gz link for this is the first thing over here copy the link address come back to your instance let's first install wget so for that you uninstall minus by delegate install delegate for us clear the screen use the command delegate and paste the link address of apache maven and press enter and after your apache movement file has been downloaded go ahead until it using the command tar zxf apache maven now if you see we have a folder apache maven it's installed so we can go inside it and we can go inside the bin folder clear the screen so if we type maven version we can see if it's downloaded properly or not yes it is now apache maven is only available from this position in this directory so we need to make sure that it's available to all of the os so for that we'll need to type export and we'll need to use an environment variable that is path and we'll set this path so that apache maven can be set in such a way that it can be accessed from all over the os so the command for that is export path equal dollar apache maven wherever your apache maven is and bin press enter okay now we're done with that okay now that we're done with installing maven we can go ahead and configure our maven so that it can be connected to our nexus so let's come out of the pin folder just come out of the mail folder we'll have to create a new settings.xml file like how we did in jfrog artifactory for that purpose what we're going to do is we're going to find out what our home directory is for that we need to check which kind of user we logged in as to check that the command is id and it will show you root over here and if you want you can just look at this this part that also tells you which user you logged in as but you can type id and you can get more detailed answer we are inside this instance as a root user we can go ahead and go to the root folder this is the folder we need to go to where we will create a folder a directory called dot m2 it's a hidden directory since it says that dot m2 file already exists if we type ls minus if we type ls we can't see it but if we type ls minus a we can see dot m2 since this is a hidden directory now let's go inside dot m2 inside dot m2 we will create a text file called settings.xml so i'm going to use nano settings dot xml if you do not have nano you can go ahead and type v or you can just install nano using yum install nano so nano settings dot xml if i go inside it says it's a new file and here is where we're going to put our configurations for setting up maven with nexus repository so let me take out the command for that these are the commands these are the configurations we'll set our id to nexus put a username and password whichever we have set over here and we'll create a mirror to get our dependencies to download dependencies using nexus so let's just copy this come back and paste now make sure the url you're using is the one with your ip address with 8081 repository and maven public if you want this you can go ahead to your browser click on the settings button come to repositories and this is your maven public you can copy the link for this there is this one if you want or you can just look from here and make sure that your username and password are the same as the ones you entered while you were setting up the admin now we've made this configurations we can go ahead and exit out of here we'll save it using control o enter control x let's clear the screen and now let's go back to our opt folder where we have saved our sample project let's go inside a sample project and inside our sample project we have a bond xml file we'll open the pawn.xml file right now now that we have set maven to be connected to nexus we need to make sure that the artifacts that are produced from maven will be uploaded two nexus the first thing we did in settings.xml was connecting maven to our nexus but in this we're going to make the settings such that maven uploads the artifacts that are produced after packaging the sample project after reading through the code onto the nexus so nexus can act as a artifact repository in settings.xml what we did was we connected our maven to nexus so in that case we were making nexus the dependency manager and the one that downloaded the dependencies so let's go inside nanopom.xml and if you come down after dependencies you'll find this folder you'll find these configurations distribution management repository central and all these details so the ones we need to enter are different than these so let's remove this now that we remove them we can go ahead and copy our repositories that we'll need to connect that are the maven releases we will store our release maven artifacts and even snapshots we'll restore the snapshot artifacts let's go ahead and copy these and come back and paste them now go ahead ctrl o enter control x to exit now we have our pawn.xml file also configured and we have a settings.xml file also configured now we can go ahead and see if it works or not using this command mvn compile as you can see is using nexus to download the dependencies it needs instead of using maven directly now if you want a different directory you want to access you can use whichever you want you can use nuget group also and you get hosted also and etc you come back we'll wait for this to download all the dependencies and compile the project now that we can see that the build is successful and the project is successfully compiled great let's go ahead and clear the screen okay now that we've compiled our project now we can go ahead to the browser and see where the dependencies have been downloaded you go back to your browser we are under settings if we go back to browse server contents click on browse you will see a maven public that is a main repository if you click on it you can see that there are many many dependencies that have been downloaded like the junit the one we needed or log 4j and you have apache sonar type and codehouse and etc so if you want to see which all dependencies you've downloaded and where you can go ahead and click on browse and go under maven public now that we've seen how maven when connected to nexus nexus downloads the repositories and manages it for maven we can go ahead and see how nexus gets the artifacts that is how maven deploys and uploads the artifacts onto now before that let me just show you one more thing when you go back inside bomb.xml file you see that the version we are doing is 1.1 release the difference between a normal release and a snapshot would be whenever you mention this as snapshot that means whenever you run the build using this bond.xml file every time you build it the same version gets updated on your nexus the same version would be updated but if you make it release each artifact would be stored separately so sometimes if you just want to test something you can go ahead and type a snapshot and you keep on testing that same release again and again but if you want to make it a proper release then go ahead and write over your release and if you come down in the distribution management this is where we will the links we will use to deploy our artifacts onto nexus we have type the first repository as maven releases so every release will be stored in libs release local that every release that we deploy or every release that we send to nexus and in snapshot repository only the snapshots only the bills that we have created as snapshots we have made them as snapshots will be uploaded over here all right let me go back clear the screen and now let's go ahead and deploy our artifact so see how it works okay before this there is one thing you have to make sure go inside your form.xml file and go and make sure that the repository ids that you're using are the same as the ones that you have put in your settings.xml file in your settings.xml file when you're writing the server when you're writing under the server the id server id is nexus the one we use if you do not mention your id over here as nexus again then you will get an error 401 so to avoid that make sure that the id you've been entering for the repositories is the same as the id you entered for the server now let's come out control x and we will use the command mvn deploy they should download all the dependencies for your project run the test cases make the packages and after it's done making the packages and should upload the artifact onto your nexus if you go to our nexus on our web browser and if we come under browse and browse and look under maven releases since the version we entered was with a release instead of a snapshot so if you come under release then we can see that there is a new folder that is flipkart offers and 1.1 release if we want to simulate a change we can go ahead come back to our maven project open the bom.xml file and inside then we can go ahead and make the version change this will simulate a change that we have made in our project let's go ahead and save it ctrl o enter ctrl x clear the screen use maven deploy again now if we go back to our browser click under maven releases again you will see that there are two packages there is 1.1 release and 1.2 release we can go ahead and do the same thing if it's snapshot if we go inside our pom.xml file again and if we go ahead and make it from 1.2 release to 1.2 snapshot and make sure that snapshot is in all capitals and make sure that the url you're using is the exact correct one so we will go ahead and save this and exit clear the screen type mbn deploy enter and we'll go ahead and deploy the snapshot artifact onto our nexus so if we come here refresh click on mvn snapshot maven snapshots and you can see under flipkart offers there's one point to snapshot so guys we have correctly learned how to use nexus we have familiarized ourselves with nexus now we know how to connect our maven to the nexus and we know how to upload our artifacts from maven to nexus and we also know that nexus now acts as a dependency downloading manager for maven so guys that's it for today just a quick info guys intelpad provides devops online training validated and certified by nasscom future skills and ibm the course link is given in the description below okay guys we've come to the end of this session i hope this session was helpful and informative for you if you have any queries leave a comment down below
Info
Channel: Intellipaat
Views: 3,728
Rating: 4.8878503 out of 5
Keywords: Nexus Repository, Nexus Repository DevOps, DevOps Tool, Devops, Devops Tutorial, Devops Training, Devops Tutorial for Beginners, Devops Tools, What is Devops, Devops Engineer, Devops Course, Learn devops, Devops Certification, devops tools tutorial, devops tools, devops tools to learn, Devops Tools Training, Intellipaat
Id: yZFvJEygn_g
Channel Id: undefined
Length: 40min 5sec (2405 seconds)
Published: Fri May 21 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.