4. AWS-SAA:Try out Sample questions for AWS SAA exam prep

You can try the below FAQs for your exam prep on AWS SAA.

There are 4 questions only, related to AWS Platform.

AWS-SAA-FAQs-on Introduction-Qs 17-20

 

 

Visit for your online coaching:

https://vskumar.blog/2018/11/13/coaching-mentoring-on-aws-solution-architect-associate-exam/

 

 

2. AWS POC : WordPress[WP] infrastructure creation using a free tier account

With reference to my previous blog on:
1. AWS:How to create and activate a new account in AWS ?
https://vskumar.blog/2018/09/01/1-awshow-to-create-and-activate-a-new-account-in-aws/

I have made a scenario based “AWS services usage” blog in this content. Which can be considered as a Proof of Concept [POC] Project also.

If you are new for cloud technology, I have made a video cum blog for you to understand its initiation/evaluation concepts. This video is more useful for PMs/Cloud Architects/DevOps role based people.

For video Visit:

For the above video’s blog:

https://vskumarcloudblogs.wordpress.com/2016/11/30/how-to-initiate-a-cloud-transformation/

Now, let us move forward with this blog content.

In this AWS exercise, I have described/demonstrated on WordPress[WP] infrastructure creation using a free tier account.

At the end of this blog a micro level lab practiced steps are copied and a recorded video is there on my channel.

I would like to explain from architecture/design perspective through this blog, before you go to Lab steps.
After doing this exercise, simply and finally we can come into the following conclusions:

a) Creating a blogging infrastructure can be fully automated through AWS services.
b) Infrastructure can be created at any time on-demand without any up-front
commitment for how long we will use it in AWS.
c) We can pay for our infrastructure depending on how many hours we use it.
d) Infrastructure consists of several parts,
such as; i) virtual servers, ii) load balancers, and iii) databases.
e) Infrastructure can be deleted with one click without costing to us.

This process is powered by AWS automation. So it will not be billed to our free tier account after deletion!!.

First let us analyze on WP and its components.

How a WordPress infrastructure can be planned?

Assume we have a startup company, which publishes more white papers and  blogs.

Assuming; our startup company currently uses WordPress[WP]  to host over 500 blogs on our own servers.  The blogging infrastructure must be highly available, because customers don’t tolerate outages of any servers.  To evaluate whether a migration is possible through AWS services, we need to do the following three Activities planning and try out with AWS free-tier account:

A) Set up a highly available blogging infrastructure in AWS.
B) Estimate monthly costs of the infrastructure.

C) Finally, Delete our blogging infrastructure to save cost from free-tier account.

For our understanding on WP;

  • WordPress[WP] is written in PHP and uses a  MySQL database to store data.
  • Apache is used as the web server to serve the blog pages.
  • With this information in our mind, we map our requirements to AWS services  to test the infrastructure creation.

Now, let us analyze on “what are the AWS services required for our WP test infrastructure?”.

We need  the below AWS services to do this activity:
I. Elastic Load Balancing (ELB),
II. Elastic Compute Cloud (EC2),
III. Relational Database Service (RDS) for MySQL and
IV. Security groups.

Let us analyze what are the functions/benefits of  these AWS services.

I. Elastic Load Balancing (ELB):

AWS offers a load balancer as a service.
The Elastic Load Balancer (ELB) distributes traffic to a bunch of servers behind it in a cloud environment. It’s highly available by default.

Let us assume our startup company’s blogs are published globally. From many countries these can be accessed by the users. Assume there are lot of users access this content globally. Then in traditional method your load is not balanced without  having physical servers connected through VPNs/networks, etc. in different locations. Think about the Hardware/Software/maintenance/FMG cost for this traditional infrastructure. We can not think it being a startup company to spend much. No way!! Hence we need to depend on cloud service provider.

With AWS ELB, this can be balanced by distributing the blog users traffic to different virtual servers under cloud environment. To denote this distributed load balancing  architecture, I have collected a diagram  on;

WordPress infrastructure and Load Balancing through ELB AWS service.
Which is pasted here for your clarity on the ELB function.

WP-Infra-ELB-load Distribution.png

II. Elastic Compute Cloud (EC2):

It is A virtual server which is provided by the Elastic Compute Cloud (EC2) service of AWS. We will use a Linux server with an optimized distribution called Amazon Linux to install Apache, PHP, and WordPress during our exercise. Please note; we are not limited to Amazon Linux only; we can also choose Ubuntu, Debian, Red Hat, or Windows. Virtual servers can fail at any time, so we need at least two of them for contingency planning. The load balancer will distribute the traffic between them. The beauty of AWS service in case of a server failure is; the load balancer will stop sending traffic to the failed server, and the remaining [contingency] server will need to handle all the requests until the failed server is replaced. Let us not worry on this communication! You will be intimated the status through alerts.

A sample architecture diagram is pasted here FYI with two EC2 instances.

EC2-two instance-ELB-Scenario.png

III. Relational Database Service (RDS) for MySQL:

WordPress relies on the popular MySQL database. AWS provides MySQL as a Relational Database Service (RDS). We can choose the database size (like; storage, CPU, RAM), and RDS takes care of the rest (backups, updates). RDS can also provide a highly available MySQL database by replication. In traditional [non-cloud] model we had the similar setup. It occurs huge costing. By using AWS cloud services this can be easily maintained with minor costing only.

On this context; from the below diagram we can see the MYSQL features from AWS services offering.

AWS-MYSQL-RDS-features

V. Security groups:

In every application architecture we need to have the security features in place. Either these can be embed in the applications or through security tools it can be applied. So the entire architecture is protected that way.

But in cloud services many providers provide these services differently with their services offering.

The Security groups are a fundamental service of AWS to control network traffic like a firewall in traditional systems. Security groups can be attached to a lot of services like ELB, EC2, and RDS. For example; with security groups, we can configure our load balancer as below:

It only accepts requests on port 80 from the internet. Web servers only accept connections on port 80 from the load balancer. And MySQL only accepts connections on port 3306 from the web servers. If we want to log in to our web servers via SSH, we must also open port 22. Similar ways the architecture setup can be configured.

FYI, I have considered a diagram from AWS docs; which denotes a typical AWS multi-tier approach security services with a Firewall:

AWS-Security mulit-tier aproach.png

As shown in the above diagram, A security group acts as a virtual firewall for our instance to control inbound and outbound traffic. When we launch an instance in a Virtual Private Cloud[VPC], we can assign the instance to up to five security groups. It means in any VPC  AWS provides five different security groups.

So, now what is our start company plan for security?:

Let us assume our startup company’s blogging infrastructure consists of two load-balanced web servers running a) WordPress and b) a MySQL database server.

The following tasks are performed automatically in the background through AWS:

  1. Creating an ELB.
  2. Creating a RDS MySQL database.
  3. Creating and attaching security groups.
  4. Creating two web servers.
  5. Creating two EC2 virtual servers.
  6. Installing Apache and PHP via yum.
  7. Install php, php-mysql, mysql, httpd.
  8. Downloading and extracting the latest version of WordPress from http://wordpress.org/latest.tar.gz   
  9. Configuring WordPress to use the created RDS MySQL database 
  10. Starting Apache. 

Before going to the above steps, I would like to show the below diagram for your understanding on “The setup of WP hosting on AWS”. You can download it through the URL given and see it as an image file for your understanding.

AWS-WP-Hosting setup

Now, let us recap our beginning conclusions for this blog. We need to do the below activities till end of the exercise.

  1. Creating a blogging infrastructure.

  2. Analyzing costs of a blogging infrastructure.

  3. Exploring a blogging infrastructure.

  4. Shutting down a blogging infrastructure.

  5. Deleting infrastructure from AWS Account.

1. What actions we need to consider for Creating blogging infrastructure in AWS?: To create the blogging infrastructure we need the below steps to follow on AWS console.

Note: Please note time to time the screen flows [micro level steps] might change on AWS, but the process should be the same to understand on creation of this WP infra.

  1. Open the AWS Management Console at https://console.aws.amazon.com.
  2. Click Services in the navigation bar, and click the Cloud-Formation service.
  3. Click on Create Stack to start the four-step wizard.

Now we will see what are these 4 steps wizard process it contains.

I. Creating a blogging infrastructure: Step 1 of 4

You need to name your infrastructure. Enter “wordpress” as the Name. For Source option, select and  Specify an Amazon S3 Template URL as shown in the screen [lab exercise screen]. Copy this URL and save somewhere in a text file for future reference/usage. About this process, during lab demo you will understand clearly.

II. Creating a blogging infrastructure: Step 2 of 4

Click Next to set the KeyName to “vskumarkey” [example only, you can give any name], for Step 2 of 4. Click Next to create a tag for our infrastructure into next screen. These steps can be seen clearly in lab practices steps.

III. Creating a blogging infrastructure: Step 3 of 4

A tag consists of a key-value pair and can be used to add information to all parts of our infrastructure. We can use tags to differentiate between testing and production resources, add the cost center to easily track costs in our organization [if any], or mark resources that belong to a certain application if we host multiple applications in the same AWS account.

In this example, we will use a tag to mark all of our resources that belong to the “wordpress system”. This will help us later to easily find our infrastructure. Use “system” as the key and “wordpress” as the value.  Click Next. Finally, we will see a confirmation page for Step 4 of 4. For clarity look into lab steps.

IV. Creating a blogging infrastructure: Step 4 of 4

In the Estimate Cost row, click Cost. This will open a new browser tab in the background. Keep this browser open only. We will come back to this screen later. Switch back to the original browser tab and click Create. We can see next Review screen in the next page.

Now, our infrastructure will be created. This Review screen shows that wordpress is in the state of CREATE_IN_PROGRESS. It takes 15-20 mts to complete this process.

Now, please take a look at the result by refreshing the page. Select the “WordPress” row, where Status should be CREATE_COMPLETE. If the status is still CREATE_IN_PROGRESS, be patient until the status becomes CREATE_COMPLETE.

Switch to the Outputs tab [below part of the screen], which is the Blogging infrastructure result. There we can find the URL to our “wordpress system”; click it to visit the system.

What is AWS Automation here?:

As we have discussed in the beginning of this blog, one of the key concepts of AWS is automation. We can automate everything. In the background, our blogging infrastructure was created based on a blueprint with its automation. So the above mentioned [10] tasks have been performed in the background by AWS cloud formation service. You can see the beauty of this automation during lab demonstration.

Blogging infrastructure result:

Now we’ve created our blogging infrastructure, let us take a  look at it. Our infrastructure consists of the following as we discussed in this blog:

  • Web servers
  • Load balancer
  • MySQL database

Now; we will  use the resource groups feature of the Management Console to get an overview.

Exploring the created WP Blogging  infrastructure

Now let us understand;

What is Resource Group in AWS?:

  1. A resource group is a collection of AWS resources.
  2. Resource is an abstract term for something in AWS like an EC2 server, a security group, or a RDS database.
  3. Resources can be tagged with key-value pairs. In such case; let us note we can have more than one key-value pairs.
  4. Resource groups specify what tags are needed for a resource to belong to the group.
  5. Furthermore, a resource group specifies the region(s) where the resource should reside in. It means globally these resource groups can be deployed for its functioning. 
  6. We can use resource groups to group resources if we run multiple systems in the same AWS account. This way we are sharing the resources among the projects or app architectures.
  7. Let us note that we have tagged the blogging infrastructure with the key “system” and the value “wordpress”.
  8. As an example; from now on, we will use this notation for key-value pairs: (system:wordpress). We’ll use that tag to create a resource group for our WordPress infrastructure.  For further clarity please look into the lab steps/video.

Now let us understand;

How to create  a resource group in AWS?:

    1. In the AWS part of the top navigation bar, click Create a Resource Group.
    2. Set Group Name to “wordpress” or whatever you like.
    3. Add the tag system with the value wordpress.
    4. Select the region N. Virginia [for example]. [I have used my existing account]
    5. Save the resource group.
    6. It will take you to next screen shown in next page. Follow the below steps.

How to see the Blogging infrastructure web servers via resource groups details?:

  1. Select Instances under EC2 on the left to see the web servers.
  2. By clicking the arrow icon in the Go column, you can easily jump to the details of a single web server. 
  3. Now, You are  looking at the details of your web server, which is also called an EC2 instance.

Details of web servers running the blogging infrastructure:

  1. On this screen the interesting/important details are as below:
  • Instance type: It tells us about how powerful your instance is.
  • Public IP address: The IP address that is  reachable over the internet. You can use that IP address to connect to the server via SSH.
  • Security groups: If you click on View Rules, you’ll see the active firewall rules like the one that enabled port 22 from all sources (0.0.0.0/0).
  • AMI ID: Let us recollect that we used the Amazon Linux operating system (OS). If you click the AMI ID, you will  see the version number of the OS, among others.  

We also need to know the utilization of webservers, like how we used to monitor in live [for production boxes].

Looking for webserver utilization and metrics in AWS:

2. In the screen; Select the Monitoring tab to see how your web server is utilized.

3. This will become part of our job: really knowing how the infrastructure is doing.

4. AWS collects some metrics and shows them in the Monitoring section. If the CPU is utilized more than 80%, you should add a third server to prevent page load times from increasing.

Now let us understand on;

How to check the Blogging infrastructure load balancer via resource groups?:

  1. We can find the load balancer by selecting Load Balancers under EC2 on the left to the page.
  2. By clicking the arrow icon in the Go column, you can easily jump to the details of the load balancer.
  3. Now, we are looking at the details of your load balancer.
  4. Here; the most interesting part is, “How the load balancer forwards traffic to the web servers?“.
  5. The blogging infrastructure runs on port 80, which is the default HTTP port.
  6. The load balancer accepts only HTTP connections to forward to one of the web servers that also listen on port 80.
  7. The load balancer performs a health check on the virtual servers attached.
  8. Both virtual servers are working as expected, so the load balancer routes traffic to them.    

How to check the MySQL server ?:

Details of the MySQL database which stores data for the blogging infrastructure

  1. Now; let’s look at the MySQL database. You can find the database in a resource group named wordpress.
  2. Select DB Instances under RDS at left.
  3. By clicking the arrow icon in the Go column, you can easily jump to the details of the database.
  4. Now the details of our MySQL database are shown in the screen.
  5. The benefit of using RDS is that we no longer need to worry about backups because AWS performs them automatically.
  6. Updates are performed by AWS in a custom maintenance window. Keep in mind that you can choose the right database size in terms of storage, CPU, and RAM, depending on your needs.
  7. AWS offers many different instance classes, from 1 core with 1 GB RAM up to 32 cores with 244 GB RAM.

Note: I would like to emphasize to compare the traditional [non-cloud] approach. We were using scheduler to backup the DB periodically. Some times we used to shutdown the live systems to take the backups. So, from AWS RDS services we do not need interruption to the business to take backup, RDS takes care everything. We can save the role of sysadmin/DBA while using the AWS services. This way the resources efforts and business services down time are saved.

As we planned three activities for this whole exercise as on now; we have completed the activity of “A) Set up a highly available blogging infrastructure in AWS.”

Now, we are going to work on; “B) Estimate monthly costs of the infrastructure.”

  1. As the  part of this exercise is’ cost estimation also need to be done.
  2. To analyze the cost of our blogging infrastructure, we will  use the AWS Simple Monthly Calculator.
  3. Recollect that we clicked the Cost link in the previous section to open a new browser tab.
  4. Now, switch to that browser tab, and you will see a screen as shown in the below  chart.
  5. To Estimate of our Monthly Bill, and expand the Amazon EC2 Service and Amazon RDS Service rows.

Now, Let us see and understand the below chart.

Blogging infrastructure cost calculation

Now it’s time to evaluate costs. We can see on How much does it cost?

  1. In this example, our infrastructure will cost is around $60 per month.
  2. Let us keep in mind that this is only an estimate.
  3. We are billed based on the actual usage till the end of the month.
  4. Everything is on-demand and usually billed by hours of usage or by gigabytes of usage.
  5. But what influences the usage for this infrastructure?

Let us analyze different situations and identify the costing parameters as below:

Traffic processed by the load balancer: Let us assume; Expect the costs to go down in during festival/vacation season like;  “December and the summer”. When the people are on vacation and not looking at our blogs.

Storage needed for the database: If our startup company increases the number of blogs, the database will grow, so the cost of storage will increase this way.

Number of web servers needed: A single web server is billed by hours of usage. If two web servers are not enough to handle all the traffic during the day, we may need a third server.  By default we need to keep in our AWS/EC2 setup. In that case, we will consume more hours of virtual servers.

Now we had a clear overview of the blogging infrastructure creation and its cost estimation/Analysis. Similar way you will be able to do for your AWS migration projects also.

Now; with reference to  the 3rd  step, it is time to shut down the infrastructure and complete our AWS migration evaluation exercise.

Let us recap our planned 3rd activity;

C) Finally, Delete our blogging infrastructure to save cost from free-tier account.

Now, go to the CloudFormation service in the Management Console and do the following:

  1. Select the WordPress row.
  2. Click Delete Stack, as shown in top of the screen.
  3. After you confirm the deletion of the infrastructure, it takes few minutes for AWS to delete all of the infrastructure’s dependencies.
  4. Please note; this is an efficient way to manage our infrastructure.
  5. Just as the infrastructure’s creation was automated, its deletion is also completely automated.
  6. You can create and delete infrastructure on-demand whenever you would like, and you only pay for infrastructure when you create and run it.  

<===== I copied the relevant lab practiced steps for your easy use ======>

These steps were used as on dated: 9th Sept 2018 on my free-tier account for student purpose.
The AWS might change its Screens flow or UI part time to time.
Hence from the above blog narration some detailed steps are given in the below lab practice steps for your easy use/practice.

1. Sign-in to your AWS console account from URL:
https://aws.amazon.com/

2. Login to the account.
3. Click on Services.
4. Please note we need to use Cloudformation service of AWS in this exercise.
Hence click on Cloudformation.
5. You will be shown the screen to create a new stack. Click on it. Note as mentioned in my blog it has 4 step process.
6. Now, select a sample template. Choose WordPress blog. It creates/shows the S3 template url.
7. Copy the S3 Template URL into a file for future usage.
8. Now, click on Next to go to next screen.
9. Under Specify Details columns, mention the details.
10. Please note my Infra name I want to give “wordpress”.
11. It has the predefined DB “wordpressdb”, I will keep it.
12. I can give DB Passwords, as required in the entry boxes/columns.
13. Dbuser “vskumarwp”. It has instance type t2.small.
14. Now, as you are aware we need to have the local SSH keys which we have created earlier. I have some keys I have selected one. [If you are new for this account, create the SSH keys…]
15. I need to give the range of IPs to be used for our wp servers.
I want to use 192.168.116.9/15.
16. Now, need to click on next…
Please note the above steps are required for you….

17. Let me give System as “worpress” and key as “system” as mentioned in my blog.
18. I want to skip ARN value in this exercise, due to as I mentioned in blog I would like to follow. I will not have any ARN, Hence monitoring is not mandated for me in this exercise. Then press “Next”.

19. Now, we will see the review screen as mentioned in Blog. On reveiw screen press Create button.
20. We are in creation process screen as mentioned in Blog.
CREATE COMPLETE IS DONE NOW.

21. Now let me click on my instance vskumarwp.

22. Now, go to the top navaigation bar and select the resource groups.
23. Select create resource group. You will get a new screen which has some entries and selections. Give tag key as “worpress” and press create group.
24. Next screen it shows wordpress as the resource group name.

25. Now, go to EC2 instance from the left side shown.
Now, you can see in bottom of the screen as mentioned in the blog.

26. I can see ELB by clicking on ELB option in the left panel.
Please note I have not given the ARN. Hence the Monitoring option is not selected.
Due to it might charge me.

27. You can see the cloud watch options through monitoring button in the below part of the screen.

28. Please note the security groups are attached by default.

29. Please note if I want to use this EC2 instance which is prepared for WP, I need to launch in AWS services live.
Which is going to be billed. Hence I will stop at this point.

30. The FINAL step is to delete the Instance of WP. I will go to cloudformation option.
Then it displays the current instance. I will select it and go to actions and select the DELETE STACK Option.
It prompts for ‘YES/NO’, Select Yes. It can take some time to perform deletion.

31. Once it is deleted it will comeback to the Stack creation screen.
Please note I have checked it, there are no existing instances in my current account.
We can see it as terminated instance.

32. So, this way we can create infra and delete it very easily.

33. So, let us have a final conclusion, section from blog.

34. Please call me if you need any coaching for AWS course….
THANKS FOR WATCHING MY VIDEOS/BLOGS ……..

 

Watch the below video on this blog Narration:

https://www.facebook.com/watch/?v=254567748762273

 

For the above steps a 40 mts videos has been made and hosted  on my channel. Please look into it also.

================= End of Lab practice ===============================>

 

Now, after doing all the above steps we can compare our conclusions mentioned in the beginning of this blog. I copied the same for your cross check!!

a) Creating a blogging infrastructure can be fully automated through AWS services.
b) Infrastructure can be created at any time on-demand without any up-front
commitment for how long we will use it in AWS.
c) We can pay for our infrastructure depending on how many hours we use it.
d) Infrastructure consists of several parts,
such as; virtual servers, load balancers, and databases.
e) Infrastructure can be deleted with one click without costing to us.
This process is powered by AWS automation. So it will not be billed to our free tier account after deletion.

I assume now, you are a fearless user of AWS to create the infrastructure through your free-tier account and delete and maintain the account without a cost to your CC/Account.

If you are interested to learn Virtualization with Vagrant visit:

1. Vagrant/Virtual Box:How to create Virtual Machine[VM] on Windows 10?:

Note to the reader of this blog:

If you are not a student of my class, and looking for it please contact me by mail with your LinkedIn identity. And send a connection request with a message on your need. You can use the below contacts. Please note; I teach globally.

Vcard-Shanthi Kumar V-v3

This blog is created as an video  also. There are series of videos made till end of the lab session. At the end,  the lab practices are also recorded for your use with your free AWS account.

 

 

 

 

For some more AWS Specimen POCs visit the below FB web pages:

Build Cloud Solution Architects

MicroServices and Docker

If you want to learn indepth Cloud/DevOps Architec role with Infra setup upto IAC Automation the following course can help you to convert into the demanding role:

https://vskumar.blog/2020/01/20/aws-devops-stage1-stage2-course-for-modern-tech-professional/

There are many global working professionals are inclined on this curriculum. Watch the videos and ping me on Facebook: https://www.facebook.com/shanthikumar.vemulapalli

3. AWS: How to create S3 Bucket and share object URL ?

In this blog, I have given the link to the discussion video:

a) Creating a Bucket on S3.

b) Uploading an Object.

c) Sharing the object URL.

d) Testing the object URL for its display in  Different Laptop.

Watch this attached video



AWS-SAA-Course

35. DevOps:How do you plan an IAC [Infrastructure As Code] ?

 

 

vskumarcloud-build-cloud-architect

When you are working for DevOps practices, the following question I would like to ask…

How do you plan an IAC [Infrastructure As Code] ?

You or your team member might be expert in Configuration tools.

But without having clear environment specifications these tools will not have any AI to get your environment.

When we do IAC as part of Devops practices, we also need to do identification of Infrastructure needs for different environments.

At that time one need to do the following activities also.

This is not only for a Cloud Architect, even for a DevOps practitioners it is mandatory.

Look into the discussion video mentioned in the below URL.

Please note unless you give specifications to DevOps Engineer he/she can not build sustainable environment.

Your prior planning is very essential.

Cloud architect: How to build your Infrastructure planning practice ?

https://vskumar.blog/2018/12/04/1-cloud-architect-how-to-build-infrastructure-planning/

 

How a DevOps Architect role is different from A Cloud Architect ?

Many people might feel the Cloud Architect and DevOps Architect can play dual roles. As per my observation yes, many small and medium level organizations are utilizing the IT Professionals in the same manner. I wrote a blog for these roles segregation with their main Activities. I felt this might help to some of the practitioners.

With reference to my previous blog on Cloud Architect role comparison with DevOps, there were questions on DevOps architect role comparison.

https://vskumar.blog/2018/11/21/how-a-cloud-architect-is-different-from-devops-role/

Basically, A DevOps architect need to work on:

  1. Identifying the Sprint cycles for different projects.
  2. Identifying the different environments needs including the different test levels requirements.
  3. Plan/design the environment specifications to build Infrastructure As A Code [IAC] and guide the DevOps Engineers.
  4. At the same time he/she need to collaborate with the Cloud Architect to seek the permissions/approvals to utilize the cloud environment on these environmental requirements/setup.
  5. Both these architects need to measure the cost of this Infrastructure to estimate and get approval from the management.
  6. The DevOps Architect is also responsible to plan for different production deployments. He/She need to work together with the Cloud Architect to establish this setup.
  7. In the current trend the containerization is accelerating with Cloud technology. Both these architects need to keep working on these areas to reduce the Virtual Machines cost by replacing with containers. At the same time these two people need to think on converting the applications into Microservices slowly with the Agile methods. This will have easy maintenance in future and also the further cost can be reduced in view of infrastructure and the man power. And their guidelines need to submit to management as a proposal. These two people are also responsible to upgrade their teams skills on the new trends in Cloud technology.
  8. If you ask me the question who are the team members for these roles;
  9. DevOps Engineers will report to DevOps Architect.
  10. Cloud/system engineer reports to Cloud Architect.

So these architects need to manage their teams well in view of their skills augmentation and the tasks rolling as per the DevOps Speed/Velocity concepts.

What kind of IT Professionals can be converted into DevOps Architect ?

Basically, the DevOps activities are related to more on Practices and Culture. If your background is related to the below areas in the past, your profile might suit to convert by learning the above mentioned skills.

  • You might have worked on Deployment areas
  • Worked in release management
  • Worked in Development processes implementation areas.
  • You should be savvy in implementing the Agile/Scrum/Lean practices.
  • You should have worked as a Servant leadership role also. [Even as a Scrum master]. In many cases this role is responsible to mentor the teams on different practices implementation by gearing up the teams to follow DevOps Velocity.
  • You should have worked in Identifying the retrospective issues very well and implemented the improvements in different Sprint cycles.
  • He/she should be savvy in learning new technology and transform the knowledge to the teams well. This knowledge should be very simple on the tools features related areas and how they can utilize them in their setup ? How they can reduce the efforts and cost to the company with a ROI Demonstration. They need to prove it to management with a POC.
  • This person is responsible to show some ROI as Cloud Architect does it on DevOps New practices implementation.
  • The DevOps Architect reports to the DevOps Practices head or CIO or CTO. Where as the Cloud Architect reports to CIO or CTO. Depends on the size of the organization, there can be Chief Cloud architect also, where all the Cloud architects report to this position.

What will be the size of Cloud market in IT by 2022 ?

Note:

The DevOps Architect need not put his fingers into low level command scripts. It is the responsibility of the DevOps Engineers.

Hope this blog clarifies for many people.

AWS-SAA-Course

 

 

 

 

 

Also read the below blog on how the Costly Cloud Defects are getting created:

https://vskumar.blog/2019/10/14/how-the-cloud-professionals-can-create-the-costly-defects-and-the-reasons/

36. DevOps:Why the DevOps practice team is required to involve in Infra cloud planning? ?

Build Cloud architects-FB promotion

Why the DevOps practice team is required to involve in Infra cloud planning?

I was talking to some clients recently on the importance of Cloud migration activities planning. I have come with some guidelines for them as part of my engagement. Some of my guidelines given to them, I would like to share as below.

When the DevOps practice team need to do the infra setup  for a cloud migration they also need to participate on the identification of Infra activities and the specifications. Which is very essential.

This need to be done as initial step with any Cloud services migration.

As per my opinion we can work with any cloud services like; AWS/AZURE/Google Cloud, etc., by having the above activity as mandatory.

The attached blog/Video contains the same discussion with the details of the steps required to setup a Virtual Private Cloud. The VPC nomenclature we might have seen with AWS. But similar setup or name cane be there with other Cloud service providers also.

Once this VPC is created the systems are going to be hosted on Cloud.

The Ops team’s responsibility is; to make sure the Cloud migration is correctly and completely done for all the live setup.

At the same time they also need to conduct a pilot testing activity successfully which is mandated as per the Agile Projects management [Agile PM] standards before they announce go live.

They also need to do a parallel run along with the past production setup with a new cloud setup for few weeks.

 

Below URL contains the initial planning discussion as mentioned:

https://vskumar.blog/2018/12/23/9-aws-saa-what-is-the-initial-step-for-vpc-design-theorydiscussion-video/

 

If you want to learn detailed discussion on Infra planning, visit:

https://vskumar.blog/2018/12/04/1-cloud-architect-how-to-build-infrastructure-planning/

 

 

AWS-SAA-Course

 

 

 

 

aws-sa-associate-coaching-benefits-2

Please Note!! all the current IT infra setups are mandated to migrate into cloud… due to their BIG savings on IT budgets..with Cloud.

You can also see the PTI news in the given blog for the size of the Cloud 

jobs in India by 2022:

https://vskumar.blog/2019/02/14/what-will-be-the-size-of-cloud-market-in-it-by-2022/

So to catch the market or scale yourself in IT Cloud needs, you need to learn it.

1. If you are looking for Conversion into AWS Cloud Architect Job role, with your Sys/Network/Storage/DB admin role;

2. Please look into this!! This is valuable and great opportunity for you!! to step down into it.

3. There are many IT professionals globally converting through right mentors, from Traditional role into this role to catch up the global IT market demand!! to sustain in IT Payrolls…….!!

4.Please come back for a discussion, after all the below links/blogs/videos walk-through thoroughly.

https://www.facebook.com/vskumarcloud/videos/352049242184854/
If interested to convert, Please ping me on FB messenger by sharing your linkedin profile in advance to our chat/discussion.
Good luck!!

[https://www.facebook.com/shanthikumar.vemulapalli].

 

You can also compare the SAA Salary among all the roles being played with AWS:

http://uk.businessinsider.com/salary-survey-indicates-employers-prize-amazon-aws-certifications-2017-8?r=US&IR=T

 

AWS SSA salary is higher than any other roles in AWS.

=======================>

Also please note;

  1. Being experienced IT Professional, I don’t give live projects like training companies.
  2. Because I don’t handle any AWS client projects just for this course.
  3. But as per the IT delivery life cycle standards we will create some Proof of Concept projects during this course, which can be used for a client demo later by you.
  4. You as Cloud architect, will be able to take-up/handle confidently the client projects after this course.
  5. At the same time, I don’t place anybody after coaching. After learning you need to expose the international IT Job market.
  6. If interested on this learning please come to a call to discuss the same by booking time with a scheduled call.

=======================>                                                                             

For more details on course samples, visit the following blogs/videos/Feedback also.

What are the skills required for a Cloud Architect ? [From Gartner report – 2017]

https://www.facebook.com/vskumarcloud/videos/831779460496153/

Visit the recent student feedback on this course:

It was from one of the working IT Professionals interview on my course. He has 9.5 yrs sysadmin experience. He answered the below questions:

1. What did you expect from my course before joining ?

2. How did you feel on the material ?

3. How did you feel on explanation ?

4. How did you feel on the chapter wise questions practice ?

5. Did you get any job experience feeling from my course ?

6. If your current company put you on AWS tasks also, what is your confidence level ?

7. Finally, what is your target for your exam prep ?

8. How are you going to RE-use material ?

9. How are you going to RE-use Lab sessions ?

In some of my Youtube videos you can find his attended sessions also!!

You can see from the below Facebook page also:

This is available on my youtube channel also:

 

Another student discussion on “Course on AWS Certified DevOps Engineer – Professional“, after attending AWS-SAA course.

Following are the samples of my previous classes with 10+ yrs experienced Sys-admin IT Professionals:

https://vskumar.blog/2018/12/20/8-aws-saa-what-is-pre-signed-url-and-cross-region-replications-a-scenario-based-online-class-theorydiscussion-video/

https://vskumar.blog/2018/12/10/6-aws-saa-exam-sample-questions-practice-and-discussion-video/

https://vskumar.blog/2018/11/17/1-aws-saatry-out-faqs-for-aws-saa-exam-prep/

https://vskumar.blog/2018/12/20/8-aws-saa-what-is-pre-signed-url-and-cross-region-replications-a-scenario-based-online-class-theorydiscussion-video/

https://vskumar.blog/2018/12/23/9-aws-saa-what-is-the-initial-step-for-vpc-design-theorydiscussion-video/

https://vskumar.blog/2018/12/14/7-aws-saa-sample-questions-for-s3-and-glacier-with-answers-discussion-video/

https://vskumar.blog/2018/12/10/6-aws-saa-exam-sample-questions-practice-and-discussion-video/

https://vskumar.blog/2018/11/17/1-aws-saatry-out-faqs-for-aws-saa-exam-prep/

https://vskumar.blog/2018/12/23/9-aws-saa-what-is-the-initial-step-for-vpc-design-theorydiscussion-video/

https://vskumar.blog/2019/01/16/12-aws-saa-what-are-the-s3-bucket-and-object-operations-practice/

https://vskumar.blog/2018/12/14/7-aws-saa-sample-questions-for-s3-and-glacier-with-answers-discussion-video/

You can also visit my youtube channel: Shanthi Kumar V

How to plan on “moving your DB backups to AWS S3-Glacier [cold storage]” ?

https://www.facebook.com/vskumarcloud/videos/552407698568828/?t=86

 

 

7. AWS-SAA: Sample questions for S3 and Glacier with answers discussion video

There are 16 Questions for practice on AWS S3 and Glacier.

The class videos are attached towards Practice Questions analysis with answers.

To, find these questions analysis watch my online class videos with different students discussion:

The below video has 16 FAQs analysis.

In the below video 1st 10 FAQs with another participant:

AWS-SAA-ExamPractice questions-discussion-S3 & Glacier.png

You can also see the below video on S3 Patterns usage discussion:

Visit for your online coaching:

https://vskumar.blog/2018/11/13/coaching-mentoring-on-aws-solution-architect-associate-exam/

 

For S3-Objects lab practice visit:

https://vskumar.blog/2018/12/03/3-aws-how-to-create-s3-bucket-and-share-object-url/

 

 

5. AWS-SAA:Try out Sample questions for AWS SAA exam prep

You can try the below FAQs for your exam prep on AWS SAA.

There are 4 questions only, related to AWS Platform.

AWS-SAA-FAQs-on Introduction-Qs 17-20.png

 

 

Visit for your online coaching:

https://vskumar.blog/2018/11/13/coaching-mentoring-on-aws-solution-architect-associate-exam/

AWS-SAA-Course

AWS-SAA-Course

For Course TOC Discussion, watch the below video [This is also a course demo]:

For sample FAQs analysis on SAA Course watch the below  class video:

 

 

 

8. AWS-SAA: What is Pre-Signed URL and Cross region replications A scenario based online class [theory]discussion video

vskumarcloud-build-cloud-architect

This video has the discussion on AWS S3 Bucket/Objects Pre-signed URL.
1. What is S3 Pre-signed URL ?
2. How it can be made for Bucket and objects ?
3. How to share the Bucket objects in Cross Region replication ?
5. What are the security/access levels need to be followed to share to users ?
6. How these features can be used for a Movies hosting site for a limited period ?

 

 

This has the discussion video on S3 Logging, Events and the pattern usage also.

Visit for your online coaching:

https://vskumar.blog/2018/11/13/coaching-mentoring-on-aws-solution-architect-associate-exam/

For S3-Objects lab practice visit:

https://vskumar.blog/2018/12/03/3-aws-how-to-create-s3-bucket-and-share-object-url/

 

Visit for AWS FAQs discussion:

 

1. Cloud architect: How to build your Infrastructure planning practice [watch many scenario based videos] ?

If you are a Cloud Architect, you might do project initiation for Cloud migration projects. During that time you need to have a plan to get series of activities and to make a project schedule. You might need to see this discussion Video also along with your planning. It will add value for your future efforts savings or can reduce repeat activities. Please send your feedback by e-mail [mentioned in it], which can encourage us to make such Consulting/discussion videos sharing on Social.

Build Cloud architects-FB promotion

With reference to my previous blog on the role of Cloud architect, in this blog I would like to present on:

  • What is Traditional Infrastructure planning and building analysis ?

  • How to setup a new Infrastructure for an E-commerce [simple site] in Traditional manner ?

  • What are the Activities we might do ?

  • How to compare them in high level with a Cloud Architecting ?

  • If the Cloud architect apply these practices in his/her area, lot of time for roll back/back out tasks can be reduced during migration.

The following One hour Video has the entire elaboration  for your clarity with a Consulting/Training discussion:

You can also join for similar discussions:

https://www.facebook.com/groups/1911594275816833/about/

If you are looking for coaching on your role Cloud performance, please contact me on my FB with your Linkedin URL.

For details on my coaching visit:

https://vskumar.blog/2018/11/13/coaching-mentoring-on-aws-solution-architect-associate-exam/

If you are interested to know the Cloud initiation activities, visit my video:

A scenario based discussion happened with a Cloud professional from the above video/blog:

Cloud Initiation and Practices – 1:

https://www.facebook.com/101806851617834/videos/336263767430087/

Cloud Initiation and Practices – 2:
This is the 2nd discussion video on the Cloud initiation and on the needed practices.

1. Vagrant/Virtual Box:How to create Virtual Machine[VM] on Windows 10?:

Vagrant-Logo                                                                                                          Oracle-VB-VM

How to create Virtual Machine[VM] on Windows 10 using Vagrant/Virtual Box.

In this exercise, we will see the following sections/topics/activities:

Let us consider the below two activities.

I. How to Install Vagrant and VirtualBox ?
II. How to Initialize our first virtual environment with Vagrant setup ?

I. How to Install Vagrant and VirtualBox ?:

Step1: Selecting the Virtual Box
Initially, we need to install the software required to manage a virtual machine
environment, which is a hypervisor as well as the Vagrant software itself.
In this activity, we will install VirtualBox to use it with Vagrant.

VirtualBox is an open source hypervisor that was initially made as the only
hypervisor and supported by Vagrant.
The VirtualBox is broadly supported by the Vagrant community.

Before we install the VirtualBox and Vagrant software, we need to obtain its latest versions.
VirtualBox can be downloaded from its project website at http://virtualbox.org.

Please note, in this exercise we are going to use for Linux installations [VMs] only. Also note, in this exercise I am using Windows10 as OS. Hence I need to select for my use the windows version under Windows hosts.

When we click on it, it downloads the file named as “VirtualBox-5.2.16-123759-Win”, as on date this is the file exists. [it might vary time to time]. You can install it on your desktop/Laptop now. 

A new installation of VirtualBox will display a welcome message in a window titled as
“Oracle VM VirtualBox Manager”.
When you have created more than one virtual machines, this dialog displays information about the machines created using VirtualBox.

Step2: Getting  Vagrant to operate the Virtual Box
Now, we need to get the Vagrant file to install.
Vagrant packages are operating system-specific and can be downloaded from the
Vagrant website at http://vagrantup.com.
Download the appropriate version  for your system [example: Windows10].
You can find, Windows 32-bit or 64-bit. In my current Laptop, I use 64 bit.
You can find the file as “vagrant_2.1.5_x86_64” to download the same.
Now install it after its download.
Vagrant setup wizard will drive you with it easy guidelines.
It installs by default into:C:\HashiCorp\Vagrant\
It takes few minutes to copy the files and install into your Desktop/Laptop.

Step3: Identify the Vagrant installation
Now, It will ask you to reboot your machine. Once you rebooted your system, please follow the below steps.

How Vagrant works?:
Let us understand; Vagrant followed the below procedure in the above Step2.
The Vagrant installer extracted and copied its files, and added the vagrant command to the executable path.
On Windows OS, this will install Vagrant to the default OS X Applications/ directory.
Also let us note; Vagrant is a command-line driven application, there are no programs
accessed from this OS.
Now, by opening a command prompt [CMD in windows] let us verify that Vagrant is working. We need to do it by executing: “vagrant version” command in CMD.

We can see the below screen output in CMD window:
=== CMD window output ====>
C:\Users\Windows>vagrant version
Installed Version: 2.1.5
Latest Version: 2.1.5

You’re running an up-to-date version of Vagrant!
===========================>

From the above output;
It is confirmed, we are ready to start using Vagrant!

Note: Please visit https://docs.vagrantup.com/v2 , to know  further the Vagrant installation guidelines.

Let us recap, What we have done is; we installed a working Vagrant environment which consists of:
a) A hypervisor application that can contain virtual machines.
b) Also let us note; Vagrant is a tool that makes managing these machines simpler and available.
c) It is important here to note that Vagrant is simply a framework to manage virtual machines.
d) It is not an application to create and host virtual machines.

II. How to Initialize our first virtual environment with Vagrant setup ?:

As mentioned in the above sections, once we have a working Vagrant environment with a hypervisor, we can initialize our first environment.
There are two ways we can  work with Vagrant to achieve this task:
a) In a new environment with a newly initialized Vagrantfile.
b) In an environment which is maintained in source control system (such as Git, SVN, etc.), which has a Vagrantfile included in a project and keeping  Vagrantfiles for different purposes of the projects.

This is a powerful  technique to manage and track changes in Vagrant environments. This kind of method can be more useful to  build the Environments easily with the concept of Infrastructure As a Code [IAC] under DevOps culture. Which is also a script driven [automated IAC] process.

But in this example, we will initialize a new environment with the basic configuration of a Vagrantfile.

Step1: Let us create a vagrantfile with  vagrant init command as below to get an ubuntu 16.04 machine with 32 bit.

I have copied my screen display with used commands for this process.

I need to have a different folder and used the below command in that folder”.

vagrant init puppetlabs/ubuntu-16.04-32-nocm

 

=== Screen output ===>

C:\>md dir vagrant-files

C:\>cd vagrant-files

C:\vagrant-files>

C:\vagrant-files>vagrant init puppetlabs/ubuntu-16.04-32-nocm
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

C:\vagrant-files>

==== We have created a vagrantfile now===>

Step2: Making Vagrant up

Before running this step please make sure you have installed the Oracle VirtualBox as mentioned in the previous section.

Now, In Command Window execute the below command.

“vagrant up”

This command might output several results; I am copying my screen output which was displayed. It takes few minutes to complete this activity.

=== Screen output for vagrant up=====>

C:\vagrant-files>vagrant up
Bringing machine ‘default’ up with ‘virtualbox’ provider…
==> default: Box ‘puppetlabs/ubuntu-16.04-32-nocm’ could not be found. Attempting to find and install…
default: Box Provider: virtualbox
default: Box Version: >= 0
==> default: Loading metadata for box ‘puppetlabs/ubuntu-16.04-32-nocm’
default: URL: https://vagrantcloud.com/puppetlabs/ubuntu-16.04-32-nocm
==> default: Adding box ‘puppetlabs/ubuntu-16.04-32-nocm’ (v1.0.0) for provider: virtualbox
default: Downloading: https://vagrantcloud.com/puppetlabs/boxes/ubuntu-16.04-32-nocm/versions/1.0.0/providers/virtualbox.box
default: Download redirected to host: s3.amazonaws.com
default:
==> default: Successfully added box ‘puppetlabs/ubuntu-16.04-32-nocm’ (v1.0.0) for ‘virtualbox’!
==> default: Importing base box ‘puppetlabs/ubuntu-16.04-32-nocm’…
==> default: Matching MAC address for NAT networking…
==> default: Checking if box ‘puppetlabs/ubuntu-16.04-32-nocm’ is up to date…
==> default: Setting the name of the VM: vagrant-files_default_1536967979621_87087
Vagrant is currently configured to create VirtualBox synced folders with
the `SharedFoldersEnableSymlinksCreate` option enabled. If the Vagrant
guest is not trusted, you may want to disable this option. For more
information on this option, please refer to the VirtualBox manual:

https://www.virtualbox.org/manual/ch04.html#sharedfolders

This option can be disabled globally with an environment variable:

VAGRANT_DISABLE_VBOXSYMLINKCREATE=1

or on a per folder basis within the Vagrantfile:

config.vm.synced_folder ‘/host/path’, ‘/guest/path’, SharedFoldersEnableSymlinksCreate: false
==> default: Clearing any previously set network interfaces…
==> default: Preparing network interfaces based on configuration…
default: Adapter 1: nat
==> default: Forwarding ports…
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM…
==> default: Waiting for machine to boot. This may take a few minutes…
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
default: Warning: Connection reset. Retrying…
default: Warning: Remote connection disconnect. Retrying…
default: Warning: Connection aborted. Retrying…
default:
default: Vagrant insecure key detected. Vagrant will automatically replace
default: this with a newly generated keypair for better security.
default:
default: Inserting generated public key within guest…
default: Removing insecure key from the guest if it’s present…
default: Key inserted! Disconnecting and reconnecting using new SSH key…
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM…
default: The guest additions on this VM do not match the installed version of
default: VirtualBox! In most cases this is fine, but in rare cases it can
default: prevent things such as shared folders from working properly. If you see
default: shared folder errors, please make sure the guest additions within the
default: virtual machine match the version of VirtualBox you have installed on
default: your host and reload your VM.
default:
default: Guest Additions Version: 5.0.20
default: VirtualBox Version: 5.2
==> default: Mounting shared folders…
default: /vagrant => C:/vagrant-files

C:\vagrant-files>

=== End of Vagrant up process ====>

Please note with the above activity is completed, your VirtualBox window will show this VM as its status “running”. It means you are able to see this newly created VM in your “Oracle VM VirtualBox Manager”.

Step3: Checking the box

Now let us use check this VM in a Command line:

After Vagrant returns to the command line, executing the “vagrant ssh” command will open a command-line interface into the newly initialized Virtual Machine[VM].

You can see the screen output:

==== vagrant ssh ====>

C:\vagrant-files>vagrant ssh
Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-21-generic i686)

* Documentation: https://help.ubuntu.com/
New release ‘18.04.1 LTS’ available.
Run ‘do-release-upgrade’ to upgrade to it.

vagrant@localhost:~$ ls
vagrant@localhost:~$

=============>

At the same time you can also go to your “Oracle VM VirtualBox Manager”, and double click on it. It will show a button “Show”, you can click on it. Opens a window with this VM.

Please note; In this exercise we have created the base box only. Hence we are not going to use this VM for our future operation.

You can see the local dir as:

== Current dir details ===>

C:\vagrant-files>dir
Volume in drive C has no label.
Volume Serial Number is 5A33-A94E

Directory of C:\vagrant-files

09/14/2018 04:14 PM <DIR> .
09/14/2018 04:14 PM <DIR> ..
09/14/2018 04:25 PM <DIR> .vagrant
09/14/2018 04:12 PM 3,108 Vagrantfile
1 File(s) 3,108 bytes
3 Dir(s) 96,101,879,808 bytes free

C:\vagrant-files>

==============>

Step4: Destroying the Virtual box

Now, we will see : a) How to exit, b)  How to Destroy this VM.

a) How to exit: We can exit it by using the command :

“control-d command, or by typing exit”

b) How to Destroy this VM: We can Destroy the virtual machine, by discarding the entire working environment. This can be done  with the “vagrant destroy” command.

When you use this command, Vagrant  will now  prompt you to make sure  that you  want to destroy the environment; type “y” to proceed with destroying the environment and deleting the VM.

=== Output for Destroy===>

C:\vagrant-files>vagrant ssh
VM must be running to open SSH connection. Run `vagrant up`
to start the virtual machine.

C:\vagrant-files>vagrant destroy
default: Are you sure you want to destroy the ‘default’ VM? [y/N]
==> default: Destroying VM and associated drives…

C:\vagrant-files>

============>

You can also check in the GUI of the  “Oracle VM VirtualBox Manager”. It will not have this VM.

In  this simple vagrant exercise in summary we have done the below steps;

  • We have downloaded and configured “Oracle VM VirtualBox Manager”.
  • We have installed Vagrant.
  • Created a Vagrant virtual box.
  • We could connect to it in a command line interface and checked the linux [ls] commands. We also cross verified it in “Oracle VM VirtualBox Manager” on its appearance as VM. 
  • Finally, we destroyed this VM.

That is all about this exercise. You can create any number of VMs like this.

=========>

Let us recap our Laptop making as Dual OS for Windows and Linux. In traditional manner we used to run behind one desktop engineer to config such dual os by paying Rs. 1,000 to Rs. 2,000 [In Indian Metro cities]. Now you can estimate how much effort and money you can save by using Cloud Technology. This VM can be copied to other Laptops/Desktops also with ORACLE Virtual Box Installation. You can do your R&D very well using this VM. You can install your applications and test/develop in Linux.

==========>

Note:

You can keep checking this site or follow it to get the new/updated blogs.

If you are interested in learning AWS, go through my blogs:

2. AWS: WordPress[WP] infrastructure creation using a free tier account

1. AWS:How to create and activate a new account in AWS ?

 

Vcard-Shanthi Kumar V-v3

 

 

 

 

 

 

DevOps Practices & FAQs -2

Please read the previous FAQs series also: Devops-practices-faqs-1

And the next one: https://vskumar.blog/2019/02/01/devops-practices-faqs-3-domain-area/

AWS-SAA-Course

1. Who can become DevOps Engineer ?

In traditional projects [Non Agile practiced projects] ; Build Engineers, Sys Admins, Release Engineers can convert their career into DevOps Engineer role through an Agile practiced IT organization.

In Agile projects we might have seen Build or Deployment Engineers; they can convert into DevOps Engineer roles.

2. What a desired ‘DevOps Engineer role professional’ need to learn ?

If somebody would like to convert their role into DevOps Engineer; they need to understand the following :

  1. Agile and Scrum or Lean practices
  2. DevOps Principles, practices and patterns
  3. Deployment, SCM  and Release management process
  4. Version control System tools [Ex: Git, SVN, etc..]
  5. Cloud setup and deployment [Ex: AWS, Azure,Google Cloud, Alibaba, etc..]
  6. Packaging process and tools [Ex: Maven, Gradle, etc.]
  7. Continuous Integration Tools [Ex: Jenkins, Teamcity,  etc.]
  8. Software Configuration Management [SCM]  tools [Ex: Ansible,  Chef, Puppet, etc.]
  9. Containerization [Docker]
  10. Some of the scripting languages [Ex: Shell, Bash, python, Ruby, Nodejs, etc.]
  11. Windows, Linux OS commands and operations.

They can learn incrementally also depends on the project need. Note all projects will not use the unique tools. Depends on the IT organization plans, practices and the environments they decide on choosing the vendor based or open source tools.

Note: Some of the famous tools only it has been mentioned. Hence one need to identify the customer project environment and their DevOps architecture also. If one understands the Basic process in their 1st learning phase, later on they can pickup faster.

If you want to learn DevOps Practices, join the below group:

https://www.facebook.com/groups/1911594275816833/about/

FB-DevOps-Practices Group-page

Following videos are made to elaborate on the need and advantages of thinking on conversion into DevOps Practices by IT Companies and the Professionals. Comparative reports have been incorporated.

 

 

Advertising3

 

Visit my current running facebook groups for IT Professionals with my valuable discussions/videos/blogs posted:

 

DevOps Practices Group:

https://www.facebook.com/groups/1911594275816833/about/

 

Cloud Practices Group:

https://www.facebook.com/groups/585147288612549/about/

 

Build Cloud Solution Architects [With some videos of the live students classes/feedback]

https://www.facebook.com/vskumarcloud/

 

 

MicroServices and Docker [For learning concepts of Microservices and Docker containers]

https://www.facebook.com/MicroServices-and-Docker-328906801086961/

9. AWS-SAA: What is the initial step for VPC design? – [theory]discussion video

 

vskumarcloud-build-cloud-architect

I assume you have visited the below blog before reading this:

This Blog has the samples on how to jump start the VPC design plan?

What are the main activities you need to do before planning for cloud conversion?

How to convert a Banking traditional Infra into VPC:
1. Take the standard architecture diagram.
2. Identify one function ex: Retail Banking.
3. Analyze the required VPC components as per AWS services definition.
4. Document the required components below:

To do tasks:
1. Identify subnets
2. Idenitfy gateways
3. Identify NAT instance
4. Identify the Load balancer
5. Identify Servers
6. Identify Private and public subnets categories

Below video has the discussion on this design planning.

 

If you are in DevOps Practices and Migration activities, also visit:

https://vskumar.blog/2018/12/23/36-devopswhy-the-devops-practice-team-is-required-to-involve-in-infra-cloud-planning/

 

Visit for your online coaching:

https://vskumar.blog/2018/11/13/coaching-mentoring-on-aws-solution-architect-associate-exam/

For S3-Objects lab practice visit:

https://vskumar.blog/2018/12/03/3-aws-how-to-create-s3-bucket-and-share-object-url/

 

Visit for AWS FAQs discussion:

 

6. AWS: SAA Exam sample questions practice and discussion – Video

Following video has the AWS Solutions Architect Associate exam sample questions discussion.

 

You can see the questions related blogs:

https://vskumarblogs.wordpress.com/2018/12/03/3-aws-how-to-create-s3-bucket-and-share-object-url/

https://vskumarblogs.wordpress.com/2018/11/19/4-aws-saatry-out-sample-questions-for-aws-saa-exam-prep/

https://vskumarblogs.wordpress.com/2018/11/21/5-aws-saatry-out-sample-questions-for-aws-saa-exam-prep/

 

AWS-SAA-Course

via AWS Course samples-Coaching/Mentoring on AWS Solution Architect- Associate exam

How IT Service Transition [ST] can be used by a Startup – by example

The ITIL V3 phases Service Transition [ST] helps the IT services companies to implement their planned and designed services by using its different sub-processes.

In this blog, I am trying to connect to the Service strategy and Service design articles [and kindle book] wrote by me in the past with implementable scenarios for IT Startups.

Those examples are connected in this blog. This blog [in different parts] can give you the ST processes  details with examples and its practices implementation for any startups or who need to follow ITIL V3 practices.

At the same time, the people who are appearing for ITIL V3 ST exam also can simulate them in the similar way. You can refer to my previous blogs: The advantages of ITIL V3 Service design Practices for IT start-up company [http://wp.me/p4umAl-N].

With reference to the ITIL V3 Service transition, its entry criteria is there should be services with their design completion. Once the service(s) design is completed, the next step is its implementation planning and execution.

Let us consider the previous blogs services examples; if we consider the data migration service as a new service, we might need to do the following: Once the services are accepted by the customer, we need to plan for the below typical activities:

· Resources planning and their deployment in the project.

· The relevant project planning and its execution plan.

· The relevant skills capability building as an ongoing activity.

· Choosing the suitable Project management methodology [PMI or PRINCE2] and its transition to the project resources.

· Seeking the required organizational support.

· Working closely with the stakeholders as per their needs.

· Setting up the required infrastructure.

· Managing the required changes.

· Acquiring the required knowledge for the project and making a knowledge repository for the project resources.

· Developing the required ETL programs. 

· Evaluating the data migration ETL programs.

· Planning for the Data migration for live.

· Releasing and Deploying the data migration on production.

· Certifying the live data for business usage.

You can see my blog on Data migration Best practices [http://wp.me/p4umAl-g].

If we recollect all the above activities, they can be related to the ITIL V3 Service transition process areas.

Now let us see the ITIL V3 ST processes: Following are the seven key processes used during Service Transition.

I. Transition planning and support.
II. Change management.

III. Service asset and configuration management.

IV. Release and deployment management.

V. Service validation and testing.

VI. Evaluation.

VII. Knowledge management.

The above processes are being denoted in the below chart also:

Further  details on this topic [Part2] can be seen in my future blog please.

You can also visit for my  #Kindle Books:

How ITIL V3 Service Transition [ST] implementation can be done – by example [Part2]

In continuation of my previous blog on ‘How ITIL V3 Service Transition [ST] can be used by a Startup – by example [Part1] [http://wp.me/p4umAl-8Y]’, the below content is narrated.

As we have seen there are seven key process areas during ST implementation, let us see their usage.

Before going to this part of the blog let us recollect the key process areas through the below chart:

What is Transition planning and support ?:

This process is accountable towards transitioning of the new or modified services to the customer. At the same it can plan and seek for the required support.

Scenario: With reference to the above example, Data migration as a new service is being offered after the Service design completion. As mentioned in the above on this article, there are couple of simple and complex activities have been identified. Those need to be projected under Project Management and risk management. The required support need to be planned under each activity.

At the same time during this phase, the key process areas of Service transition also need to be considered and they need to be amended under project planning. As mentioned in my blog on data migration best practices, some of them might be very useful for risk mitigation and treatment also.

What is Change management ?:

Any designed  services might need some change at any time of their implementation. Due to many technology trends or changes are happening, the change in some of those services are mandatory. We need to assess the required changes and their impact on other services. If there are changes required for other services as dependency of the currently introduced service, it need to be planned for service transition.

If the change is required upto the current service only, then one need to plan for its changes assessment or impact within the service and need to modify the required areas of the planned transition activities.

Examples:

Scenario1:

Let us assume during the data migration service POC, your customer assumed ORCALE older version can be used. But when the data migration impact analysis is done they felt  the latest version should be used. Then as an IT service company you need to do the project assessment and the impact analysis for this new or changed requirement.

You need to train the resources for the source and target versions of the ORACLE data migration. At the same time the relevant data interfaces also need to be assessed on their impact and the modifications. If you are using any open or mainframe systems application interfaces, you need to apply those services changes also.

Scenario2:

If your applications are not having any interfaces and it is an independent application data migration, then you can assess the source and target versions of the ORACLE and plan accordingly.

What is Service asset and configuration management ?

We can see each of these items separately.

While using Information technology there are software and hardware resources need be used , if we need to build any software architecture or product. In such case we need to identify the required assets, their category, type of asset and its usage along with their upgrade status.

These items need to be maintained under repository. Their repository process management is known as Configuration management. The configuration management is a mandatory activity.

Apart from managing the above assets management, we also need to manage the IT services configuration management also.

Let us assume there are new services, old services and the retired [removed] services. These services details like an asset need to be maintained in under services asset configuration management.

Example:

Let us assume, the data migration services is a new service designed for IT services. It has its own catalog, its start date, the relevant technologies need to be used, the required resources skills and experiences, the capability management, Proof of concept process, etc. are being designed during the services design. It need to be registered under Services asset and configuration management.

In future if this service is modified or terminated it need to have its history as per this key process area of Service transition.

Similarly, we can build the history for all kinds of  IT  services.

34. DevOps:How to Install Gradle on Ubuntu 18.04 ? [Video]

Gradle logo

How to Install Gradle on Ubuntu 18.04 ? :

Through this blog it is demonstrated the Gradle 4.10.2! installation on Ubuntu 18.04 VM.

At the end of this blog the Installation video clip is attached.

PLEASE NOTE THIS VIDEO DOESN’T HAVE SPEAKING…..
I AM EXECUTING THROUGH THE BELOW STEPS ONLY …..

Step#1: Install OpenJDK:

Gradle needs Java JDK or JRE version 7 or
above to be installed.
We will install OpenJDK 8 as below.
Let us update the linux package index.

sudo apt update

Install the OpenJDK package with the below command:

Install the OpenJDK package.

sudo apt install openjdk-8-jdk
Check the java version.

Java -version

Step#2: Download Gradle

Using the below command; Used the below valid command…..

wget https://services.gradle.org/distributions/gradle-4.10.2-bin.zip -P /tmp
Once the download is completed, we need to extract the zip file into folder; /opt/gradle :

sudo unzip -d /opt/gradle /tmp/gradle-*.zip

Now,
let us Verify that the Gradle files are extracted by listing the /opt/gradle/gradle-4.10.2 directory
ls /opt/gradle/gradle-4.10.2

The typical file list will be:

bin getting-started.html init.d lib LICENSE media NOTICE

Step#3: Setting up environment variables:

Now, we need to configure the PATH environment variable to include the Gradle bin directory.
To do this task; need to open a text editor and create a new file named gradle.sh inside of the folder; /etc/profile.d/

sudo vim /etc/profile.d/gradle.sh

In this shell program [config file] paste the below lines;

export GRADLE_HOME=/opt/gradle/gradle-4.10.2
export PATH=${GRADLE_HOME}/bin:${PATH}

The above script will be initiated at startup.

Now, let us Load the environment variables using the following command;

source /etc/profile.d/gradle.sh

Step#4: Verify the Gradle installation

To validate the installation of Gradle
use the command;

gradle -v

It will display the Gradle version.

So the Gradle is installed successfully.

NOW YOU ARE READY TO CREATE YOUR BUILDS with Gradle.

==== Lab exercise output are pasted here ===>

Gradle installation steps output for Ubuntu 18.04 VM:

Step#1: Install OpenJDK:

Output for;

sudo apt update

==== Output =====>

vskumar@ubuntu:~$

vskumar@ubuntu:~$ sudo apt update

[sudo] password for vskumar:

Get:1 https://download.docker.com/linux/ubuntu bionic InRelease [64.4 kB]

Hit:3 http://us.archive.ubuntu.com/ubuntu bionic InRelease

Get:4 http://security.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB]

Ign:5 http://pkg.jenkins.io/debian-stable binary/ InRelease

Get:2 http://ppa.launchpad.net/webupd8team/java/ubuntu bionic InRelease [15.4 kB]

Get:6 http://us.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]

Hit:7 http://pkg.jenkins.io/debian-stable binary/ Release

Get:8 http://us.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]

E: Repository ‘http://ppa.launchpad.net/webupd8team/java/ubuntu bionic InRelease’ changed its ‘Label’ value from ‘Oracle Java (JDK) 8 / 9 Installer PPA’ to ‘Oracle Java (JDK) 8 Installer PPA’

N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.

Do you want to accept these changes and continue updating from this repository? [y/N] y

Get:9 http://ppa.launchpad.net/webupd8team/java/ubuntu bionic/main i386 Packages [1,556 B]

Get:10 http://ppa.launchpad.net/webupd8team/java/ubuntu bionic/main amd64 Packages [1,556 B]

Get:11 http://us.archive.ubuntu.com/ubuntu bionic-updates/main i386 Packages [372 kB]

Get:13 http://us.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [416 kB]

Get:14 http://us.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [571 kB]

Get:15 http://us.archive.ubuntu.com/ubuntu bionic-updates/universe i386 Packages [566 kB]

Fetched 2,254 kB in 25s (89.3 kB/s)

Reading package lists… Done

Building dependency tree

Reading state information… Done

345 packages can be upgraded. Run ‘apt list –upgradable’ to see them.

vskumar@ubuntu:~$

== End of output ======>

 

 

=====>Screen Output for JDK 8 Installation ===>

vskumar@ubuntu:~$ sudo apt install openjdk-8-jdk

Reading package lists… Done

Building dependency tree

Reading state information… Done

The following additional packages will be installed:

ca-certificates-java fonts-dejavu-extra libatk-wrapper-java

libatk-wrapper-java-jni libgif7 libice-dev libpthread-stubs0-dev libsm-dev

libx11-6 libx11-dev libx11-doc libxau-dev libxcb1-dev libxdmcp-dev

libxt-dev openjdk-8-jdk-headless openjdk-8-jre openjdk-8-jre-headless

x11proto-core-dev x11proto-dev xorg-sgml-doctools xtrans-dev

Suggested packages:

libice-doc libsm-doc libxcb-doc libxt-doc openjdk-8-demo openjdk-8-source

visualvm fonts-ipafont-gothic fonts-ipafont-mincho fonts-wqy-microhei

fonts-wqy-zenhei

The following NEW packages will be installed:

ca-certificates-java fonts-dejavu-extra libatk-wrapper-java

libatk-wrapper-java-jni libgif7 libice-dev libpthread-stubs0-dev libsm-dev

libx11-dev libx11-doc libxau-dev libxcb1-dev libxdmcp-dev libxt-dev

openjdk-8-jdk openjdk-8-jdk-headless openjdk-8-jre openjdk-8-jre-headless

x11proto-core-dev x11proto-dev xorg-sgml-doctools xtrans-dev

The following packages will be upgraded:

libx11-6

1 upgraded, 22 newly installed, 0 to remove and 344 not upgraded.

1 not fully installed or removed.

Need to get 41.8 MB/42.3 MB of archives.

After this operation, 165 MB of additional disk space will be used.

Do you want to continue? [Y/n] y

Get:1 http://us.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 openjdk-8-jre-headless amd64 8u181-b13-1ubuntu0.18.04.1 [27.3 MB]

Get:1 http://us.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 openjdk-8-jre-headless amd64 8u181-b13-1ubuntu0.18.04.1 [27.3 MB]

Get:2 http://us.archive.ubuntu.com/ubuntu bionic-updates/main amd64 ca-certificates-java all 20180516ubuntu1~18.04.1 [12.2 kB]

Get:3 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 fonts-dejavu-extra all 2.37-1 [1,953 kB]

Get:4 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 libatk-wrapper-java all 0.33.3-20ubuntu0.1 [34.7 kB]

Get:5 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 libatk-wrapper-java-jni amd64 0.33.3-20ubuntu0.1 [28.3 kB]

Get:6 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 libgif7 amd64 5.1.4-2 [30.6 kB]

Get:7 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 xorg-sgml-doctools all 1:1.11-1 [12.9 kB]

Get:8 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 x11proto-dev all 2018.4-4 [251 kB]

Get:9 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 x11proto-core-dev all 2018.4-4 [2,620 B]

Get:10 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 libice-dev amd64 2:1.0.9-2 [46.8 kB]

Get:11 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 libpthread-stubs0-dev amd64 0.3-4 [4,068 B]

Get:12 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 libsm-dev amd64 2:1.2.2-1 [16.2 kB]

Get:13 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 libxau-dev amd64 1:1.0.8-1 [11.1 kB]

Get:14 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 libxdmcp-dev amd64 1:1.1.2-3 [25.1 kB]

Get:15 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 xtrans-dev all 1.3.5-1 [70.5 kB]

Get:16 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 libxcb1-dev amd64 1.13-1 [80.0 kB]

Get:17 http://us.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libx11-dev amd64 2:1.6.4-3ubuntu0.1 [641 kB]

Get:18 http://us.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libx11-doc all 2:1.6.4-3ubuntu0.1 [2,065 kB]

Get:19 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 libxt-dev amd64 1:1.1.5-1 [395 kB]

Get:20 http://us.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 openjdk-8-jre amd64 8u181-b13-1ubuntu0.18.04.1 [69.7 kB]

Get:21 http://us.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 openjdk-8-jdk-headless amd64 8u181-b13-1ubuntu0.18.04.1 [8,248 kB]

Ign:21 http://us.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 openjdk-8-jdk-headless amd64 8u181-b13-1ubuntu0.18.04.1

Get:22 http://us.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 openjdk-8-jdk amd64 8u181-b13-1ubuntu0.18.04.1 [458 kB]

Get:21 http://security.ubuntu.com/ubuntu bionic-updates/universe amd64 openjdk-8-jdk-headless amd64 8u181-b13-1ubuntu0.18.04.1 [8,248 kB]

Fetched 6,273 kB in 1min 54s (54.9 kB/s)

(Reading database … 172315 files and directories currently installed.)

Preparing to unpack …/00-libx11-6_2%3a1.6.4-3ubuntu0.1_amd64.deb …

Unpacking libx11-6:amd64 (2:1.6.4-3ubuntu0.1) over (2:1.6.4-3) …

Selecting previously unselected package openjdk-8-jre-headless:amd64.

Preparing to unpack …/01-openjdk-8-jre-headless_8u181-b13-1ubuntu0.18.04.1_amd64.deb …

Unpacking openjdk-8-jre-headless:amd64 (8u181-b13-1ubuntu0.18.04.1) …

Selecting previously unselected package ca-certificates-java.

Preparing to unpack …/02-ca-certificates-java_20180516ubuntu1~18.04.1_all.deb …

Unpacking ca-certificates-java (20180516ubuntu1~18.04.1) …

Selecting previously unselected package fonts-dejavu-extra.

Preparing to unpack …/03-fonts-dejavu-extra_2.37-1_all.deb …

Unpacking fonts-dejavu-extra (2.37-1) …

Selecting previously unselected package libatk-wrapper-java.

Preparing to unpack …/04-libatk-wrapper-java_0.33.3-20ubuntu0.1_all.deb …

Unpacking libatk-wrapper-java (0.33.3-20ubuntu0.1) …

Selecting previously unselected package libatk-wrapper-java-jni:amd64.

Preparing to unpack …/05-libatk-wrapper-java-jni_0.33.3-20ubuntu0.1_amd64.deb …

Unpacking libatk-wrapper-java-jni:amd64 (0.33.3-20ubuntu0.1) …

Selecting previously unselected package libgif7:amd64.

Preparing to unpack …/06-libgif7_5.1.4-2_amd64.deb …

Unpacking libgif7:amd64 (5.1.4-2) …

Selecting previously unselected package xorg-sgml-doctools.

Preparing to unpack …/07-xorg-sgml-doctools_1%3a1.11-1_all.deb …

Unpacking xorg-sgml-doctools (1:1.11-1) …

Selecting previously unselected package x11proto-dev.

Preparing to unpack …/08-x11proto-dev_2018.4-4_all.deb …

Unpacking x11proto-dev (2018.4-4) …

Selecting previously unselected package x11proto-core-dev.

Preparing to unpack …/09-x11proto-core-dev_2018.4-4_all.deb …

Unpacking x11proto-core-dev (2018.4-4) …

Selecting previously unselected package libice-dev:amd64.

Preparing to unpack …/10-libice-dev_2%3a1.0.9-2_amd64.deb …

Unpacking libice-dev:amd64 (2:1.0.9-2) …

Selecting previously unselected package libpthread-stubs0-dev:amd64.

Preparing to unpack …/11-libpthread-stubs0-dev_0.3-4_amd64.deb …

Unpacking libpthread-stubs0-dev:amd64 (0.3-4) …

Selecting previously unselected package libsm-dev:amd64.

Preparing to unpack …/12-libsm-dev_2%3a1.2.2-1_amd64.deb …

Unpacking libsm-dev:amd64 (2:1.2.2-1) …

Selecting previously unselected package libxau-dev:amd64.

Preparing to unpack …/13-libxau-dev_1%3a1.0.8-1_amd64.deb …

Unpacking libxau-dev:amd64 (1:1.0.8-1) …

Selecting previously unselected package libxdmcp-dev:amd64.

Preparing to unpack …/14-libxdmcp-dev_1%3a1.1.2-3_amd64.deb …

Unpacking libxdmcp-dev:amd64 (1:1.1.2-3) …

Selecting previously unselected package xtrans-dev.

Preparing to unpack …/15-xtrans-dev_1.3.5-1_all.deb …

Unpacking xtrans-dev (1.3.5-1) …

Selecting previously unselected package libxcb1-dev:amd64.

Preparing to unpack …/16-libxcb1-dev_1.13-1_amd64.deb …

Unpacking libxcb1-dev:amd64 (1.13-1) …

Selecting previously unselected package libx11-dev:amd64.

Preparing to unpack …/17-libx11-dev_2%3a1.6.4-3ubuntu0.1_amd64.deb …

Unpacking libx11-dev:amd64 (2:1.6.4-3ubuntu0.1) …

Selecting previously unselected package libx11-doc.

Preparing to unpack …/18-libx11-doc_2%3a1.6.4-3ubuntu0.1_all.deb …

Unpacking libx11-doc (2:1.6.4-3ubuntu0.1) …

Selecting previously unselected package libxt-dev:amd64.

Preparing to unpack …/19-libxt-dev_1%3a1.1.5-1_amd64.deb …

Unpacking libxt-dev:amd64 (1:1.1.5-1) …

Selecting previously unselected package openjdk-8-jre:amd64.

Preparing to unpack …/20-openjdk-8-jre_8u181-b13-1ubuntu0.18.04.1_amd64.deb …

Unpacking openjdk-8-jre:amd64 (8u181-b13-1ubuntu0.18.04.1) …

Selecting previously unselected package openjdk-8-jdk-headless:amd64.

Preparing to unpack …/21-openjdk-8-jdk-headless_8u181-b13-1ubuntu0.18.04.1_amd64.deb …

Unpacking openjdk-8-jdk-headless:amd64 (8u181-b13-1ubuntu0.18.04.1) …

Selecting previously unselected package openjdk-8-jdk:amd64.

Preparing to unpack …/22-openjdk-8-jdk_8u181-b13-1ubuntu0.18.04.1_amd64.deb …

Unpacking openjdk-8-jdk:amd64 (8u181-b13-1ubuntu0.18.04.1) …

Setting up nginx-extras (1.14.0-0ubuntu1) …

Job for nginx.service failed because the control process exited with error code.

See “systemctl status nginx.service” and “journalctl -xe” for details.

invoke-rc.d: initscript nginx, action “start” failed.

  • nginx.service – A high performance web server and a reverse proxy server

Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)

Active: failed (Result: exit-code) since Thu 2018-11-01 05:06:40 PDT; 220ms ago

Docs: man:nginx(8)

Process: 14329 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAILURE)

Process: 14319 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)

 

Nov 01 05:06:38 ubuntu nginx[14329]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

Nov 01 05:06:38 ubuntu nginx[14329]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)

Nov 01 05:06:39 ubuntu nginx[14329]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

Nov 01 05:06:39 ubuntu nginx[14329]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)

Nov 01 05:06:39 ubuntu nginx[14329]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

Nov 01 05:06:39 ubuntu nginx[14329]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)

Nov 01 05:06:40 ubuntu nginx[14329]: nginx: [emerg] still could not bind()

Nov 01 05:06:40 ubuntu systemd[1]: nginx.service: Control process exited, code=exited status=1

Nov 01 05:06:40 ubuntu systemd[1]: nginx.service: Failed with result ‘exit-code’.

Nov 01 05:06:40 ubuntu systemd[1]: Failed to start A high performance web server and a reverse proxy server.

dpkg: error processing package nginx-extras (–configure):

installed nginx-extras package post-installation script subprocess returned error exit status 1

Setting up ca-certificates-java (20180516ubuntu1~18.04.1) …

head: cannot open ‘/etc/ssl/certs/java/cacerts’ for reading: No such file or directory

Adding debian:COMODO_ECC_Certification_Authority.pem

Adding debian:AffirmTrust_Premium_ECC.pem

Adding debian:Certinomis_-_Root_CA.pem

Adding debian:SSL.com_Root_Certification_Authority_ECC.pem

Adding debian:AffirmTrust_Premium.pem

Adding debian:Entrust_Root_Certification_Authority_-_G2.pem

Adding debian:GeoTrust_Primary_Certification_Authority_-_G2.pem

Adding debian:GlobalSign_Root_CA.pem

Adding debian:OpenTrust_Root_CA_G3.pem

Adding debian:USERTrust_RSA_Certification_Authority.pem

Adding debian:thawte_Primary_Root_CA_-_G3.pem

Adding debian:ssl-cert-snakeoil.pem

Adding debian:Baltimore_CyberTrust_Root.pem

Adding debian:Certplus_Root_CA_G2.pem

Adding debian:Staat_der_Nederlanden_Root_CA_-_G2.pem

Adding debian:T-TeleSec_GlobalRoot_Class_3.pem

Adding debian:Entrust_Root_Certification_Authority_-_EC1.pem

Adding debian:EE_Certification_Centre_Root_CA.pem

Adding debian:Verisign_Class_3_Public_Primary_Certification_Authority_-_G3.pem

Adding debian:DigiCert_Global_Root_CA.pem

Adding debian:GlobalSign_ECC_Root_CA_-_R5.pem

Adding debian:NetLock_Arany_=Class_Gold=_Főtanúsítvány.pem

Adding debian:Network_Solutions_Certificate_Authority.pem

Adding debian:Buypass_Class_2_Root_CA.pem

Adding debian:VeriSign_Class_3_Public_Primary_Certification_Authority_-_G4.pem

Adding debian:DST_Root_CA_X3.pem

Adding debian:Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem

Adding debian:Certplus_Class_2_Primary_CA.pem

Adding debian:Trustis_FPS_Root_CA.pem

Adding debian:OpenTrust_Root_CA_G1.pem

Adding debian:Taiwan_GRCA.pem

Adding debian:AC_RAIZ_FNMT-RCM.pem

Adding debian:TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem

Adding debian:AffirmTrust_Commercial.pem

Adding debian:QuoVadis_Root_CA_3.pem

Adding debian:SSL.com_EV_Root_Certification_Authority_RSA_R2.pem

Adding debian:DigiCert_Global_Root_G3.pem

Adding debian:QuoVadis_Root_CA_1_G3.pem

Adding debian:thawte_Primary_Root_CA.pem

Adding debian:thawte_Primary_Root_CA_-_G2.pem

Adding debian:CA_Disig_Root_R2.pem

Adding debian:Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem

Adding debian:Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem

Adding debian:Certum_Trusted_Network_CA.pem

Adding debian:SSL.com_EV_Root_Certification_Authority_ECC.pem

Adding debian:Chambers_of_Commerce_Root_-_2008.pem

Adding debian:certSIGN_ROOT_CA.pem

Adding debian:Hongkong_Post_Root_CA_1.pem

Adding debian:DigiCert_Assured_ID_Root_G2.pem

Adding debian:GlobalSign_Root_CA_-_R3.pem

Adding debian:AddTrust_External_Root.pem

Adding debian:QuoVadis_Root_CA_2_G3.pem

Adding debian:DigiCert_Trusted_Root_G4.pem

Adding debian:Staat_der_Nederlanden_EV_Root_CA.pem

Adding debian:COMODO_Certification_Authority.pem

Adding debian:Global_Chambersign_Root_-_2008.pem

Adding debian:VeriSign_Class_3_Public_Primary_Certification_Authority_-_G5.pem

Adding debian:OISTE_WISeKey_Global_Root_GA_CA.pem

Adding debian:Actalis_Authentication_Root_CA.pem

Adding debian:Entrust_Root_Certification_Authority.pem

Adding debian:GlobalSign_Root_CA_-_R2.pem

Adding debian:ACCVRAIZ1.pem

Adding debian:Certplus_Root_CA_G1.pem

Adding debian:Starfield_Root_Certificate_Authority_-_G2.pem

Adding debian:Buypass_Class_3_Root_CA.pem

Adding debian:Izenpe.com.pem

Adding debian:OISTE_WISeKey_Global_Root_GB_CA.pem

Adding debian:GeoTrust_Universal_CA.pem

Adding debian:QuoVadis_Root_CA.pem

Adding debian:TeliaSonera_Root_CA_v1.pem

Adding debian:QuoVadis_Root_CA_3_G3.pem

Adding debian:QuoVadis_Root_CA_2.pem

Adding debian:Go_Daddy_Class_2_CA.pem

Adding debian:DigiCert_Global_Root_G2.pem

Adding debian:Starfield_Services_Root_Certificate_Authority_-_G2.pem

Adding debian:Microsec_e-Szigno_Root_CA_2009.pem

Adding debian:SSL.com_Root_Certification_Authority_RSA.pem

Adding debian:GlobalSign_ECC_Root_CA_-_R4.pem

Adding debian:EC-ACC.pem

Adding debian:Cybertrust_Global_Root.pem

Adding debian:DigiCert_Assured_ID_Root_G3.pem

Adding debian:SecureSign_RootCA11.pem

Adding debian:Visa_eCommerce_Root.pem

Adding debian:Atos_TrustedRoot_2011.pem

Adding debian:VeriSign_Universal_Root_Certification_Authority.pem

Adding debian:TÜRKTRUST_Elektronik_Sertifika_Hizmet_Sağlayıcısı_H5.pem

Adding debian:E-Tugra_Certification_Authority.pem

Adding debian:Certigna.pem

Adding debian:Sonera_Class_2_Root_CA.pem

Adding debian:TrustCor_RootCert_CA-2.pem

Adding debian:SwissSign_Silver_CA_-_G2.pem

Adding debian:Certum_Trusted_Network_CA_2.pem

Adding debian:D-TRUST_Root_Class_3_CA_2_EV_2009.pem

Adding debian:CFCA_EV_ROOT.pem

Adding debian:AffirmTrust_Networking.pem

Adding debian:T-TeleSec_GlobalRoot_Class_2.pem

Adding debian:IdenTrust_Public_Sector_Root_CA_1.pem

Adding debian:IdenTrust_Commercial_Root_CA_1.pem

Adding debian:TrustCor_RootCert_CA-1.pem

Adding debian:Comodo_AAA_Services_root.pem

Adding debian:Amazon_Root_CA_3.pem

Adding debian:GeoTrust_Universal_CA_2.pem

Adding debian:Security_Communication_RootCA2.pem

Adding debian:GeoTrust_Global_CA.pem

Adding debian:Deutsche_Telekom_Root_CA_2.pem

Adding debian:OpenTrust_Root_CA_G2.pem

Adding debian:GDCA_TrustAUTH_R5_ROOT.pem

Adding debian:USERTrust_ECC_Certification_Authority.pem

Adding debian:SecureTrust_CA.pem

Adding debian:D-TRUST_Root_Class_3_CA_2_2009.pem

Adding debian:TrustCor_ECA-1.pem

Adding debian:SZAFIR_ROOT_CA2.pem

Adding debian:Secure_Global_CA.pem

Adding debian:DigiCert_High_Assurance_EV_Root_CA.pem

Adding debian:ePKI_Root_Certification_Authority.pem

Adding debian:GeoTrust_Primary_Certification_Authority.pem

Adding debian:Entrust.net_Premium_2048_Secure_Server_CA.pem

Adding debian:Staat_der_Nederlanden_Root_CA_-_G3.pem

Adding debian:ISRG_Root_X1.pem

Adding debian:Security_Communication_Root_CA.pem

Adding debian:SwissSign_Gold_CA_-_G2.pem

Adding debian:COMODO_RSA_Certification_Authority.pem

Adding debian:Amazon_Root_CA_4.pem

Adding debian:TWCA_Global_Root_CA.pem

Adding debian:Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem

Adding debian:LuxTrust_Global_Root_2.pem

Adding debian:TWCA_Root_Certification_Authority.pem

Adding debian:Amazon_Root_CA_2.pem

Adding debian:Go_Daddy_Root_Certificate_Authority_-_G2.pem

Adding debian:DigiCert_Assured_ID_Root_CA.pem

Adding debian:XRamp_Global_CA_Root.pem

Adding debian:GeoTrust_Primary_Certification_Authority_-_G3.pem

Adding debian:Starfield_Class_2_CA.pem

Adding debian:Amazon_Root_CA_1.pem

done.

Processing triggers for mime-support (3.60ubuntu1) …

Processing triggers for desktop-file-utils (0.23-1ubuntu3.18.04.1) …

Setting up libpthread-stubs0-dev:amd64 (0.3-4) …

Setting up xorg-sgml-doctools (1:1.11-1) …

Setting up libx11-6:amd64 (2:1.6.4-3ubuntu0.1) …

Setting up libgif7:amd64 (5.1.4-2) …

Setting up x11proto-dev (2018.4-4) …

Setting up xtrans-dev (1.3.5-1) …

Setting up libxdmcp-dev:amd64 (1:1.1.2-3) …

Processing triggers for libc-bin (2.27-3ubuntu1) …

Setting up libice-dev:amd64 (2:1.0.9-2) …

Setting up libx11-doc (2:1.6.4-3ubuntu0.1) …

Processing triggers for man-db (2.8.3-2) …

Processing triggers for gnome-menus (3.13.3-11ubuntu1) …

Setting up fonts-dejavu-extra (2.37-1) …

Processing triggers for ca-certificates (20180409) …

Updating certificates in /etc/ssl/certs…

0 added, 0 removed; done.

Running hooks in /etc/ca-certificates/update.d…

 

done.

done.

Setting up libatk-wrapper-java (0.33.3-20ubuntu0.1) …

Processing triggers for hicolor-icon-theme (0.17-2) …

Processing triggers for fontconfig (2.12.6-0ubuntu2) …

Setting up openjdk-8-jre-headless:amd64 (8u181-b13-1ubuntu0.18.04.1) …

Setting up libsm-dev:amd64 (2:1.2.2-1) …

Setting up x11proto-core-dev (2018.4-4) …

Setting up openjdk-8-jdk-headless:amd64 (8u181-b13-1ubuntu0.18.04.1) …

Setting up libxau-dev:amd64 (1:1.0.8-1) …

Setting up libatk-wrapper-java-jni:amd64 (0.33.3-20ubuntu0.1) …

Setting up libxcb1-dev:amd64 (1.13-1) …

Setting up libx11-dev:amd64 (2:1.6.4-3ubuntu0.1) …

Setting up libxt-dev:amd64 (1:1.1.5-1) …

Setting up openjdk-8-jre:amd64 (8u181-b13-1ubuntu0.18.04.1) …

Setting up openjdk-8-jdk:amd64 (8u181-b13-1ubuntu0.18.04.1) …

Processing triggers for libc-bin (2.27-3ubuntu1) …

Errors were encountered while processing:

nginx-extras

 

E: Sub-process /usr/bin/dpkg returned an error code (1)

vskumar@ubuntu:~$

vskumar@ubuntu:~$ java -version

java version “1.8.0_171”

Java(TM) SE Runtime Environment (build 1.8.0_171-b11)

Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

vskumar@ubuntu:~$

 

==== End of Output =====>

 

 

 

=== Output for downloading gradle ====>

vskumar@ubuntu:~$ wget https://services.gradle.org/distributions/gradle-4.10.2-bin.zip -P /tmp

–2018-11-01 05:14:35–  https://services.gradle.org/distributions/gradle-4.10.2-bin.zip

Resolving services.gradle.org (services.gradle.org)… 104.16.174.166, 104.16.172.166, 104.16.175.166, …

Connecting to services.gradle.org (services.gradle.org)|104.16.174.166|:443… connected.

HTTP request sent, awaiting response… 301 Moved Permanently

Location: https://downloads.gradle.org/distributions/gradle-4.10.2-bin.zip [following]

–2018-11-01 05:14:35–  https://downloads.gradle.org/distributions/gradle-4.10.2-bin.zip

Resolving downloads.gradle.org (downloads.gradle.org)… 104.16.175.166, 104.16.173.166, 104.16.171.166, …

Connecting to downloads.gradle.org (downloads.gradle.org)|104.16.175.166|:443… connected.

HTTP request sent, awaiting response… 200 OK

Length: 78420037 (75M) [application/zip]

Saving to: ‘/tmp/gradle-4.10.2-bin.zip’

 

gradle-4.10.2-bin.z 100%[==================>]  74.79M  1.83MB/s    in 47s

 

2018-11-01 05:15:22 (1.60 MB/s) – ‘/tmp/gradle-4.10.2-bin.zip’ saved [78420037/78420037]

 

vskumar@ubuntu:~$

=== End of output =============>

 

=== Gradle Files verification ===>

vskumar@ubuntu:~$ ls /opt/gradle/gradle-4.10.2

bin  getting-started.html  init.d  lib  LICENSE  media  NOTICE

vskumar@ubuntu:~$

==========================>

 

=== Output for shell config file creation =====>

skumar@ubuntu:~$ sudo vim /etc/profile.d/gradle.sh

vskumar@ubuntu:~$ cat  vim /etc/profile.d/gradle.sh

cat: vim: No such file or directory

export GRADLE_HOME=/opt/gradle/gradle-4.10.2

export PATH=${GRADLE_HOME}/bin:${PATH}

vskumar@ubuntu:~$

=========== End of file content display ====>

 

=== Output for version checking ====>

vskumar@ubuntu:~$ source /etc/profile.d/gradle.sh

vskumar@ubuntu:~$ gradle -v

 

Welcome to Gradle 4.10.2!

 

Here are the highlights of this release:

– Incremental Java compilation by default

– Periodic Gradle caches cleanup

– Gradle Kotlin DSL 1.0-RC6

– Nested included builds

– SNAPSHOT plugin versions in the `plugins {}` block

 

For more details see https://docs.gradle.org/4.10.2/release-notes.html

 

 

————————————————————

Gradle 4.10.2

————————————————————

 

Build time:   2018-09-19 18:10:15 UTC

Revision:     b4d8d5d170bb4ba516e88d7fe5647e2323d791dd

 

Kotlin DSL:   1.0-rc-6

Kotlin:       1.2.61

Groovy:       2.4.15

Ant:          Apache Ant(TM) version 1.9.11 compiled on March 23 2018

JVM:          1.8.0_171 (Oracle Corporation 25.171-b11)

OS:           Linux 4.15.0-29-generic amd64

 

vskumar@ubuntu:~$

========================>

==== End of Lab exercise output  ===========>

Good luck!!
Thanks for visiting this blog/video……. bye for now…

 

DevOps Practices coaching

Coaching on DevOps Practices —–>

This coaching is meant for DevOps Managers and above positions only…

  1. Please walk-through the below chart for your DevOps practices implementation. These are nowhere connected with any specific DevOps tools. Just practices implementation only to show your velocity in DevOps complianced projects execution.  
  2. These are the best practices used by the DevOps successful implementation organizations.
  3. Who need to learn these?: If you are already working as DevOps professional, [Ex: DevOps engineer, Practitioner, Architect, Practice head, Related to DevOps implementation, etc.] and your organization is demanding/targeted to demonstrate its [DevOps implementation] velocity then you need to accelerate your speed in catching up the knowledge on several areas for  continuous improvements.
  4. Note; you also need to apply continuous learning or seek coaching to speedup your productivity through experienced professionals.

Visit for free concepts learning:

To join DevOps Practices group visit  [CONDITIONS APPLY]:

https://www.facebook.com/groups/1911594275816833/about/

To join Cloud Practices group visit [CONDITIONS APPLY]:

https://www.facebook.com/groups/585147288612549/about/

DevOps Patterns

Note:

Please note this course doesn’t contain Tools. Only Practices.

There is a separate topic “DevOps Automation”, you need to attend it.

If you are qualified you can join the below group also.

https://vskumar.blog/2018/10/17/join-devops-practices-group-on-fb/

If you are  new for DevOps, visit:

https://vskumar.blog/2017/10/22/why-the-devops-practice-is-mandatory-for-an-it-employee/

You can also visit:

https://vskumar.blog/2019/07/24/devops-advanced-devops-practices-processes-1/

Join DevOps Practices group on Facebook for solutions

FB-DevOps-Practices Group-page

I also run  a Facebook group named as “DevOps Practices group” along with a Whatsapp group. You can send a request to me to add you, if your role is relevant as per the description given on that FB page. [https://www.facebook.com/groups/1911594275816833/about/]

If you are really involved in implementing the DevOps practices the discussion points will certainly help you to move forward with expected velocity.

I invite all of my blog readers to self filter yourself as per the eligibility while sending a request to me. Thanks.

If you are new for DevOps, visit:

https://vskumar.blog/2017/10/22/why-the-devops-practice-is-mandatory-for-an-it-employee/

 

33. DevOps:Kubernetes: How to do Minikube Installation on Ubuntu VM

This is a recorded video for Minikube installation in Ubuntu VM.

If you are using Ubuntu VM on VMWARE or Oracle Virtual Box or any other VM software, then only this exercise is useful to practice for Kubectl installation with Minikube.

Please note Minikube is a CE edition of Kubernetes.

You can look for detailed docs at: https://kubernetes.io

 

32. DevOps: Ubuntu 18.04: Installing git and usage of CodeCommit with a code migration POC

From this blog, you will learn the following:

  1. How to Install git into Ubuntu 18.04  VM ?
  2. How to practice the git commands through the past blog ?
  3. What is VCS and Git, the differences ?
  4. What is AWS CodeCommit ?
  5. How a POC can be done for a code migration into AWS CodeCommit from GitHUb ? [From series of videos/past sessions].

This video demonstrates the installation of Git on Ubuntu 18.04 LTS Bionic Beaver.

https://www.facebook.com/MicroServices-and-Docker-328906801086961/

To work with Git basic commands, I wrote the below blog, you can use for your practice.

https://vskumar.blog/2018/03/03/17-devops-working-with-git-on-ubuntu-16-04-vm/

The following are the sessions for VCS/GITHUB and CodeCommit:

If you are keen practicing Mock interviews for a Job Description, Please read the below blog to contact:

Mock interview practice – Contact for AWS/DevOps/SRE roles [not for Proxy!!] – for original profile only

19. DevOps:How to upload your docker image to your dockerhub account ?

Docker-logo

How to upload your docker image to your dockerhub account from Ubuntu  ?

In my previous session, we have created the MySQL docker image.

Now let us assume, we need to move into a private registry of dockerhub to save it.

In this exercise we will see:
1. How to use dockerid and tag the image ?
2. How to list the images with dockerid ?
3. How to login to dockerhub with your id ?
4. How to upload your docker image to your docker account and registry ?

Pre-requisites: You need to have your dockerid from https://hub.docker.com/

======>Current mysql images====>
vskumar@ubuntu:~$ sudo docker image ls mysql*
[sudo] password for vskumar:
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest 5d4d51c57ea8 5 weeks ago 374MB
vskumar@ubuntu:~$
==================>

1. How to use dockerid and tag the image ?

My docker id is: vskumardocker
== Using docker id into local variable====>
vskumar@ubuntu:~$
vskumar@ubuntu:~$ export DOCKERID=vskumardocker
vskumar@ubuntu:~$ echo $DOCKERID
vskumardocker
vskumar@ubuntu:~$
==================>

= Tagging with dockerid ====>
vskumar@ubuntu:~$ sudo docker image build –tag $DOCKERID/mysql .
ERRO[0301] Can’t add file /home/vskumar/.gnupg/S.gpg-agent to tar: archive/tar: sockets not supported
ERRO[0324] Can’t add file /home/vskumar/.local/share/ubuntu-amazon-default/ubuntu-amazon-default/SingletonSocket to tar: archive/tar: sockets not supported
Sending build context to Docker daemon 808MB
Step 1/2 : FROM mysql
—> 5d4d51c57ea8
Step 2/2 : CMD [“echo”, “This is Mysql done by vskumar for a lab practice of dockerfile”]
—> Using cache
—> 659477c48f0a
Successfully built 659477c48f0a
Successfully tagged vskumardocker/mysql:latest
vskumar@ubuntu:~$
== Tagged mysql image =======>

=== Let us check it ===>
vskumar@ubuntu:~$ sudo docker image ls |more
REPOSITORY TAG IMAGE ID CREATED SIZE
vskumardocker/mysql latest 659477c48f0a 4 weeks ago 374MB
mysql latest 5d4d51c57ea8 5 weeks ago 374MB
== Newly tagged image is there ====>

2. How to list the images with dockerid ?

You can also list the images with dockerid assigned as below:

= How to list the images with dockerid? ====>
vskumar@ubuntu:~$ sudo docker image ls -f reference=”$DOCKERID/*”
REPOSITORY TAG IMAGE ID CREATED SIZE
vskumardocker/mysql latest 659477c48f0a 4 weeks ago 374MB
vskumar@ubuntu:~$
=======>

3. How to login to dockerhub with your id ?

=== Login to dockerhub====>
vskumar@ubuntu:~$ sudo docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don’t have a Docker ID, head over to https://hub.docker.com to create one.
Username: vskumardocker
Password:
Login Succeeded
vskumar@ubuntu:~$
============>

4. How to upload your docker image to your docker account and registry ?

Now, let us use docker push command to push the image to dockerhub:

=== Pushing the image to dockerhub account registry ===>
vskumar@ubuntu:~$ sudo docker image push $DOCKERID/mysql:latest
The push refers to repository [docker.io/vskumardocker/mysql]
12ea28f10d69: Mounted from library/mysql
400836ab4664: Mounted from library/mysql
17d36ba94219: Mounted from library/mysql
d7758e0ab2b0: Mounted from library/mysql
921bf5c178ac: Mounted from library/mysql
3cf1630a511d: Mounted from library/mysql
b80c494a1fdc: Mounted from library/mysql
7b2001677ac9: Mounted from library/mysql
8b452d78b126: Mounted from library/mysql
292c1ee413d0: Mounted from library/mysql
014cf8bfcb2d: Mounted from library/mysql
latest: digest: sha256:09ebaab0035b1955a83646ea41f43a2cd870c934a2255da090918ff7ad37dd0f size: 2621
vskumar@ubuntu:~$
==Note, repository name, TAG should be there correctly ===>

Now, we can see this image on the web page of the docker account:
===== pushed Image onto dockerhub web page ====>
I found the image on the web page with the below name:
vskumardocker/mysql
public
=====================>

 

 

 

20. DevOps:How to Install docker for Windows 10 and use for containers creation ?

How to Install docker for Windows 10 and use for containers creation ?:

Docker-logo

 In this blog,  I have shown the steps for  docker installation on Windows10 OS.

To install the docker for windows 10 OS, you need to download the docker-install.exe from the below url:

https://github.com/boot2docker/windows-installer/releases/tag/v1.8.0

 I have copied all the screens below, while doing my installation.  

You can follow the same.

Docker-Win10-install-screens.jpg

Check on your desktop for boot2docker icon.

You can also install docker toolbox as below:

Dockertoolbox-steps.jpg

Now, go to your Boot2Dcoker icon on your desktop.

Double Click on it.

In the following screens you can see with its start process.

Start-Bootdocker-screens.jpg

You can use the below blogs for containers creation.

4. DevOps: How to create and work with Docker Containers

5. DevOps: How to work with Docker Images

13. DevOps: Working with dockerfile to build apache2 container

Advt-course3rd page.png
Folks! Greetings!

Are you interested to transform into new technology ?

An IT employee need to learn DevOps and also one cloud technology practice which is mandatory to understand the current DevOps work culture to get accommodated into a project.
Visit for my course exercises/sample videos/blogs on youtube channel and the blog site mentioned in VCard.
I get many new users regularly  to use these content from different countries.
That itself denotes they are highly competitive techie stuff.
During the course you will be given cloud infra machine(s) [they will be your property] into your laptop for future self practice for interviews, R&D, etc.
The critical  topics will have supporting blogs/videos!! along with the pdf material.
In a corporate style training cos you will be given access [upto certain period] only to their cloud setup.
These are the USPs can be compared with other courses!
Please come with joining confirmation/determination.
For classroom sessions it will be in Vijayanagar, Bangalore, India.
Both online and classroom are available for weekend [global flexible timings] and weekdays to facilitate employees.
Corporate companies are welcome to avail it to save cost of your suppliers!!
You can join from any country for online course.
For contacts please go through vCard. Please send E-mail on your willingness.
Looking forward for your learning call/e-mail!
Look into this video also:
Visit For Aws Lab demo:
WATCH STUDENT FEEDBACK ON AWS:

 

 

Visit some more videos:
Visit:

How to change your linux virtual  machines hostname and connect with ssh?

How to change your linux virtual  machines hostname and connect with ssh?

In this blog/video, I would like to demonstrate
the following by connecting hostnames with ssh:

Sometimes, we need to have hostnames differently.
When you use deployments using Ansible, etc. SCM tools
we can connect to the hostnames directly.
Now let us analyze and use the exercise as below:

By default we can find the hostname with;
$ ls -l /proc/sys/kernel/hostname
$ cat /proc/sys/kernel/hostname

We can also look into the details by using;
$hostnamectl

To change the new name use;
$hostnamectl set-hostname ‘ans-dbserver’
Step1: Checking the current  hostname.

Step2: Checking the host details in hostnamectl.

Step3: Changing the hostname.

Step4: Looking for new host details.

Step5: Reboot the machine and check its
connection with new hostname.

Step6: Now, let us try to connect to other machines
with ssh connectivity.

Step7: Making sure the renamed machine host is
being accessed by other machines also through ping.

Step8: Install openssh-server to connect through ssh in the newly named machine.

Step9: Connect through ssh from master machine to current hosts.

The attached video has the demonstration for all the above steps on Linux Virtual machines. Proved with a connectivity through ssh.

For SSH configuration please visit my blog, it has the demonstrated video also:

https://vskumar.blog/2018/05/26/27-devopsworking-with-ssh-for-ansible-usage/

 

https://tlk.io/a19e74

 

 

 

 

1. AWS:How to create and activate a new account in AWS ?

AWS Account-creation scrn

How to create and activate a new account in AWS ?:

In this blog, you will see the required steps for creating and activating your new AWS account. Once have the activated account, you can start your other lab practices as I discuss in the class timely.

The following are the main 4 steps process we need to follow:

STEP1: Creating your account. It consists of 2 steps: a) Providing a valid e-mail address and choosing a password. b) Providing your contact information and setting your preferences.

STEP2: Add a payment method Please note; you need to have a valid CC to give its details. Amazon verifies its transaction also with a tiny charge and with a credit back. If by mistaken given wrong data please note; your account registration process will not be activated. You will be intimated by mail. This way Amazon is authenticating/authorizing us for AWS usage.

STEP3: Verify your phone number. You need to Provide a phone number where you can be reached in next few minutes, while creating your account.

STEP4: Choose the AWS Support plans. Time to time the AWS plans will be published. You need to choose the plan from the currently available plans for your needs. The relevant URL is given in the detailed steps section in this blog.

As a consolidated process, we can understand from the below flow chart. Which is from the collection of AWS process charts.

AWS Account-creation flowchart

Note:

I am not copying the screens due to privacy.

Detailed steps

STEP1: Detailed steps for Creating your account.

a). You need to go to Amazon Web Services home page URL: https://aws.amazon.com/

b). Now, Choose Sign Up. Click on Create an AWS account. You can see new page with Create an AWS account. You need to enter the required details. E-mail id, Pwd, AWS Account name [you can give any name for this]. And choose continue to go to next page. Please note; The above steps are valid for the new users of AWS. If you enter your email address entered incorrectly, you might not be able to access your account or change your password in the future. So you need to be careful on your data entry part. Let us assume; if you’ve signed in to AWS recently, it might say Sign In to the Console. So you need to login into your existing Account.

c). Now in the current page, choose Professional or personal. These two areas will give equal services. Depends on your need You can choose one of the options.

d). From the above options choosed, type the requested company or personal information entries. Note; At this point, You need to go through the AWS Customer Agreement to know their policies and procedures to follow while operating.

e). Finally, you choose Create Account and Continue options in the bottom.

f). Please note; at this point you will receive an e-mail to confirm that your account is created. Now, you can sign in to your new account using the valid email address and valid password you have supplied earlier.

Please note; we have done the Step1 only, the activation process is not yet completed to use the AWS services. Still we need to follow 3 more steps.

STEP2: Add a payment method- Detailed steps:

At this point; On the Payment Information page,

a) Choose the payment method as per the payment gateway standards which is displayed.

b) Type the requested information associated with your payment method. Please make sure the address for your payment method is the same as the address you provided for your account. Note; If your billing address is different; then choose Use a new address, type the billing address for your payment method.

c) Now, choose Secure Submit.

STEP3: Verify your phone number.

Please keep a valid and handy phone number at this point.

a) On this Phone Verification page, type a phone number where can use to accept incoming phone calls.

b) Enter the code displayed in the captcha. When you’re ready to receive a call, choose Call me now option.

c) In a few moments, an automated system will call you to your given phone number. Even it might have SMS feature also, if you are outside North America region.

d) Type the provided PIN on your phone’s keypad of the AWS screen. e) After the process is complete, choose Continue.

STEP4: Choose the AWS Support plans.

a) At this point please visit the below URL: https://aws.amazon.com/premiumsupport/features/

You can select the AWS support plans from the given list.

b) After your selection of a Support plan, a confirmation page denotes that your account is being activated.

c) Please note; Accounts are usually activated within a few minutes, but the process might take up to 24 hours. This process includes the validation of Bank/CC account given there.

d) Hence keep looking for a mail on this subject from Amazon to start your AWS services usage.

Assuming everything went well, and your AWS account is activated now.  Congratulations!

We can look into next lab with reference to the class session.

2. AWS: WordPress[WP] infrastructure creation using a free tier account

https://wordpress.com/post/vskumar.blog/2884

 

If you are interested to learn Virtualization with Vagrant visit:

1. Vagrant/Virtual Box:How to create Virtual Machine[VM] on Windows 10?:

 

Note:

If you are not a student of my class, and looking for it please contact me by mail with your LinkedIn identity. And send a connection request with a message on your need. You can use the below contacts. Please note; I teach globally.

 

Vcard-Shanthi Kumar V-v3

2. Graph database/Docker: How to install Neo4j on a docker container? [for Ubuntu 18.04 VM]

Neo4j                                                                                                      Docker-logo

I have shown in this blog/video on the “Installing Neo4j DB on a Docker container using Ubuntu 18.04 VM”.

Through this blog and video, I have demonstrated the below functions:

a) How to install docker on an Ubuntu 18.04 VM?

b) How to create the Neo4j container from the image ?

c) How to use the container for neo4j browser ?

d) How to login and operate the options ?

c) Then how to shutdown the neo4j container ?

On all the above steps, a practiced video is made for your lab practice.

This is attached at the end of this blog.

Step1:
Initially, we need to check whether the prerequisite packages are installed.
To check, perform the following:

sudo apt-get -y install apt-transport-https ca-certificates curl

Step2:
Then, add the docker.com keys to our local keyset:

sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –

Step3:
Next, Add the Docker repository to our system (Ubuntu users, I am assuming you have a 64-bit CPU in your VM):

sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable”

Step4:
Now, we need to work on Preparing the filesystem.
As we planned want need to keep track of the logs and be able to reuse our data, we will need to give the
Docker image some access to our filesystem.
In our home folder [~], let’s create a Neo4j folder and two subfolders named logs and data.
This below script will do it on a Linux platform:
cd ~
mkdir neo4j
cd neo4j
mkdir logs
mkdir data

Enter the above steps in a .sh script.

Step5:
How to Run Neo4j in a Docker container ?:
I need to run the below command;

sudo apt install docker.io

Now, we can run the below long command in a Terminal to run Docker with a Neo4j image.

sudo docker run –rm –publish=7474:7474 –publish=7687:7687 –volume=$HOME/neo4j/data:/data \
–volume=$HOME/neo4j/logs:/logs neo4j:3.1.2

This command triggered some downloading because our local Docker repository does not have the
Neo4j image available in its 3.1.2 version yet.

Ports used by Neo4j are 7474, 7473, and 7687, for the protocols http, https, and bolt, respectively .
In the parameters part, you can see–volume twice.
Its use is to link the folder on the local filesystem to the container filesystem.

Step6:
Providing the port numbers given as parameters were not in use,
the Terminal should display something like this:

Remote interface available at : http://localhost:7474

Now, it denotes our Docker container started for Neo4j.

This informs us that Neo4j is expecting us to connect on port 7474 as usual.
So let us fire our browser and browse to the very same
URL we saw earlier, http://localhost:7474, and go graphing!
(Make sure our data will be persisted on disk.)

Step7:
now, How to stop Docker running your image ?

In order to stop Docker , you need to pass not the name (of the image)
but the identifier of the running container (based on the image).

So, in another Terminal, let us type as follows to know the status of containers:
docker ps

This will list all the containers running, in our case, only one.
So we look at the first column, container_id, and use it as a parameter:
docker stop container_id

You can watch the terminal screen.
Docker container stopped as it should be stopped with this command.

For typical installation procedure of neo4j visit my blog:

https://vskumar.blog/2017/12/08/how-to-install-neo4j-3-2-6-graph-database-on-ubuntu/

 

 

Vcard-Shanthi Kumar V-v3

Advt-course3rd page

31. DevOps: Jenkins-How to use Backup/Restore using thinbackup plugin ?

\]jenkins

Through this video I have demonstrated the below steps using Jenkins and its thinkbackup plugin process/usage.

=== Steps used in video ====>

How to take jenkins backup ?
1. You need to configure the thinbackup plugin.
2. Search for that plugin in
Manage Jenkins option.
3. Click on Available tab. It shows the locally
available plugins.
4. Then goto filter and type the plugin name as
thinbackup.
5. Now let us check it. You can see the icon,
it is installed.
6. Once you have this, you can explore it.
7. Please note you also need to configure
Restore.
8. Now, let us configure the backup.
After that we can use backupnow option to
take a backup. It stores on the given path.
So, we should use settings.
9. Now, let us test one backup …
10. Let us check the backup file…
11. Observe the created jobs are there…
12. Now, let me run a build..
13.Created 8th Build.
14. Now let me take the new backup…
15. Now, let me use restore to restore
the past build.
16.See the current build history …
17. I am picking up the 1st it was
made in the beginning…
18. Now, let us verify the jenkins
system jobs/builds.
19. It is overwritten on the existing jobs..
20. Let us delete some jobs and restore
the 8thbuild backup.
21. Let me try to restore the latest backup
which has the 8thbuild …
22. Let us restart the server to use the
latest restore …. Let me pause you …
23. It is ready to login … let us test it..
24. Please Note;
When restored it unzipped and kept the files.
When we restarted the jenkins server
it pickedup those files only.
We can see the 8th build is there.
25. From this exercise and trouble shoot,
we can conclude:
i) We need to use thinbackup plugin to
setup backup/restore process.
ii. Initially we use backup plugin and
later we can setup restore setup after
configuring the backup options.

iii. And when we restore a particular build
we need to restart the jenkins server.
That is all for this exercise..

============================>

 

Advt-course3rd page

30. DevOps: Jenkins 2.9-How to remove and re-Install Jenkins 2.9 for Windows 10 with trial job test ?

jenkins

 

Through this video I have demonstrated the following steps:
1. Removing Jenkins from the Laptop/Desktop of Windows10 OS.
2. Installed it as fresh setup on the same machine of Windows10 OS.
3. Played around with 2 jobs creation through Build now.

Also visit:

15. DevOps: How to setup jenkins 2.9 on Ubuntu-16.04 with jdk8 with a trouble shoot video guidance

16. DevOps: Working with Git on Ubuntu 16.04/18.04 VMs

 

 

29. DevOps: How to access internet through Vmware VM Bridge setup ?

 

Through this video I showed on “How to access internet through Virtual Machine of Vmware”. The required steps for setup is demonstrated along with the played options.

 

 

 

28.DevOps: How to install LinuxBrew package for Ubuntu VM?

 

linuxbrew-256x256

LinuxBrew is a package-management-software.
It enables installing packages from source on top of the system’s default package management.
Some of the examples for default package management are: “apt/deb” in Debian/Ubuntu and “yum/rpm” in CentOS/RedHat.
So this is similar to them. We all might have seen this package usage more in Mac OS systems. 
In this blog, I would like to demonstrate it as below:
The relevant command screen outputs are copied at the end of this blog.

I. To install this pakage we need to follow some pre-requisites:
Pre-requisites:
1. We need to update the current ubuntu system with the below command:
$ sudo apt-get update

2. We need to upgrade the packages s below:
$ sudo apt-get upgrade -y

II. Now, we need to prepare the system for LinuxBrew package with the below commands:

 

$ sudo sudo apt-get install -y build-essential make cmake scons curl git \
ruby autoconf automake autoconf-archive \
gettext libtool flex bison \
libbz2-dev libcurl4-openssl-dev \
libexpat-dev libncurses-dev

III. Now we need to Clone LinuxBrew from github:

I need to clone LinuxBrew into a hidden directory in my home directory:
$ git clone https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew

After cloning we need to update the Update environment variables as below:

We need to add LinuxBrew to the user’s environment variables.

As a part of this task, the following lines to the end of the user’s ~/.bashrc file:

== Adding lines ====>
# Until LinuxBrew is fixed, the following is required.
# See: https://github.com/Homebrew/linuxbrew/issues/47
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH
## Setup linux brew
export LINUXBREWHOME=$HOME/.linuxbrew
export PATH=$LINUXBREWHOME/bin:$PATH
export MANPATH=$LINUXBREWHOME/man:$MANPATH
export PKG_CONFIG_PATH=$LINUXBREWHOME/lib64/pkgconfig:$LINUXBREWHOME/lib/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH
== Update .bashrc file at EOF ====>
== For the above lines =====>

IV. Now we need to test the installation:
I need to log-out and log-in again.
So, the shell should use these new settings.

To test the installation; we need to apply the below commands:

=== Testing the installation ====>
$ which brew
/home/ubuntu/.linuxbrew/bin/brew
$ echo $PKG_CONFIG_PATH
/home/ubuntu/.linuxbrew/lib64/pkgconfig:/home/ubuntu/.linuxbrew/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:
========>
To fix common problems in LinuxBrew, those we will encounter during its usage.
We need to use 2 times the below command:
$ brew update

And we also need to Run brew doctor and fix all the warnings
$ brew doctor

V. Now let us test it for vim installation in my system:

$ sudo brew install vim

You can also try to install some other packages as you need timely.

COPIED THE EXECUTED COMMANDS SCREEN OUPUT, FYI.

==== Output of screen commands ====>
vskumar@ubuntu:~/K8$ sudo apt-get update
[sudo] password for vskumar:
Hit:1 http://archive.ubuntu.com/ubuntu xenial InRelease
Hit:2 http://ppa.launchpad.net/ansible/ansible/ubuntu xenial InRelease
Get:3 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB]
Hit:4 http://ppa.launchpad.net/conjure-up/next/ubuntu xenial InRelease
Hit:5 http://ppa.launchpad.net/juju/devel/ubuntu xenial InRelease
Hit:6 https://download.docker.com/linux/ubuntu xenial InRelease
Hit:7 http://ppa.launchpad.net/webupd8team/java/ubuntu xenial InRelease
Ign:9 https://pkg.jenkins.io/debian-stable binary/ InRelease
Ign:10 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial InRelease
Hit:11 https://pkg.jenkins.io/debian-stable binary/ Release
Ign:12 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial InRelease
Ign:13 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial Release
Get:8 https://packages.cloud.google.com/apt kubernetes-xenial InRelease [8,993 B]
Ign:14 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial Release
Ign:16 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 amd64 Packages
Ign:8 https://packages.cloud.google.com/apt kubernetes-xenial InRelease
Ign:17 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 all Packages
Ign:18 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 Translation-en_US
Ign:19 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 Translation-en
Ign:20 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 amd64 DEP-11 Metadata
Ign:21 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 DEP-11 64×64 Icons
Ign:22 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 amd64 Packages
Ign:23 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 all Packages
Ign:24 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 Translation-en_US
Ign:25 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 Translation-en
Ign:26 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 amd64 DEP-11 Metadata
Ign:27 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 DEP-11 64×64 Icons
Ign:16 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 amd64 Packages
Ign:17 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 all Packages
Ign:18 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 Translation-en_US
Ign:19 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 Translation-en
Ign:20 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 amd64 DEP-11 Metadata
Ign:21 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 DEP-11 64×64 Icons
Ign:22 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 amd64 Packages
Ign:23 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 all Packages
Ign:24 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 Translation-en_US
Ign:25 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 Translation-en
Ign:26 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 amd64 DEP-11 Metadata
Ign:27 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 DEP-11 64×64 Icons
Ign:16 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 amd64 Packages
Ign:17 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 all Packages
Ign:18 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 Translation-en_US
Ign:19 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 Translation-en
Ign:20 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 amd64 DEP-11 Metadata
Ign:21 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 DEP-11 64×64 Icons
Ign:22 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 amd64 Packages
Ign:23 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 all Packages
Ign:24 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 Translation-en_US
Ign:25 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 Translation-en
Ign:26 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 amd64 DEP-11 Metadata
Ign:27 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 DEP-11 64×64 Icons
Ign:16 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 amd64 Packages
Ign:17 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 all Packages
Ign:18 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 Translation-en_US
Ign:19 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 Translation-en
Ign:20 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 amd64 DEP-11 Metadata
Ign:21 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 DEP-11 64×64 Icons
Ign:22 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 amd64 Packages
Ign:23 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 all Packages
Ign:24 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 Translation-en_US
Ign:25 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 Translation-en
Ign:26 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 amd64 DEP-11 Metadata
Ign:27 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 DEP-11 64×64 Icons
Ign:16 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 amd64 Packages
Ign:17 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 all Packages
Ign:18 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 Translation-en_US
Ign:19 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 Translation-en
Ign:20 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 amd64 DEP-11 Metadata
Ign:21 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 DEP-11 64×64 Icons
Ign:22 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 amd64 Packages
Ign:23 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 all Packages
Ign:24 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 Translation-en_US
Ign:25 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 Translation-en
Ign:26 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 amd64 DEP-11 Metadata
Ign:27 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 DEP-11 64×64 Icons
Err:16 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 amd64 Packages
403 Forbidden
Ign:17 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 all Packages
Ign:18 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 Translation-en_US
Ign:19 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 Translation-en
Ign:20 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 amd64 DEP-11 Metadata
Ign:21 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 DEP-11 64×64 Icons
Err:22 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 amd64 Packages
403 Forbidden
Ign:23 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 all Packages
Ign:24 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 Translation-en_US
Ign:25 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 Translation-en
Ign:26 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 amd64 DEP-11 Metadata
Ign:27 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 DEP-11 64×64 Icons
Fetched 118 kB in 32s (3,666 B/s)
Reading package lists… Done
W: The repository ‘https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial Release’ does not have a Release file.
N: Data from such a repository can’t be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: The repository ‘https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial Release’ does not have a Release file.
N: Data from such a repository can’t be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: GPG error: https://packages.cloud.google.com/apt kubernetes-xenial InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 6A030B21BA07F4FB
W: The repository ‘http://apt.kubernetes.io kubernetes-xenial InRelease’ is not signed.
N: Data from such a repository can’t be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: Failed to fetch https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu/dists/xenial/test-17.06/binary-amd64/Packages 403 Forbidden
E: Failed to fetch https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu/dists/xenial/test-17.06/binary-amd64/Packages 403 Forbidden
E: Some index files failed to download. They have been ignored, or old ones used instead.
vskumar@ubuntu:~/K8$ sudo apt-get upgrade -y
Reading package lists… Done
Building dependency tree
Reading state information… Done
Calculating upgrade… Done
The following packages were automatically installed and are no longer required:
ca-certificates-java default-jre-headless java-common openjdk-8-jre-headless
Use ‘sudo apt autoremove’ to remove them.
The following packages have been kept back:
cups-filters cups-filters-core-drivers gir1.2-javascriptcoregtk-4.0
gir1.2-webkit2-4.0 libdrm-amdgpu1 libdrm2 libegl1-mesa libgbm1
libgl1-mesa-dri libjavascriptcoregtk-4.0-18 libmm-glib0 libqmi-proxy
libwayland-egl1-mesa libwebkit2gtk-4.0-37 libwebkit2gtk-4.0-37-gtk2
libxatracker2 linux-generic-hwe-16.04 linux-headers-generic-hwe-16.04
linux-image-generic-hwe-16.04 modemmanager open-vm-tools
open-vm-tools-desktop qpdf
The following packages will be upgraded:
ansible apache2 apache2-bin apache2-data apache2-utils apparmor apport
apport-gtk apt apt-transport-https apt-utils avahi-autoipd avahi-daemon
avahi-utils bamfdaemon base-files ca-certificates-java compiz compiz-core
compiz-gnome compiz-plugins-default cpp-5 cups cups-browsed cups-bsd
cups-client cups-common cups-core-drivers cups-daemon cups-ppdc
cups-server-common curl distro-info-data docker-ce dpkg dpkg-dev ebtables
firefox firefox-locale-en fonts-opensymbol friendly-recovery fwupd g++-5
gcc-5 gcc-5-base ghostscript ghostscript-x gir1.2-ibus-1.0 gir1.2-unity-5.0
gnome-accessibility-themes gnome-software gnome-software-common grub-common
grub-pc grub-pc-bin grub2-common hdparm ibus ibus-gtk ibus-gtk3 ifupdown
initramfs-tools initramfs-tools-bin initramfs-tools-core isc-dhcp-client
isc-dhcp-common jenkins libapparmor-perl libapparmor1 libapt-inst2.0
libapt-pkg5.0 libasan2 libatomic1 libaudit-common libaudit1 libavahi-client3
libavahi-common-data libavahi-common3 libavahi-core7 libavahi-glib1
libavahi-ui-gtk3-0 libbamf3-2 libcc1-0 libcilkrts5 libcompizconfig0 libcups2
libcupscgi1 libcupsfilters1 libcupsimage2 libcupsmime1 libcupsppdc1 libcurl3
libcurl3-gnutls libdecoration0 libdfu1 libdpkg-perl libfontembed1 libfwupd1
libgcc-5-dev libgcrypt20 libgomp1 libgs9 libgs9-common libibus-1.0-5
libicu55 libitm1 liblsan0 libmpx0 libnuma1 libpam-modules libpam-modules-bin
libpam-runtime libpam-systemd libpam0g libpci3 libperl5.22 libplymouth4
libpoppler-glib8 libpoppler58 libprocps4 libpulse-mainloop-glib0 libpulse0
libpulsedsp libpython-all-dev libpython-dev libpython-stdlib libquadmath0
libraw15 libreoffice-avmedia-backend-gstreamer libreoffice-base-core
libreoffice-calc libreoffice-common libreoffice-core libreoffice-draw
libreoffice-gnome libreoffice-gtk libreoffice-impress libreoffice-math
libreoffice-ogltrans libreoffice-pdfimport libreoffice-style-breeze
libreoffice-style-galaxy libreoffice-writer libruby2.3 libsmbclient
libsnmp-base libsnmp30 libssl1.0.0 libstdc++-5-dev libstdc++6 libsystemd0
libtiff5 libtsan0 libubsan0 libudev1 libunity-core-6.0-9
libunity-protocol-private0 libunity-scopes-json-def-desktop libunity9
libvncclient1 libvorbis0a libvorbisenc2 libvorbisfile3 libwayland-client0
libwayland-cursor0 libwayland-server0 libwbclient0 light-themes linux-base
linux-firmware linux-libc-dev lshw openjdk-8-jre-headless openssh-client
openssh-server openssh-sftp-server openssl patch pciutils perl perl-base
perl-modules-5.22 plymouth plymouth-label plymouth-theme-ubuntu-logo
plymouth-theme-ubuntu-text poppler-utils procps pulseaudio
pulseaudio-module-bluetooth pulseaudio-module-x11 pulseaudio-utils python
python-all python-all-dev python-apt python-apt-common python-crypto
python-dev python-minimal python-paramiko python-samba
python-software-properties python3-apport python3-apt python3-distupgrade
python3-problem-report python3-uno python3-update-manager ruby2.3 samba
samba-common samba-common-bin samba-dsdb-modules samba-libs
samba-vfs-modules sensible-utils suru-icon-theme systemd systemd-sysv
thunderbird thunderbird-gnome-support thunderbird-locale-en
thunderbird-locale-en-us ubuntu-artwork ubuntu-drivers-common
ubuntu-mobile-icons ubuntu-mono ubuntu-release-upgrader-core
ubuntu-release-upgrader-gtk ubuntu-software udev unity unity-schemas
unity-scopes-runner unity-services uno-libs3 update-manager
update-manager-core update-notifier update-notifier-common ure wget
xdg-user-dirs xdg-utils
245 upgraded, 0 newly installed, 0 to remove and 23 not upgraded.
Need to get 459 MB of archives.
After this operation, 109 MB of additional disk space will be used.
Get:1 http://ppa.launchpad.net/ansible/ansible/ubuntu xenial/main amd64 ansible all 2.5.4-1ppa~xenial [3,181 kB]
Get:2 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 base-files amd64 9.4ubuntu4.6 [55.0 kB]
Get:3 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 dpkg amd64 1.18.4ubuntu1.4 [2,088 kB]
Get:4 https://download.docker.com/linux/ubuntu xenial/edge amd64 docker-ce amd64 18.05.0~ce~3-0~ubuntu [34.2 MB]
Get:5 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libperl5.22 amd64 5.22.1-9ubuntu0.3 [3,402 kB]
Get:6 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 perl amd64 5.22.1-9ubuntu0.3 [237 kB]
Get:7 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 perl-base amd64 5.22.1-9ubuntu0.3 [1,286 kB]
Get:8 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 perl-modules-5.22 all 5.22.1-9ubuntu0.3 [2,646 kB]
Get:9 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libquadmath0 amd64 5.4.0-6ubuntu1~16.04.9 [131 kB]
Get:10 https://pkg.jenkins.io/debian-stable binary/ jenkins 2.107.3 [72.5 MB]
Get:11 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libgomp1 amd64 5.4.0-6ubuntu1~16.04.9 [55.0 kB]
Get:12 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libitm1 amd64 5.4.0-6ubuntu1~16.04.9 [27.4 kB]
Get:13 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libatomic1 amd64 5.4.0-6ubuntu1~16.04.9 [8,882 B]
Get:14 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libasan2 amd64 5.4.0-6ubuntu1~16.04.9 [264 kB]
Get:15 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 liblsan0 amd64 5.4.0-6ubuntu1~16.04.9 [105 kB]
Get:16 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libtsan0 amd64 5.4.0-6ubuntu1~16.04.9 [244 kB]
Get:17 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libubsan0 amd64 5.4.0-6ubuntu1~16.04.9 [95.2 kB]
Get:18 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libcilkrts5 amd64 5.4.0-6ubuntu1~16.04.9 [40.1 kB]
Get:19 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libmpx0 amd64 5.4.0-6ubuntu1~16.04.9 [9,774 B]
Get:20 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 g++-5 amd64 5.4.0-6ubuntu1~16.04.9 [8,333 kB]
Get:21 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 gcc-5 amd64 5.4.0-6ubuntu1~16.04.9 [8,650 kB]
Get:22 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 cpp-5 amd64 5.4.0-6ubuntu1~16.04.9 [7,685 kB]
Get:23 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libcc1-0 amd64 5.4.0-6ubuntu1~16.04.9 [38.8 kB]
Get:24 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libstdc++-5-dev amd64 5.4.0-6ubuntu1~16.04.9 [1,427 kB]
Get:25 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libgcc-5-dev amd64 5.4.0-6ubuntu1~16.04.9 [2,242 kB]
Get:26 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 gcc-5-base amd64 5.4.0-6ubuntu1~16.04.9 [17.3 kB]
Get:27 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libstdc++6 amd64 5.4.0-6ubuntu1~16.04.9 [393 kB]
Get:28 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libapt-pkg5.0 amd64 1.2.26 [706 kB]
Get:29 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libapt-inst2.0 amd64 1.2.26 [55.4 kB]
Get:30 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 apt amd64 1.2.26 [1,043 kB]
Get:31 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 apt-utils amd64 1.2.26 [197 kB]
Get:32 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libaudit-common all 1:2.4.5-1ubuntu2.1 [3,924 B]
Get:33 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libaudit1 amd64 1:2.4.5-1ubuntu2.1 [36.2 kB]
Get:34 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpam0g amd64 1.1.8-3.2ubuntu2.1 [55.6 kB]
Get:35 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpam-modules-bin amd64 1.1.8-3.2ubuntu2.1 [36.9 kB]
Get:36 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpam-modules amd64 1.1.8-3.2ubuntu2.1 [244 kB]
Get:37 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpam-runtime all 1.1.8-3.2ubuntu2.1 [37.9 kB]
Get:38 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libprocps4 amd64 2:3.3.10-4ubuntu2.4 [33.1 kB]
Get:39 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 procps amd64 2:3.3.10-4ubuntu2.4 [222 kB]
Get:40 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libsystemd0 amd64 229-4ubuntu21.2 [205 kB]
Get:41 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpam-systemd amd64 229-4ubuntu21.2 [115 kB]
Get:42 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ifupdown amd64 0.8.10ubuntu1.4 [54.9 kB]
Get:43 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 systemd amd64 229-4ubuntu21.2 [3,634 kB]
Get:44 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 udev amd64 229-4ubuntu21.2 [993 kB]
Get:45 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libudev1 amd64 229-4ubuntu21.2 [54.4 kB]
Get:46 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 grub-pc amd64 2.02~beta2-36ubuntu3.18 [197 kB]
Get:47 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 grub-pc-bin amd64 2.02~beta2-36ubuntu3.18 [889 kB]
Get:48 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 grub2-common amd64 2.02~beta2-36ubuntu3.18 [511 kB]
Get:49 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 grub-common amd64 2.02~beta2-36ubuntu3.18 [1,706 kB]
Get:50 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 friendly-recovery all 0.2.31ubuntu1 [9,496 B]
Get:51 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 initramfs-tools all 0.122ubuntu8.11 [8,590 B]
Get:52 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 initramfs-tools-core all 0.122ubuntu8.11 [42.9 kB]
Get:53 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 initramfs-tools-bin amd64 0.122ubuntu8.11 [9,592 B]
Get:54 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-base all 4.5ubuntu1~16.04.1 [18.1 kB]
Get:55 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 systemd-sysv amd64 229-4ubuntu21.2 [11.9 kB]
Get:56 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libapparmor1 amd64 2.10.95-0ubuntu2.9 [29.9 kB]
Get:57 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libssl1.0.0 amd64 1.0.2g-1ubuntu4.12 [1,085 kB]
Get:58 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 apache2 amd64 2.4.18-2ubuntu3.8 [86.8 kB]
Get:59 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 apache2-bin amd64 2.4.18-2ubuntu3.8 [926 kB]
Get:60 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 apache2-utils amd64 2.4.18-2ubuntu3.8 [82.0 kB]
Get:61 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 apache2-data all 2.4.18-2ubuntu3.8 [162 kB]
Get:62 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libavahi-common-data amd64 0.6.32~rc+dfsg-1ubuntu2.2 [21.5 kB]
Get:63 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libavahi-common3 amd64 0.6.32~rc+dfsg-1ubuntu2.2 [21.6 kB]
Get:64 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libavahi-client3 amd64 0.6.32~rc+dfsg-1ubuntu2.2 [25.2 kB]
Get:65 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libavahi-glib1 amd64 0.6.32~rc+dfsg-1ubuntu2.2 [7,708 B]
Get:66 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 cups-core-drivers amd64 2.1.3-4ubuntu0.4 [27.2 kB]
Get:67 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 cups-server-common all 2.1.3-4ubuntu0.4 [494 kB]
Get:68 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 cups-common all 2.1.3-4ubuntu0.4 [134 kB]
Get:69 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libcupscgi1 amd64 2.1.3-4ubuntu0.4 [27.2 kB]
Get:70 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 cups-client amd64 2.1.3-4ubuntu0.4 [133 kB]
Get:71 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libcupsimage2 amd64 2.1.3-4ubuntu0.4 [16.1 kB]
Get:72 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libcupsppdc1 amd64 2.1.3-4ubuntu0.4 [45.0 kB]
Get:73 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 cups-browsed amd64 1.8.3-2ubuntu3.4 [92.9 kB]
Get:74 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 cups-daemon amd64 2.1.3-4ubuntu0.4 [302 kB]
Get:75 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libcupsmime1 amd64 2.1.3-4ubuntu0.4 [13.0 kB]
Get:76 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libcups2 amd64 2.1.3-4ubuntu0.4 [197 kB]
Get:77 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 cups amd64 2.1.3-4ubuntu0.4 [192 kB]
Get:78 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 cups-bsd amd64 2.1.3-4ubuntu0.4 [34.8 kB]
Get:79 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libtiff5 amd64 4.0.6-1ubuntu0.4 [148 kB]
Get:80 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libcupsfilters1 amd64 1.8.3-2ubuntu3.4 [80.5 kB]
Get:81 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpoppler58 amd64 0.41.0-0ubuntu1.7 [758 kB]
Get:82 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 poppler-utils amd64 0.41.0-0ubuntu1.7 [130 kB]
Get:83 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ghostscript amd64 9.18~dfsg~0-0ubuntu2.8 [40.9 kB]
Get:84 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ghostscript-x amd64 9.18~dfsg~0-0ubuntu2.8 [34.4 kB]
Get:85 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libgs9-common all 9.18~dfsg~0-0ubuntu2.8 [2,979 kB]
Get:86 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libgs9 amd64 9.18~dfsg~0-0ubuntu2.8 [2,057 kB]
Get:87 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 cups-ppdc amd64 2.1.3-4ubuntu0.4 [26.5 kB]
Get:88 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libicu55 amd64 55.1-7ubuntu0.4 [7,646 kB]
Get:89 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libreoffice-calc amd64 1:5.1.6~rc2-0ubuntu1~xenial3 [6,452 kB]
Get:90 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libreoffice-gnome amd64 1:5.1.6~rc2-0ubuntu1~xenial3 [60.8 kB]
Get:91 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libreoffice-gtk amd64 1:5.1.6~rc2-0ubuntu1~xenial3 [206 kB]
Get:92 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libreoffice-writer amd64 1:5.1.6~rc2-0ubuntu1~xenial3 [7,558 kB]
Get:93 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libreoffice-style-galaxy all 1:5.1.6~rc2-0ubuntu1~xenial3 [1,522 kB]
Get:94 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 uno-libs3 amd64 5.1.6~rc2-0ubuntu1~xenial3 [704 kB]
Get:95 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libreoffice-ogltrans amd64 1:5.1.6~rc2-0ubuntu1~xenial3 [73.3 kB]
Get:96 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ure amd64 5.1.6~rc2-0ubuntu1~xenial3 [1,535 kB]
Get:97 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libreoffice-style-breeze all 1:5.1.6~rc2-0ubuntu1~xenial3 [470 kB]
Get:98 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libreoffice-common all 1:5.1.6~rc2-0ubuntu1~xenial3 [22.4 MB]
Get:99 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libreoffice-pdfimport amd64 1:5.1.6~rc2-0ubuntu1~xenial3 [182 kB]
Get:100 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3-uno amd64 1:5.1.6~rc2-0ubuntu1~xenial3 [137 kB]
Get:101 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libreoffice-base-core amd64 1:5.1.6~rc2-0ubuntu1~xenial3 [716 kB]
Get:102 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libreoffice-math amd64 1:5.1.6~rc2-0ubuntu1~xenial3 [373 kB]
Get:103 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libreoffice-avmedia-backend-gstreamer amd64 1:5.1.6~rc2-0ubuntu1~xenial3 [24.2 kB]
Get:104 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libreoffice-draw amd64 1:5.1.6~rc2-0ubuntu1~xenial3 [2,401 kB]
Get:105 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libreoffice-impress amd64 1:5.1.6~rc2-0ubuntu1~xenial3 [970 kB]
Get:106 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libreoffice-core amd64 1:5.1.6~rc2-0ubuntu1~xenial3 [28.2 MB]
Get:107 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 fonts-opensymbol all 2:102.7+LibO5.1.6~rc2-0ubuntu1~xenial3 [104 kB]
Get:108 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 curl amd64 7.47.0-1ubuntu2.8 [139 kB]
Get:109 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libcurl3-gnutls amd64 7.47.0-1ubuntu2.8 [185 kB]
Get:110 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 samba-vfs-modules amd64 2:4.3.11+dfsg-0ubuntu0.16.04.13 [257 kB]
Get:111 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 samba-dsdb-modules amd64 2:4.3.11+dfsg-0ubuntu0.16.04.13 [215 kB]
Get:112 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python-all-dev amd64 2.7.12-1~16.04 [1,016 B]
Get:113 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python-dev amd64 2.7.12-1~16.04 [1,186 B]
Get:114 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python-all amd64 2.7.12-1~16.04 [996 B]
Get:115 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python-minimal amd64 2.7.12-1~16.04 [28.1 kB]
Get:116 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python amd64 2.7.12-1~16.04 [137 kB]
Get:117 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython-all-dev amd64 2.7.12-1~16.04 [1,006 B]
Get:118 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython-dev amd64 2.7.12-1~16.04 [7,840 B]
Get:119 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython-stdlib amd64 2.7.12-1~16.04 [7,768 B]
Get:120 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python-crypto amd64 2.6.1-6ubuntu0.16.04.3 [246 kB]
Get:121 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python-samba amd64 2:4.3.11+dfsg-0ubuntu0.16.04.13 [1,059 kB]
Get:122 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 samba-common-bin amd64 2:4.3.11+dfsg-0ubuntu0.16.04.13 [506 kB]
Get:123 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libsmbclient amd64 2:4.3.11+dfsg-0ubuntu0.16.04.13 [53.3 kB]
Get:124 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 samba-libs amd64 2:4.3.11+dfsg-0ubuntu0.16.04.13 [5,166 kB]
Get:125 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libwbclient0 amd64 2:4.3.11+dfsg-0ubuntu0.16.04.13 [30.4 kB]
Get:126 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 samba amd64 2:4.3.11+dfsg-0ubuntu0.16.04.13 [906 kB]
Get:127 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 samba-common all 2:4.3.11+dfsg-0ubuntu0.16.04.13 [83.5 kB]
Get:128 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 pciutils amd64 1:3.3.1-1.1ubuntu1.2 [234 kB]
Get:129 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpci3 amd64 1:3.3.1-1.1ubuntu1.2 [24.5 kB]
Get:130 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python-apt-common all 1.1.0~beta1ubuntu0.16.04.1 [16.0 kB]
Get:131 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3-apt amd64 1.1.0~beta1ubuntu0.16.04.1 [137 kB]
Get:132 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ubuntu-drivers-common amd64 1:0.4.17.7 [49.9 kB]
Get:133 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ubuntu-release-upgrader-gtk all 1:16.04.25 [9,344 B]
Get:134 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ubuntu-release-upgrader-core all 1:16.04.25 [29.6 kB]
Get:135 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python-apt amd64 1.1.0~beta1ubuntu0.16.04.1 [139 kB]
Get:136 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 update-manager all 1:16.04.13 [543 kB]
Get:137 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3-distupgrade all 1:16.04.25 [104 kB]
Get:138 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3-update-manager all 1:16.04.13 [32.6 kB]
Get:139 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 update-manager-core all 1:16.04.13 [5,496 B]
Get:140 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 update-notifier amd64 3.168.8 [47.3 kB]
Get:141 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libdpkg-perl all 1.18.4ubuntu1.4 [195 kB]
Get:142 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 dpkg-dev all 1.18.4ubuntu1.4 [584 kB]
Get:143 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 patch amd64 2.7.5-1ubuntu0.16.04.1 [90.5 kB]
Get:144 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 update-notifier-common all 3.168.8 [164 kB]
Get:145 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libgcrypt20 amd64 1.6.5-2ubuntu0.4 [337 kB]
Get:146 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 sensible-utils all 0.0.9ubuntu0.16.04.1 [10.0 kB]
Get:147 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 distro-info-data all 0.28ubuntu0.8 [4,502 B]
Get:148 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 isc-dhcp-client amd64 4.3.3-5ubuntu12.10 [224 kB]
Get:149 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 isc-dhcp-common amd64 4.3.3-5ubuntu12.10 [105 kB]
Get:150 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libapparmor-perl amd64 2.10.95-0ubuntu2.9 [31.5 kB]
Get:151 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 apparmor amd64 2.10.95-0ubuntu2.9 [450 kB]
Get:152 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 apt-transport-https amd64 1.2.26 [26.1 kB]
Get:153 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 hdparm amd64 9.48+ds-1ubuntu0.1 [92.6 kB]
Get:154 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libnuma1 amd64 2.0.11-1ubuntu1.1 [21.0 kB]
Get:155 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libplymouth4 amd64 0.9.2-3ubuntu13.5 [85.2 kB]
Get:156 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 lshw amd64 02.17-1.1ubuntu3.5 [215 kB]
Get:157 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssh-sftp-server amd64 1:7.2p2-4ubuntu2.4 [38.7 kB]
Get:158 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssh-server amd64 1:7.2p2-4ubuntu2.4 [335 kB]
Get:159 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssh-client amd64 1:7.2p2-4ubuntu2.4 [589 kB]
Get:160 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssl amd64 1.0.2g-1ubuntu4.12 [492 kB]
Get:161 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 plymouth-theme-ubuntu-text amd64 0.9.2-3ubuntu13.5 [9,090 B]
Get:162 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 plymouth amd64 0.9.2-3ubuntu13.5 [107 kB]
Get:163 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 plymouth-theme-ubuntu-logo amd64 0.9.2-3ubuntu13.5 [22.1 kB]
Get:164 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 plymouth-label amd64 0.9.2-3ubuntu13.5 [6,080 B]
Get:165 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 wget amd64 1.17.1-1ubuntu1.4 [299 kB]
Get:166 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 xdg-user-dirs amd64 0.15-2ubuntu6.16.04.1 [61.8 kB]
Get:167 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python-paramiko all 1.16.0-1ubuntu0.1 [109 kB]
Get:168 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3-problem-report all 2.20.1-0ubuntu2.18 [9,754 B]
Get:169 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3-apport all 2.20.1-0ubuntu2.18 [79.6 kB]
Get:170 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 apport all 2.20.1-0ubuntu2.18 [121 kB]
Get:171 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 apport-gtk all 2.20.1-0ubuntu2.18 [9,578 B]
Get:172 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 avahi-autoipd amd64 0.6.32~rc+dfsg-1ubuntu2.2 [36.5 kB]
Get:173 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 pulseaudio-module-bluetooth amd64 1:8.0-0ubuntu3.10 [58.5 kB]
Get:174 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpulsedsp amd64 1:8.0-0ubuntu3.10 [21.1 kB]
Get:175 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 pulseaudio-utils amd64 1:8.0-0ubuntu3.10 [50.9 kB]
Get:176 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpulse-mainloop-glib0 amd64 1:8.0-0ubuntu3.10 [11.5 kB]
Get:177 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 pulseaudio-module-x11 amd64 1:8.0-0ubuntu3.10 [15.9 kB]
Get:178 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 pulseaudio amd64 1:8.0-0ubuntu3.10 [769 kB]
Get:179 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpulse0 amd64 1:8.0-0ubuntu3.10 [249 kB]
Get:180 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libavahi-core7 amd64 0.6.32~rc+dfsg-1ubuntu2.2 [81.5 kB]
Get:181 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 avahi-daemon amd64 0.6.32~rc+dfsg-1ubuntu2.2 [59.5 kB]
Get:182 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 avahi-utils amd64 0.6.32~rc+dfsg-1ubuntu2.2 [24.3 kB]
Get:183 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 bamfdaemon amd64 0.5.3~bzr0+16.04.20180209-0ubuntu1 [82.2 kB]
Get:184 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libbamf3-2 amd64 0.5.3~bzr0+16.04.20180209-0ubuntu1 [51.8 kB]
Get:185 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 openjdk-8-jre-headless amd64 8u171-b11-0ubuntu0.16.04.1 [27.0 MB]
Get:186 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ca-certificates-java all 20160321ubuntu1 [12.5 kB]
Get:187 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libcompizconfig0 amd64 1:0.9.12.3+16.04.20180221-0ubuntu1 [118 kB]
Get:188 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 compiz-gnome amd64 1:0.9.12.3+16.04.20180221-0ubuntu1 [127 kB]
Get:189 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 compiz-plugins-default amd64 1:0.9.12.3+16.04.20180221-0ubuntu1 [821 kB]
Get:190 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libdecoration0 amd64 1:0.9.12.3+16.04.20180221-0ubuntu1 [51.9 kB]
Get:191 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 unity amd64 7.4.5+16.04.20180221-0ubuntu1 [1,619 kB]
Get:192 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libunity-protocol-private0 amd64 7.1.4+16.04.20180209.1-0ubuntu1 [78.7 kB]
Get:193 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libunity9 amd64 7.1.4+16.04.20180209.1-0ubuntu1 [199 kB]
Get:194 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libunity-core-6.0-9 amd64 7.4.5+16.04.20180221-0ubuntu1 [437 kB]
Get:195 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 unity-schemas all 7.4.5+16.04.20180221-0ubuntu1 [12.9 kB]
Get:196 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libunity-scopes-json-def-desktop all 7.1.4+16.04.20180209.1-0ubuntu1 [3,548 B]
Get:197 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 unity-services amd64 7.4.5+16.04.20180221-0ubuntu1 [33.4 kB]
Get:198 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 compiz-core amd64 1:0.9.12.3+16.04.20180221-0ubuntu1 [348 kB]
Get:199 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 compiz all 1:0.9.12.3+16.04.20180221-0ubuntu1 [3,860 B]
Get:200 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ebtables amd64 2.0.10.4-3.4ubuntu2.16.04.1 [79.6 kB]
Get:201 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 firefox amd64 60.0.1+build2-0ubuntu0.16.04.1 [44.0 MB]
Get:202 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 firefox-locale-en amd64 60.0.1+build2-0ubuntu0.16.04.1 [740 kB]
Get:203 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libdfu1 amd64 0.8.3-0ubuntu3 [48.6 kB]
Get:204 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libfwupd1 amd64 0.8.3-0ubuntu3 [33.1 kB]
Get:205 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 fwupd amd64 0.8.3-0ubuntu3 [119 kB]
Get:206 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libibus-1.0-5 amd64 1.5.11-1ubuntu2.1 [125 kB]
Get:207 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ibus amd64 1.5.11-1ubuntu2.1 [205 kB]
Get:208 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 gir1.2-ibus-1.0 amd64 1.5.11-1ubuntu2.1 [66.0 kB]
Get:209 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 gir1.2-unity-5.0 amd64 7.1.4+16.04.20180209.1-0ubuntu1 [20.2 kB]
Get:210 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 gnome-accessibility-themes all 3.18.0-2ubuntu2 [2,298 kB]
Get:211 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ubuntu-software amd64 3.20.5-0ubuntu0.16.04.10 [11.7 kB]
Get:212 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 gnome-software amd64 3.20.5-0ubuntu0.16.04.10 [244 kB]
Get:213 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 gnome-software-common all 3.20.5-0ubuntu0.16.04.10 [2,521 kB]
Get:214 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ibus-gtk amd64 1.5.11-1ubuntu2.1 [14.7 kB]
Get:215 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ibus-gtk3 amd64 1.5.11-1ubuntu2.1 [14.8 kB]
Get:216 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libavahi-ui-gtk3-0 amd64 0.6.32~rc+dfsg-1ubuntu2.2 [19.0 kB]
Get:217 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libcurl3 amd64 7.47.0-1ubuntu2.8 [187 kB]
Get:218 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libfontembed1 amd64 1.8.3-2ubuntu3.4 [47.2 kB]
Get:219 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpoppler-glib8 amd64 0.41.0-0ubuntu1.7 [104 kB]
Get:220 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libraw15 amd64 0.17.1-1ubuntu0.3 [230 kB]
Get:221 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libsnmp-base all 5.7.3+dfsg-1ubuntu4.1 [224 kB]
Get:222 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libsnmp30 amd64 5.7.3+dfsg-1ubuntu4.1 [811 kB]
Get:223 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libvncclient1 amd64 0.9.10+dfsg-3ubuntu0.16.04.2 [54.2 kB]
Get:224 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libvorbisfile3 amd64 1.3.5-3ubuntu0.2 [15.9 kB]
Get:225 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libvorbisenc2 amd64 1.3.5-3ubuntu0.2 [70.6 kB]
Get:226 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libvorbis0a amd64 1.3.5-3ubuntu0.2 [86.0 kB]
Get:227 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libwayland-client0 amd64 1.12.0-1~ubuntu16.04.3 [22.5 kB]
Get:228 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libwayland-cursor0 amd64 1.12.0-1~ubuntu16.04.3 [10.1 kB]
Get:229 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libwayland-server0 amd64 1.12.0-1~ubuntu16.04.3 [28.0 kB]
Get:230 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ubuntu-mono all 14.04+16.04.20180326-0ubuntu1 [178 kB]
Get:231 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 light-themes all 14.04+16.04.20180326-0ubuntu1 [154 kB]
Get:232 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-firmware all 1.157.19 [50.7 MB]
Get:233 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-libc-dev amd64 4.4.0-127.153 [870 kB]
Get:234 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 python-software-properties all 0.96.20.7 [20.7 kB]
Get:235 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ubuntu-mobile-icons all 14.04+16.04.20180326-0ubuntu1 [6,840 kB]
Get:236 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 suru-icon-theme all 14.04+16.04.20180326-0ubuntu1 [1,626 kB]
Get:237 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 thunderbird-locale-en amd64 1:52.8.0+build1-0ubuntu0.16.04.1 [469 kB]
Get:238 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 thunderbird amd64 1:52.8.0+build1-0ubuntu0.16.04.1 [42.3 MB]
Get:239 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 thunderbird-gnome-support amd64 1:52.8.0+build1-0ubuntu0.16.04.1 [8,530 B]
Get:240 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 thunderbird-locale-en-us all 1:52.8.0+build1-0ubuntu0.16.04.1 [9,336 B]
Get:241 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ubuntu-artwork all 1:14.04+16.04.20180326-0ubuntu1 [7,612 B]
Get:242 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 unity-scopes-runner all 7.1.4+16.04.20180209.1-0ubuntu1 [4,180 B]
Get:243 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 xdg-utils all 1.1.1-1ubuntu1.16.04.3 [59.6 kB]
Get:244 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libruby2.3 amd64 2.3.1-2~16.04.9 [2,963 kB]
Get:245 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ruby2.3 amd64 2.3.1-2~16.04.9 [41.0 kB]
Fetched 459 MB in 4min 39s (1,640 kB/s)
Extracting templates from packages: 100%
Preconfiguring packages …
(Reading database … 224868 files and directories currently installed.)
Preparing to unpack …/base-files_9.4ubuntu4.6_amd64.deb …
Unpacking base-files (9.4ubuntu4.6) over (9.4ubuntu4.5) …
Processing triggers for plymouth-theme-ubuntu-text (0.9.2-3ubuntu13.2) …
update-initramfs: deferring update (trigger activated)
Processing triggers for cracklib-runtime (2.9.2-1ubuntu1) …
Processing triggers for install-info (6.1.0.dfsg.1-5) …
Processing triggers for man-db (2.7.5-1) …
Processing triggers for initramfs-tools (0.122ubuntu8.10) …
update-initramfs: Generating /boot/initrd.img-4.10.0-40-generic
Setting up base-files (9.4ubuntu4.6) …
Installing new version of config file /etc/issue …
Installing new version of config file /etc/issue.net …
Installing new version of config file /etc/lsb-release …
Processing triggers for plymouth-theme-ubuntu-text (0.9.2-3ubuntu13.2) …
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools (0.122ubuntu8.10) …
update-initramfs: Generating /boot/initrd.img-4.10.0-40-generic
(Reading database … 224868 files and directories currently installed.)
Preparing to unpack …/dpkg_1.18.4ubuntu1.4_amd64.deb …
Unpacking dpkg (1.18.4ubuntu1.4) over (1.18.4ubuntu1.3) …
Setting up dpkg (1.18.4ubuntu1.4) …
Processing triggers for man-db (2.7.5-1) …
(Reading database … 224868 files and directories currently installed.)
Preparing to unpack …/libperl5.22_5.22.1-9ubuntu0.3_amd64.deb …
Unpacking libperl5.22:amd64 (5.22.1-9ubuntu0.3) over (5.22.1-9ubuntu0.2) …
Preparing to unpack …/perl_5.22.1-9ubuntu0.3_amd64.deb …
Unpacking perl (5.22.1-9ubuntu0.3) over (5.22.1-9ubuntu0.2) …
Preparing to unpack …/perl-base_5.22.1-9ubuntu0.3_amd64.deb …
Unpacking perl-base (5.22.1-9ubuntu0.3) over (5.22.1-9ubuntu0.2) …
Processing triggers for man-db (2.7.5-1) …
Setting up perl-base (5.22.1-9ubuntu0.3) …
(Reading database … 224868 files and directories currently installed.)
Preparing to unpack …/perl-modules-5.22_5.22.1-9ubuntu0.3_all.deb …
Unpacking perl-modules-5.22 (5.22.1-9ubuntu0.3) over (5.22.1-9ubuntu0.2) …
Preparing to unpack …/libquadmath0_5.4.0-6ubuntu1~16.04.9_amd64.deb …
Unpacking libquadmath0:amd64 (5.4.0-6ubuntu1~16.04.9) over (5.4.0-6ubuntu1~16.04.6) …
Preparing to unpack …/libgomp1_5.4.0-6ubuntu1~16.04.9_amd64.deb …
Unpacking libgomp1:amd64 (5.4.0-6ubuntu1~16.04.9) over (5.4.0-6ubuntu1~16.04.6) …
Preparing to unpack …/libitm1_5.4.0-6ubuntu1~16.04.9_amd64.deb …
Unpacking libitm1:amd64 (5.4.0-6ubuntu1~16.04.9) over (5.4.0-6ubuntu1~16.04.6) …
Preparing to unpack …/libatomic1_5.4.0-6ubuntu1~16.04.9_amd64.deb …
Unpacking libatomic1:amd64 (5.4.0-6ubuntu1~16.04.9) over (5.4.0-6ubuntu1~16.04.6) …
Preparing to unpack …/libasan2_5.4.0-6ubuntu1~16.04.9_amd64.deb …
Unpacking libasan2:amd64 (5.4.0-6ubuntu1~16.04.9) over (5.4.0-6ubuntu1~16.04.6) …
Preparing to unpack …/liblsan0_5.4.0-6ubuntu1~16.04.9_amd64.deb …
Unpacking liblsan0:amd64 (5.4.0-6ubuntu1~16.04.9) over (5.4.0-6ubuntu1~16.04.6) …
Preparing to unpack …/libtsan0_5.4.0-6ubuntu1~16.04.9_amd64.deb …
Unpacking libtsan0:amd64 (5.4.0-6ubuntu1~16.04.9) over (5.4.0-6ubuntu1~16.04.6) …
Preparing to unpack …/libubsan0_5.4.0-6ubuntu1~16.04.9_amd64.deb …
Unpacking libubsan0:amd64 (5.4.0-6ubuntu1~16.04.9) over (5.4.0-6ubuntu1~16.04.6) …
Preparing to unpack …/libcilkrts5_5.4.0-6ubuntu1~16.04.9_amd64.deb …
Unpacking libcilkrts5:amd64 (5.4.0-6ubuntu1~16.04.9) over (5.4.0-6ubuntu1~16.04.6) …
Preparing to unpack …/libmpx0_5.4.0-6ubuntu1~16.04.9_amd64.deb …
Unpacking libmpx0:amd64 (5.4.0-6ubuntu1~16.04.9) over (5.4.0-6ubuntu1~16.04.6) …
Preparing to unpack …/g++-5_5.4.0-6ubuntu1~16.04.9_amd64.deb …
Unpacking g++-5 (5.4.0-6ubuntu1~16.04.9) over (5.4.0-6ubuntu1~16.04.6) …
Preparing to unpack …/gcc-5_5.4.0-6ubuntu1~16.04.9_amd64.deb …
Unpacking gcc-5 (5.4.0-6ubuntu1~16.04.9) over (5.4.0-6ubuntu1~16.04.6) …
Preparing to unpack …/cpp-5_5.4.0-6ubuntu1~16.04.9_amd64.deb …
Unpacking cpp-5 (5.4.0-6ubuntu1~16.04.9) over (5.4.0-6ubuntu1~16.04.6) …
Preparing to unpack …/libcc1-0_5.4.0-6ubuntu1~16.04.9_amd64.deb …
Unpacking libcc1-0:amd64 (5.4.0-6ubuntu1~16.04.9) over (5.4.0-6ubuntu1~16.04.6) …
Preparing to unpack …/libstdc++-5-dev_5.4.0-6ubuntu1~16.04.9_amd64.deb …
Unpacking libstdc++-5-dev:amd64 (5.4.0-6ubuntu1~16.04.9) over (5.4.0-6ubuntu1~16.04.6) …
Preparing to unpack …/libgcc-5-dev_5.4.0-6ubuntu1~16.04.9_amd64.deb …
Unpacking libgcc-5-dev:amd64 (5.4.0-6ubuntu1~16.04.9) over (5.4.0-6ubuntu1~16.04.6) …
Preparing to unpack …/gcc-5-base_5.4.0-6ubuntu1~16.04.9_amd64.deb …
Unpacking gcc-5-base:amd64 (5.4.0-6ubuntu1~16.04.9) over (5.4.0-6ubuntu1~16.04.6) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
Processing triggers for man-db (2.7.5-1) …
Setting up gcc-5-base:amd64 (5.4.0-6ubuntu1~16.04.9) …
(Reading database … 224868 files and directories currently installed.)
Preparing to unpack …/libstdc++6_5.4.0-6ubuntu1~16.04.9_amd64.deb …
Unpacking libstdc++6:amd64 (5.4.0-6ubuntu1~16.04.9) over (5.4.0-6ubuntu1~16.04.6) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
Setting up libstdc++6:amd64 (5.4.0-6ubuntu1~16.04.9) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
(Reading database … 224868 files and directories currently installed.)
Preparing to unpack …/libapt-pkg5.0_1.2.26_amd64.deb …
Unpacking libapt-pkg5.0:amd64 (1.2.26) over (1.2.25) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
Setting up libapt-pkg5.0:amd64 (1.2.26) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
(Reading database … 224868 files and directories currently installed.)
Preparing to unpack …/libapt-inst2.0_1.2.26_amd64.deb …
Unpacking libapt-inst2.0:amd64 (1.2.26) over (1.2.25) …
Preparing to unpack …/archives/apt_1.2.26_amd64.deb …
Unpacking apt (1.2.26) over (1.2.25) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
Processing triggers for man-db (2.7.5-1) …
Setting up apt (1.2.26) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
(Reading database … 224868 files and directories currently installed.)
Preparing to unpack …/apt-utils_1.2.26_amd64.deb …
Unpacking apt-utils (1.2.26) over (1.2.25) …
Preparing to unpack …/libaudit-common_1%3a2.4.5-1ubuntu2.1_all.deb …
Unpacking libaudit-common (1:2.4.5-1ubuntu2.1) over (1:2.4.5-1ubuntu2) …
Processing triggers for man-db (2.7.5-1) …
Setting up libaudit-common (1:2.4.5-1ubuntu2.1) …
(Reading database … 224868 files and directories currently installed.)
Preparing to unpack …/libaudit1_1%3a2.4.5-1ubuntu2.1_amd64.deb …
Unpacking libaudit1:amd64 (1:2.4.5-1ubuntu2.1) over (1:2.4.5-1ubuntu2) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
Setting up libaudit1:amd64 (1:2.4.5-1ubuntu2.1) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
(Reading database … 224868 files and directories currently installed.)
Preparing to unpack …/libpam0g_1.1.8-3.2ubuntu2.1_amd64.deb …
Unpacking libpam0g:amd64 (1.1.8-3.2ubuntu2.1) over (1.1.8-3.2ubuntu2) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
Setting up libpam0g:amd64 (1.1.8-3.2ubuntu2.1) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
(Reading database … 224868 files and directories currently installed.)
Preparing to unpack …/libpam-modules-bin_1.1.8-3.2ubuntu2.1_amd64.deb …
Unpacking libpam-modules-bin (1.1.8-3.2ubuntu2.1) over (1.1.8-3.2ubuntu2) …
Processing triggers for man-db (2.7.5-1) …
Setting up libpam-modules-bin (1.1.8-3.2ubuntu2.1) …
(Reading database … 224868 files and directories currently installed.)
Preparing to unpack …/libpam-modules_1.1.8-3.2ubuntu2.1_amd64.deb …
Unpacking libpam-modules:amd64 (1.1.8-3.2ubuntu2.1) over (1.1.8-3.2ubuntu2) …
Processing triggers for man-db (2.7.5-1) …
Setting up libpam-modules:amd64 (1.1.8-3.2ubuntu2.1) …
(Reading database … 224868 files and directories currently installed.)
Preparing to unpack …/libpam-runtime_1.1.8-3.2ubuntu2.1_all.deb …
Unpacking libpam-runtime (1.1.8-3.2ubuntu2.1) over (1.1.8-3.2ubuntu2) …
Processing triggers for man-db (2.7.5-1) …
Setting up libpam-runtime (1.1.8-3.2ubuntu2.1) …
(Reading database … 224868 files and directories currently installed.)
Preparing to unpack …/libprocps4_2%3a3.3.10-4ubuntu2.4_amd64.deb …
Unpacking libprocps4:amd64 (2:3.3.10-4ubuntu2.4) over (2:3.3.10-4ubuntu2.3) …
Preparing to unpack …/procps_2%3a3.3.10-4ubuntu2.4_amd64.deb …
Unpacking procps (2:3.3.10-4ubuntu2.4) over (2:3.3.10-4ubuntu2.3) …
Preparing to unpack …/libsystemd0_229-4ubuntu21.2_amd64.deb …
Unpacking libsystemd0:amd64 (229-4ubuntu21.2) over (229-4ubuntu21.1) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
Processing triggers for man-db (2.7.5-1) …
Processing triggers for ureadahead (0.100.0-19) …
Setting up libsystemd0:amd64 (229-4ubuntu21.2) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
(Reading database … 224868 files and directories currently installed.)
Preparing to unpack …/libpam-systemd_229-4ubuntu21.2_amd64.deb …
Unpacking libpam-systemd:amd64 (229-4ubuntu21.2) over (229-4ubuntu21.1) …
Preparing to unpack …/ifupdown_0.8.10ubuntu1.4_amd64.deb …
Unpacking ifupdown (0.8.10ubuntu1.4) over (0.8.10ubuntu1.2) …
Preparing to unpack …/systemd_229-4ubuntu21.2_amd64.deb …
Unpacking systemd (229-4ubuntu21.2) over (229-4ubuntu21.1) …
Processing triggers for man-db (2.7.5-1) …
Processing triggers for ureadahead (0.100.0-19) …
Processing triggers for dbus (1.10.6-1ubuntu3.3) …
Setting up systemd (229-4ubuntu21.2) …
addgroup: The group `systemd-journal’ already exists as a system group. Exiting.
(Reading database … 224868 files and directories currently installed.)
Preparing to unpack …/udev_229-4ubuntu21.2_amd64.deb …
Unpacking udev (229-4ubuntu21.2) over (229-4ubuntu21.1) …
Preparing to unpack …/libudev1_229-4ubuntu21.2_amd64.deb …
Unpacking libudev1:amd64 (229-4ubuntu21.2) over (229-4ubuntu21.1) …
Processing triggers for systemd (229-4ubuntu21.2) …
Processing triggers for ureadahead (0.100.0-19) …
Processing triggers for man-db (2.7.5-1) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
Setting up libudev1:amd64 (229-4ubuntu21.2) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
(Reading database … 224868 files and directories currently installed.)
Preparing to unpack …/grub-pc_2.02~beta2-36ubuntu3.18_amd64.deb …
Unpacking grub-pc (2.02~beta2-36ubuntu3.18) over (2.02~beta2-36ubuntu3.16) …
Preparing to unpack …/grub-pc-bin_2.02~beta2-36ubuntu3.18_amd64.deb …
Unpacking grub-pc-bin (2.02~beta2-36ubuntu3.18) over (2.02~beta2-36ubuntu3.16) …
Preparing to unpack …/grub2-common_2.02~beta2-36ubuntu3.18_amd64.deb …
Unpacking grub2-common (2.02~beta2-36ubuntu3.18) over (2.02~beta2-36ubuntu3.16) …
Preparing to unpack …/grub-common_2.02~beta2-36ubuntu3.18_amd64.deb …
Unpacking grub-common (2.02~beta2-36ubuntu3.18) over (2.02~beta2-36ubuntu3.16) …
Preparing to unpack …/friendly-recovery_0.2.31ubuntu1_all.deb …
Unpacking friendly-recovery (0.2.31ubuntu1) over (0.2.31) …
Preparing to unpack …/initramfs-tools_0.122ubuntu8.11_all.deb …
Unpacking initramfs-tools (0.122ubuntu8.11) over (0.122ubuntu8.10) …
Preparing to unpack …/initramfs-tools-core_0.122ubuntu8.11_all.deb …
Unpacking initramfs-tools-core (0.122ubuntu8.11) over (0.122ubuntu8.10) …
Preparing to unpack …/initramfs-tools-bin_0.122ubuntu8.11_amd64.deb …
Unpacking initramfs-tools-bin (0.122ubuntu8.11) over (0.122ubuntu8.10) …
Preparing to unpack …/linux-base_4.5ubuntu1~16.04.1_all.deb …
Unpacking linux-base (4.5ubuntu1~16.04.1) over (4.0ubuntu1) …
Preparing to unpack …/systemd-sysv_229-4ubuntu21.2_amd64.deb …
Unpacking systemd-sysv (229-4ubuntu21.2) over (229-4ubuntu21.1) …
Processing triggers for man-db (2.7.5-1) …
Processing triggers for install-info (6.1.0.dfsg.1-5) …
Processing triggers for systemd (229-4ubuntu21.2) …
Processing triggers for ureadahead (0.100.0-19) …
Processing triggers for doc-base (0.10.7) …
Processing 1 changed doc-base file…
Registering documents with scrollkeeper…
Setting up systemd-sysv (229-4ubuntu21.2) …
(Reading database … 224873 files and directories currently installed.)
Preparing to unpack …/libapparmor1_2.10.95-0ubuntu2.9_amd64.deb …
Unpacking libapparmor1:amd64 (2.10.95-0ubuntu2.9) over (2.10.95-0ubuntu2.8) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
Setting up libapparmor1:amd64 (2.10.95-0ubuntu2.9) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
(Reading database … 224873 files and directories currently installed.)
Preparing to unpack …/libssl1.0.0_1.0.2g-1ubuntu4.12_amd64.deb …
Unpacking libssl1.0.0:amd64 (1.0.2g-1ubuntu4.12) over (1.0.2g-1ubuntu4.10) …
Preparing to unpack …/apache2_2.4.18-2ubuntu3.8_amd64.deb …
Unpacking apache2 (2.4.18-2ubuntu3.8) over (2.4.18-2ubuntu3) …
Preparing to unpack …/apache2-bin_2.4.18-2ubuntu3.8_amd64.deb …
Unpacking apache2-bin (2.4.18-2ubuntu3.8) over (2.4.18-2ubuntu3) …
Preparing to unpack …/apache2-utils_2.4.18-2ubuntu3.8_amd64.deb …
Unpacking apache2-utils (2.4.18-2ubuntu3.8) over (2.4.18-2ubuntu3) …
Preparing to unpack …/apache2-data_2.4.18-2ubuntu3.8_all.deb …
Unpacking apache2-data (2.4.18-2ubuntu3.8) over (2.4.18-2ubuntu3) …
Preparing to unpack …/libavahi-common-data_0.6.32~rc+dfsg-1ubuntu2.2_amd64.deb …
Unpacking libavahi-common-data:amd64 (0.6.32~rc+dfsg-1ubuntu2.2) over (0.6.32~rc+dfsg-1ubuntu2) …
Preparing to unpack …/libavahi-common3_0.6.32~rc+dfsg-1ubuntu2.2_amd64.deb …
Unpacking libavahi-common3:amd64 (0.6.32~rc+dfsg-1ubuntu2.2) over (0.6.32~rc+dfsg-1ubuntu2) …
Preparing to unpack …/libavahi-client3_0.6.32~rc+dfsg-1ubuntu2.2_amd64.deb …
Unpacking libavahi-client3:amd64 (0.6.32~rc+dfsg-1ubuntu2.2) over (0.6.32~rc+dfsg-1ubuntu2) …
Preparing to unpack …/libavahi-glib1_0.6.32~rc+dfsg-1ubuntu2.2_amd64.deb …
Unpacking libavahi-glib1:amd64 (0.6.32~rc+dfsg-1ubuntu2.2) over (0.6.32~rc+dfsg-1ubuntu2) …
Preparing to unpack …/cups-core-drivers_2.1.3-4ubuntu0.4_amd64.deb …
Unpacking cups-core-drivers (2.1.3-4ubuntu0.4) over (2.1.3-4ubuntu0.3) …
Preparing to unpack …/cups-server-common_2.1.3-4ubuntu0.4_all.deb …
Unpacking cups-server-common (2.1.3-4ubuntu0.4) over (2.1.3-4ubuntu0.3) …
Preparing to unpack …/cups-common_2.1.3-4ubuntu0.4_all.deb …
Unpacking cups-common (2.1.3-4ubuntu0.4) over (2.1.3-4ubuntu0.3) …
Preparing to unpack …/libcupscgi1_2.1.3-4ubuntu0.4_amd64.deb …
Unpacking libcupscgi1:amd64 (2.1.3-4ubuntu0.4) over (2.1.3-4ubuntu0.3) …
Preparing to unpack …/cups-client_2.1.3-4ubuntu0.4_amd64.deb …
Unpacking cups-client (2.1.3-4ubuntu0.4) over (2.1.3-4ubuntu0.3) …
Preparing to unpack …/libcupsimage2_2.1.3-4ubuntu0.4_amd64.deb …
Unpacking libcupsimage2:amd64 (2.1.3-4ubuntu0.4) over (2.1.3-4ubuntu0.3) …
Preparing to unpack …/libcupsppdc1_2.1.3-4ubuntu0.4_amd64.deb …
Unpacking libcupsppdc1:amd64 (2.1.3-4ubuntu0.4) over (2.1.3-4ubuntu0.3) …
Preparing to unpack …/cups-browsed_1.8.3-2ubuntu3.4_amd64.deb …
Unpacking cups-browsed (1.8.3-2ubuntu3.4) over (1.8.3-2ubuntu3.1) …
Preparing to unpack …/cups-daemon_2.1.3-4ubuntu0.4_amd64.deb …
Warning: Stopping cups.service, but it can still be activated by:
cups.socket
Unpacking cups-daemon (2.1.3-4ubuntu0.4) over (2.1.3-4ubuntu0.3) …
Preparing to unpack …/libcupsmime1_2.1.3-4ubuntu0.4_amd64.deb …
Unpacking libcupsmime1:amd64 (2.1.3-4ubuntu0.4) over (2.1.3-4ubuntu0.3) …
Preparing to unpack …/libcups2_2.1.3-4ubuntu0.4_amd64.deb …
Unpacking libcups2:amd64 (2.1.3-4ubuntu0.4) over (2.1.3-4ubuntu0.3) …
Preparing to unpack …/cups_2.1.3-4ubuntu0.4_amd64.deb …
Unpacking cups (2.1.3-4ubuntu0.4) over (2.1.3-4ubuntu0.3) …
Preparing to unpack …/cups-bsd_2.1.3-4ubuntu0.4_amd64.deb …
Unpacking cups-bsd (2.1.3-4ubuntu0.4) over (2.1.3-4ubuntu0.3) …
Preparing to unpack …/libtiff5_4.0.6-1ubuntu0.4_amd64.deb …
Unpacking libtiff5:amd64 (4.0.6-1ubuntu0.4) over (4.0.6-1ubuntu0.2) …
Preparing to unpack …/libcupsfilters1_1.8.3-2ubuntu3.4_amd64.deb …
Unpacking libcupsfilters1:amd64 (1.8.3-2ubuntu3.4) over (1.8.3-2ubuntu3.1) …
Preparing to unpack …/libpoppler58_0.41.0-0ubuntu1.7_amd64.deb …
Unpacking libpoppler58:amd64 (0.41.0-0ubuntu1.7) over (0.41.0-0ubuntu1.6) …
Preparing to unpack …/poppler-utils_0.41.0-0ubuntu1.7_amd64.deb …
Unpacking poppler-utils (0.41.0-0ubuntu1.7) over (0.41.0-0ubuntu1.6) …
Preparing to unpack …/ghostscript_9.18~dfsg~0-0ubuntu2.8_amd64.deb …
Unpacking ghostscript (9.18~dfsg~0-0ubuntu2.8) over (9.18~dfsg~0-0ubuntu2.7) …
Preparing to unpack …/ghostscript-x_9.18~dfsg~0-0ubuntu2.8_amd64.deb …
Unpacking ghostscript-x (9.18~dfsg~0-0ubuntu2.8) over (9.18~dfsg~0-0ubuntu2.7) …
Preparing to unpack …/libgs9-common_9.18~dfsg~0-0ubuntu2.8_all.deb …
Unpacking libgs9-common (9.18~dfsg~0-0ubuntu2.8) over (9.18~dfsg~0-0ubuntu2.7) …
Preparing to unpack …/libgs9_9.18~dfsg~0-0ubuntu2.8_amd64.deb …
Unpacking libgs9:amd64 (9.18~dfsg~0-0ubuntu2.8) over (9.18~dfsg~0-0ubuntu2.7) …
Preparing to unpack …/cups-ppdc_2.1.3-4ubuntu0.4_amd64.deb …
Unpacking cups-ppdc (2.1.3-4ubuntu0.4) over (2.1.3-4ubuntu0.3) …
Preparing to unpack …/libicu55_55.1-7ubuntu0.4_amd64.deb …
Unpacking libicu55:amd64 (55.1-7ubuntu0.4) over (55.1-7ubuntu0.3) …
Preparing to unpack …/libreoffice-calc_1%3a5.1.6~rc2-0ubuntu1~xenial3_amd64.deb …
Unpacking libreoffice-calc (1:5.1.6~rc2-0ubuntu1~xenial3) over (1:5.1.6~rc2-0ubuntu1~xenial2) …
Preparing to unpack …/libreoffice-gnome_1%3a5.1.6~rc2-0ubuntu1~xenial3_amd64.deb …
Unpacking libreoffice-gnome (1:5.1.6~rc2-0ubuntu1~xenial3) over (1:5.1.6~rc2-0ubuntu1~xenial2) …
Preparing to unpack …/libreoffice-gtk_1%3a5.1.6~rc2-0ubuntu1~xenial3_amd64.deb …
Unpacking libreoffice-gtk (1:5.1.6~rc2-0ubuntu1~xenial3) over (1:5.1.6~rc2-0ubuntu1~xenial2) …
Preparing to unpack …/libreoffice-writer_1%3a5.1.6~rc2-0ubuntu1~xenial3_amd64.deb …
Unpacking libreoffice-writer (1:5.1.6~rc2-0ubuntu1~xenial3) over (1:5.1.6~rc2-0ubuntu1~xenial2) …
Preparing to unpack …/libreoffice-style-galaxy_1%3a5.1.6~rc2-0ubuntu1~xenial3_all.deb …
Unpacking libreoffice-style-galaxy (1:5.1.6~rc2-0ubuntu1~xenial3) over (1:5.1.6~rc2-0ubuntu1~xenial2) …
Preparing to unpack …/uno-libs3_5.1.6~rc2-0ubuntu1~xenial3_amd64.deb …
Unpacking uno-libs3 (5.1.6~rc2-0ubuntu1~xenial3) over (5.1.6~rc2-0ubuntu1~xenial2) …
Preparing to unpack …/libreoffice-ogltrans_1%3a5.1.6~rc2-0ubuntu1~xenial3_amd64.deb …
Unpacking libreoffice-ogltrans (1:5.1.6~rc2-0ubuntu1~xenial3) over (1:5.1.6~rc2-0ubuntu1~xenial2) …
Preparing to unpack …/ure_5.1.6~rc2-0ubuntu1~xenial3_amd64.deb …
Unpacking ure (5.1.6~rc2-0ubuntu1~xenial3) over (5.1.6~rc2-0ubuntu1~xenial2) …
Preparing to unpack …/libreoffice-style-breeze_1%3a5.1.6~rc2-0ubuntu1~xenial3_all.deb …
Unpacking libreoffice-style-breeze (1:5.1.6~rc2-0ubuntu1~xenial3) over (1:5.1.6~rc2-0ubuntu1~xenial2) …
Preparing to unpack …/libreoffice-common_1%3a5.1.6~rc2-0ubuntu1~xenial3_all.deb …
Unpacking libreoffice-common (1:5.1.6~rc2-0ubuntu1~xenial3) over (1:5.1.6~rc2-0ubuntu1~xenial2) …
Preparing to unpack …/libreoffice-pdfimport_1%3a5.1.6~rc2-0ubuntu1~xenial3_amd64.deb …
Unpacking libreoffice-pdfimport (1:5.1.6~rc2-0ubuntu1~xenial3) over (1:5.1.6~rc2-0ubuntu1~xenial2) …
Preparing to unpack …/python3-uno_1%3a5.1.6~rc2-0ubuntu1~xenial3_amd64.deb …
Unpacking python3-uno (1:5.1.6~rc2-0ubuntu1~xenial3) over (1:5.1.6~rc2-0ubuntu1~xenial2) …
Preparing to unpack …/libreoffice-base-core_1%3a5.1.6~rc2-0ubuntu1~xenial3_amd64.deb …
Unpacking libreoffice-base-core (1:5.1.6~rc2-0ubuntu1~xenial3) over (1:5.1.6~rc2-0ubuntu1~xenial2) …
Preparing to unpack …/libreoffice-math_1%3a5.1.6~rc2-0ubuntu1~xenial3_amd64.deb …
Unpacking libreoffice-math (1:5.1.6~rc2-0ubuntu1~xenial3) over (1:5.1.6~rc2-0ubuntu1~xenial2) …
Preparing to unpack …/libreoffice-avmedia-backend-gstreamer_1%3a5.1.6~rc2-0ubuntu1~xenial3_amd64.deb …
Unpacking libreoffice-avmedia-backend-gstreamer (1:5.1.6~rc2-0ubuntu1~xenial3) over (1:5.1.6~rc2-0ubuntu1~xenial2) …
Preparing to unpack …/libreoffice-draw_1%3a5.1.6~rc2-0ubuntu1~xenial3_amd64.deb …
Unpacking libreoffice-draw (1:5.1.6~rc2-0ubuntu1~xenial3) over (1:5.1.6~rc2-0ubuntu1~xenial2) …
Preparing to unpack …/libreoffice-impress_1%3a5.1.6~rc2-0ubuntu1~xenial3_amd64.deb …
Unpacking libreoffice-impress (1:5.1.6~rc2-0ubuntu1~xenial3) over (1:5.1.6~rc2-0ubuntu1~xenial2) …
Preparing to unpack …/libreoffice-core_1%3a5.1.6~rc2-0ubuntu1~xenial3_amd64.deb …
Unpacking libreoffice-core (1:5.1.6~rc2-0ubuntu1~xenial3) over (1:5.1.6~rc2-0ubuntu1~xenial2) …
Preparing to unpack …/fonts-opensymbol_2%3a102.7+LibO5.1.6~rc2-0ubuntu1~xenial3_all.deb …
Unpacking fonts-opensymbol (2:102.7+LibO5.1.6~rc2-0ubuntu1~xenial3) over (2:102.7+LibO5.1.6~rc2-0ubuntu1~xenial2) …
Preparing to unpack …/curl_7.47.0-1ubuntu2.8_amd64.deb …
Unpacking curl (7.47.0-1ubuntu2.8) over (7.47.0-1ubuntu2.6) …
Preparing to unpack …/libcurl3-gnutls_7.47.0-1ubuntu2.8_amd64.deb …
Unpacking libcurl3-gnutls:amd64 (7.47.0-1ubuntu2.8) over (7.47.0-1ubuntu2.6) …
Preparing to unpack …/samba-vfs-modules_2%3a4.3.11+dfsg-0ubuntu0.16.04.13_amd64.deb …
Unpacking samba-vfs-modules (2:4.3.11+dfsg-0ubuntu0.16.04.13) over (2:4.3.11+dfsg-0ubuntu0.16.04.12) …
Preparing to unpack …/samba-dsdb-modules_2%3a4.3.11+dfsg-0ubuntu0.16.04.13_amd64.deb …
Unpacking samba-dsdb-modules (2:4.3.11+dfsg-0ubuntu0.16.04.13) over (2:4.3.11+dfsg-0ubuntu0.16.04.12) …
Preparing to unpack …/python-all-dev_2.7.12-1~16.04_amd64.deb …
Unpacking python-all-dev (2.7.12-1~16.04) over (2.7.11-1) …
Preparing to unpack …/python-dev_2.7.12-1~16.04_amd64.deb …
Unpacking python-dev (2.7.12-1~16.04) over (2.7.11-1) …
Preparing to unpack …/python-all_2.7.12-1~16.04_amd64.deb …
Unpacking python-all (2.7.12-1~16.04) over (2.7.11-1) …
Preparing to unpack …/python-minimal_2.7.12-1~16.04_amd64.deb …
Unpacking python-minimal (2.7.12-1~16.04) over (2.7.11-1) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
Processing triggers for man-db (2.7.5-1) …
Processing triggers for ufw (0.35-0ubuntu2) …
Processing triggers for systemd (229-4ubuntu21.2) …
Processing triggers for ureadahead (0.100.0-19) …
Processing triggers for doc-base (0.10.7) …
Processing 1 changed doc-base file…
Registering documents with scrollkeeper…
Processing triggers for mime-support (3.59ubuntu1) …
Processing triggers for gnome-menus (3.13.3-6ubuntu3.1) …
Processing triggers for desktop-file-utils (0.22-1ubuntu5.1) …
Processing triggers for bamfdaemon (0.5.3~bzr0+16.04.20160824-0ubuntu1) …
Rebuilding /usr/share/applications/bamf-2.index…
Processing triggers for hicolor-icon-theme (0.15-0ubuntu1) …
Processing triggers for shared-mime-info (1.5-2ubuntu0.1) …
Processing triggers for fontconfig (2.11.94-0ubuntu1.1) …
Setting up python-minimal (2.7.12-1~16.04) …
(Reading database … 224873 files and directories currently installed.)
Preparing to unpack …/python_2.7.12-1~16.04_amd64.deb …
Unpacking python (2.7.12-1~16.04) over (2.7.11-1) …
Preparing to unpack …/libpython-all-dev_2.7.12-1~16.04_amd64.deb …
Unpacking libpython-all-dev:amd64 (2.7.12-1~16.04) over (2.7.11-1) …
Preparing to unpack …/libpython-dev_2.7.12-1~16.04_amd64.deb …
Unpacking libpython-dev:amd64 (2.7.12-1~16.04) over (2.7.11-1) …
Preparing to unpack …/libpython-stdlib_2.7.12-1~16.04_amd64.deb …
Unpacking libpython-stdlib:amd64 (2.7.12-1~16.04) over (2.7.11-1) …
Preparing to unpack …/python-crypto_2.6.1-6ubuntu0.16.04.3_amd64.deb …
Unpacking python-crypto (2.6.1-6ubuntu0.16.04.3) over (2.6.1-6ubuntu0.16.04.2) …
Preparing to unpack …/python-samba_2%3a4.3.11+dfsg-0ubuntu0.16.04.13_amd64.deb …
Unpacking python-samba (2:4.3.11+dfsg-0ubuntu0.16.04.13) over (2:4.3.11+dfsg-0ubuntu0.16.04.12) …
Preparing to unpack …/samba-common-bin_2%3a4.3.11+dfsg-0ubuntu0.16.04.13_amd64.deb …
Unpacking samba-common-bin (2:4.3.11+dfsg-0ubuntu0.16.04.13) over (2:4.3.11+dfsg-0ubuntu0.16.04.12) …
Preparing to unpack …/libsmbclient_2%3a4.3.11+dfsg-0ubuntu0.16.04.13_amd64.deb …
Unpacking libsmbclient:amd64 (2:4.3.11+dfsg-0ubuntu0.16.04.13) over (2:4.3.11+dfsg-0ubuntu0.16.04.12) …
Preparing to unpack …/samba-libs_2%3a4.3.11+dfsg-0ubuntu0.16.04.13_amd64.deb …
Unpacking samba-libs:amd64 (2:4.3.11+dfsg-0ubuntu0.16.04.13) over (2:4.3.11+dfsg-0ubuntu0.16.04.12) …
Preparing to unpack …/libwbclient0_2%3a4.3.11+dfsg-0ubuntu0.16.04.13_amd64.deb …
Unpacking libwbclient0:amd64 (2:4.3.11+dfsg-0ubuntu0.16.04.13) over (2:4.3.11+dfsg-0ubuntu0.16.04.12) …
Preparing to unpack …/samba_2%3a4.3.11+dfsg-0ubuntu0.16.04.13_amd64.deb …
Unpacking samba (2:4.3.11+dfsg-0ubuntu0.16.04.13) over (2:4.3.11+dfsg-0ubuntu0.16.04.12) …
Preparing to unpack …/samba-common_2%3a4.3.11+dfsg-0ubuntu0.16.04.13_all.deb …
Unpacking samba-common (2:4.3.11+dfsg-0ubuntu0.16.04.13) over (2:4.3.11+dfsg-0ubuntu0.16.04.12) …
Preparing to unpack …/pciutils_1%3a3.3.1-1.1ubuntu1.2_amd64.deb …
Unpacking pciutils (1:3.3.1-1.1ubuntu1.2) over (1:3.3.1-1.1ubuntu1.1) …
Preparing to unpack …/libpci3_1%3a3.3.1-1.1ubuntu1.2_amd64.deb …
Unpacking libpci3:amd64 (1:3.3.1-1.1ubuntu1.2) over (1:3.3.1-1.1ubuntu1.1) …
Preparing to unpack …/python-apt-common_1.1.0~beta1ubuntu0.16.04.1_all.deb …
Unpacking python-apt-common (1.1.0~beta1ubuntu0.16.04.1) over (1.1.0~beta1build1) …
Preparing to unpack …/python3-apt_1.1.0~beta1ubuntu0.16.04.1_amd64.deb …
Unpacking python3-apt (1.1.0~beta1ubuntu0.16.04.1) over (1.1.0~beta1build1) …
Preparing to unpack …/ubuntu-drivers-common_1%3a0.4.17.7_amd64.deb …
Unpacking ubuntu-drivers-common (1:0.4.17.7) over (1:0.4.17.3) …
Preparing to unpack …/ubuntu-release-upgrader-gtk_1%3a16.04.25_all.deb …
Unpacking ubuntu-release-upgrader-gtk (1:16.04.25) over (1:16.04.23) …
Preparing to unpack …/ubuntu-release-upgrader-core_1%3a16.04.25_all.deb …
Unpacking ubuntu-release-upgrader-core (1:16.04.25) over (1:16.04.23) …
Preparing to unpack …/python-apt_1.1.0~beta1ubuntu0.16.04.1_amd64.deb …
Unpacking python-apt (1.1.0~beta1ubuntu0.16.04.1) over (1.1.0~beta1build1) …
Preparing to unpack …/update-manager_1%3a16.04.13_all.deb …
Unpacking update-manager (1:16.04.13) over (1:16.04.12) …
Preparing to unpack …/python3-distupgrade_1%3a16.04.25_all.deb …
Unpacking python3-distupgrade (1:16.04.25) over (1:16.04.23) …
Preparing to unpack …/python3-update-manager_1%3a16.04.13_all.deb …
Unpacking python3-update-manager (1:16.04.13) over (1:16.04.12) …
Preparing to unpack …/update-manager-core_1%3a16.04.13_all.deb …
Unpacking update-manager-core (1:16.04.13) over (1:16.04.12) …
Preparing to unpack …/update-notifier_3.168.8_amd64.deb …
Unpacking update-notifier (3.168.8) over (3.168.7) …
Preparing to unpack …/libdpkg-perl_1.18.4ubuntu1.4_all.deb …
Unpacking libdpkg-perl (1.18.4ubuntu1.4) over (1.18.4ubuntu1.3) …
Preparing to unpack …/dpkg-dev_1.18.4ubuntu1.4_all.deb …
Unpacking dpkg-dev (1.18.4ubuntu1.4) over (1.18.4ubuntu1.3) …
Preparing to unpack …/patch_2.7.5-1ubuntu0.16.04.1_amd64.deb …
Unpacking patch (2.7.5-1ubuntu0.16.04.1) over (2.7.5-1) …
Preparing to unpack …/update-notifier-common_3.168.8_all.deb …
Unpacking update-notifier-common (3.168.8) over (3.168.7) …
Preparing to unpack …/libgcrypt20_1.6.5-2ubuntu0.4_amd64.deb …
Unpacking libgcrypt20:amd64 (1.6.5-2ubuntu0.4) over (1.6.5-2ubuntu0.3) …
Processing triggers for doc-base (0.10.7) …
Processing 1 changed doc-base file…
Registering documents with scrollkeeper…
Processing triggers for man-db (2.7.5-1) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
Processing triggers for ufw (0.35-0ubuntu2) …
Processing triggers for ureadahead (0.100.0-19) …
Processing triggers for libglib2.0-0:amd64 (2.48.2-0ubuntu1) …
Processing triggers for gnome-menus (3.13.3-6ubuntu3.1) …
Processing triggers for desktop-file-utils (0.22-1ubuntu5.1) …
Processing triggers for bamfdaemon (0.5.3~bzr0+16.04.20160824-0ubuntu1) …
Rebuilding /usr/share/applications/bamf-2.index…
Processing triggers for mime-support (3.59ubuntu1) …
Processing triggers for gconf2 (3.2.6-3ubuntu6) …
Processing triggers for hicolor-icon-theme (0.15-0ubuntu1) …
Setting up libgcrypt20:amd64 (1.6.5-2ubuntu0.4) …
Processing triggers for systemd (229-4ubuntu21.2) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
(Reading database … 224872 files and directories currently installed.)
Preparing to unpack …/sensible-utils_0.0.9ubuntu0.16.04.1_all.deb …
Unpacking sensible-utils (0.0.9ubuntu0.16.04.1) over (0.0.9) …
Processing triggers for mime-support (3.59ubuntu1) …
Processing triggers for man-db (2.7.5-1) …
Setting up sensible-utils (0.0.9ubuntu0.16.04.1) …
(Reading database … 224872 files and directories currently installed.)
Preparing to unpack …/distro-info-data_0.28ubuntu0.8_all.deb …
Unpacking distro-info-data (0.28ubuntu0.8) over (0.28ubuntu0.7) …
Preparing to unpack …/isc-dhcp-client_4.3.3-5ubuntu12.10_amd64.deb …
Unpacking isc-dhcp-client (4.3.3-5ubuntu12.10) over (4.3.3-5ubuntu12.7) …
Preparing to unpack …/isc-dhcp-common_4.3.3-5ubuntu12.10_amd64.deb …
Unpacking isc-dhcp-common (4.3.3-5ubuntu12.10) over (4.3.3-5ubuntu12.7) …
Preparing to unpack …/libapparmor-perl_2.10.95-0ubuntu2.9_amd64.deb …
Unpacking libapparmor-perl (2.10.95-0ubuntu2.9) over (2.10.95-0ubuntu2.8) …
Preparing to unpack …/apparmor_2.10.95-0ubuntu2.9_amd64.deb …
Unpacking apparmor (2.10.95-0ubuntu2.9) over (2.10.95-0ubuntu2.8) …
Preparing to unpack …/apt-transport-https_1.2.26_amd64.deb …
Unpacking apt-transport-https (1.2.26) over (1.2.25) …
Preparing to unpack …/hdparm_9.48+ds-1ubuntu0.1_amd64.deb …
Unpacking hdparm (9.48+ds-1ubuntu0.1) over (9.48+ds-1) …
Preparing to unpack …/libnuma1_2.0.11-1ubuntu1.1_amd64.deb …
Unpacking libnuma1:amd64 (2.0.11-1ubuntu1.1) over (2.0.11-1ubuntu1) …
Preparing to unpack …/libplymouth4_0.9.2-3ubuntu13.5_amd64.deb …
Unpacking libplymouth4:amd64 (0.9.2-3ubuntu13.5) over (0.9.2-3ubuntu13.2) …
Preparing to unpack …/lshw_02.17-1.1ubuntu3.5_amd64.deb …
Unpacking lshw (02.17-1.1ubuntu3.5) over (02.17-1.1ubuntu3.4) …
Preparing to unpack …/openssh-sftp-server_1%3a7.2p2-4ubuntu2.4_amd64.deb …
Unpacking openssh-sftp-server (1:7.2p2-4ubuntu2.4) over (1:7.2p2-4) …
Preparing to unpack …/openssh-server_1%3a7.2p2-4ubuntu2.4_amd64.deb …
Unpacking openssh-server (1:7.2p2-4ubuntu2.4) over (1:7.2p2-4) …
Preparing to unpack …/openssh-client_1%3a7.2p2-4ubuntu2.4_amd64.deb …
Unpacking openssh-client (1:7.2p2-4ubuntu2.4) over (1:7.2p2-4) …
Preparing to unpack …/openssl_1.0.2g-1ubuntu4.12_amd64.deb …
Unpacking openssl (1.0.2g-1ubuntu4.12) over (1.0.2g-1ubuntu4.10) …
Preparing to unpack …/plymouth-theme-ubuntu-text_0.9.2-3ubuntu13.5_amd64.deb …
Unpacking plymouth-theme-ubuntu-text (0.9.2-3ubuntu13.5) over (0.9.2-3ubuntu13.2) …
Preparing to unpack …/plymouth_0.9.2-3ubuntu13.5_amd64.deb …
Unpacking plymouth (0.9.2-3ubuntu13.5) over (0.9.2-3ubuntu13.2) …
Preparing to unpack …/plymouth-theme-ubuntu-logo_0.9.2-3ubuntu13.5_amd64.deb …
Unpacking plymouth-theme-ubuntu-logo (0.9.2-3ubuntu13.5) over (0.9.2-3ubuntu13.2) …
Preparing to unpack …/plymouth-label_0.9.2-3ubuntu13.5_amd64.deb …
Unpacking plymouth-label (0.9.2-3ubuntu13.5) over (0.9.2-3ubuntu13.2) …
Preparing to unpack …/wget_1.17.1-1ubuntu1.4_amd64.deb …
Unpacking wget (1.17.1-1ubuntu1.4) over (1.17.1-1ubuntu1.3) …
Preparing to unpack …/xdg-user-dirs_0.15-2ubuntu6.16.04.1_amd64.deb …
Unpacking xdg-user-dirs (0.15-2ubuntu6.16.04.1) over (0.15-2ubuntu6) …
Preparing to unpack …/python-paramiko_1.16.0-1ubuntu0.1_all.deb …
Unpacking python-paramiko (1.16.0-1ubuntu0.1) over (1.16.0-1) …
Preparing to unpack …/ansible_2.5.4-1ppa~xenial_all.deb …
Unpacking ansible (2.5.4-1ppa~xenial) over (2.5.0-1ppa~xenial) …
Preparing to unpack …/python3-problem-report_2.20.1-0ubuntu2.18_all.deb …
Unpacking python3-problem-report (2.20.1-0ubuntu2.18) over (2.20.1-0ubuntu2.15) …
Preparing to unpack …/python3-apport_2.20.1-0ubuntu2.18_all.deb …
Unpacking python3-apport (2.20.1-0ubuntu2.18) over (2.20.1-0ubuntu2.15) …
Preparing to unpack …/apport_2.20.1-0ubuntu2.18_all.deb …
Unpacking apport (2.20.1-0ubuntu2.18) over (2.20.1-0ubuntu2.15) …
Preparing to unpack …/apport-gtk_2.20.1-0ubuntu2.18_all.deb …
Unpacking apport-gtk (2.20.1-0ubuntu2.18) over (2.20.1-0ubuntu2.15) …
Preparing to unpack …/avahi-autoipd_0.6.32~rc+dfsg-1ubuntu2.2_amd64.deb …
Unpacking avahi-autoipd (0.6.32~rc+dfsg-1ubuntu2.2) over (0.6.32~rc+dfsg-1ubuntu2) …
Preparing to unpack …/pulseaudio-module-bluetooth_1%3a8.0-0ubuntu3.10_amd64.deb …
Unpacking pulseaudio-module-bluetooth (1:8.0-0ubuntu3.10) over (1:8.0-0ubuntu3.7) …
Preparing to unpack …/libpulsedsp_1%3a8.0-0ubuntu3.10_amd64.deb …
Unpacking libpulsedsp:amd64 (1:8.0-0ubuntu3.10) over (1:8.0-0ubuntu3.7) …
Preparing to unpack …/pulseaudio-utils_1%3a8.0-0ubuntu3.10_amd64.deb …
Unpacking pulseaudio-utils (1:8.0-0ubuntu3.10) over (1:8.0-0ubuntu3.7) …
Preparing to unpack …/libpulse-mainloop-glib0_1%3a8.0-0ubuntu3.10_amd64.deb …
Unpacking libpulse-mainloop-glib0:amd64 (1:8.0-0ubuntu3.10) over (1:8.0-0ubuntu3.7) …
Preparing to unpack …/pulseaudio-module-x11_1%3a8.0-0ubuntu3.10_amd64.deb …
Unpacking pulseaudio-module-x11 (1:8.0-0ubuntu3.10) over (1:8.0-0ubuntu3.7) …
Preparing to unpack …/pulseaudio_1%3a8.0-0ubuntu3.10_amd64.deb …
Unpacking pulseaudio (1:8.0-0ubuntu3.10) over (1:8.0-0ubuntu3.7) …
Preparing to unpack …/libpulse0_1%3a8.0-0ubuntu3.10_amd64.deb …
Unpacking libpulse0:amd64 (1:8.0-0ubuntu3.10) over (1:8.0-0ubuntu3.7) …
Preparing to unpack …/libavahi-core7_0.6.32~rc+dfsg-1ubuntu2.2_amd64.deb …
Unpacking libavahi-core7:amd64 (0.6.32~rc+dfsg-1ubuntu2.2) over (0.6.32~rc+dfsg-1ubuntu2) …
Preparing to unpack …/avahi-daemon_0.6.32~rc+dfsg-1ubuntu2.2_amd64.deb …
Unpacking avahi-daemon (0.6.32~rc+dfsg-1ubuntu2.2) over (0.6.32~rc+dfsg-1ubuntu2) …
Preparing to unpack …/avahi-utils_0.6.32~rc+dfsg-1ubuntu2.2_amd64.deb …
Unpacking avahi-utils (0.6.32~rc+dfsg-1ubuntu2.2) over (0.6.32~rc+dfsg-1ubuntu2) …
Preparing to unpack …/bamfdaemon_0.5.3~bzr0+16.04.20180209-0ubuntu1_amd64.deb …
Unpacking bamfdaemon (0.5.3~bzr0+16.04.20180209-0ubuntu1) over (0.5.3~bzr0+16.04.20160824-0ubuntu1) …
Preparing to unpack …/libbamf3-2_0.5.3~bzr0+16.04.20180209-0ubuntu1_amd64.deb …
Unpacking libbamf3-2:amd64 (0.5.3~bzr0+16.04.20180209-0ubuntu1) over (0.5.3~bzr0+16.04.20160824-0ubuntu1) …
Preparing to unpack …/openjdk-8-jre-headless_8u171-b11-0ubuntu0.16.04.1_amd64.deb …
Unpacking openjdk-8-jre-headless:amd64 (8u171-b11-0ubuntu0.16.04.1) over (8u77-b03-3ubuntu3) …
Preparing to unpack …/ca-certificates-java_20160321ubuntu1_all.deb …
Unpacking ca-certificates-java (20160321ubuntu1) over (20160321) …
Preparing to unpack …/libcompizconfig0_1%3a0.9.12.3+16.04.20180221-0ubuntu1_amd64.deb …
Unpacking libcompizconfig0:amd64 (1:0.9.12.3+16.04.20180221-0ubuntu1) over (1:0.9.12.3+16.04.20171116-0ubuntu1) …
Preparing to unpack …/compiz-gnome_1%3a0.9.12.3+16.04.20180221-0ubuntu1_amd64.deb …
Unpacking compiz-gnome (1:0.9.12.3+16.04.20180221-0ubuntu1) over (1:0.9.12.3+16.04.20171116-0ubuntu1) …
Preparing to unpack …/compiz-plugins-default_1%3a0.9.12.3+16.04.20180221-0ubuntu1_amd64.deb …
Unpacking compiz-plugins-default:amd64 (1:0.9.12.3+16.04.20180221-0ubuntu1) over (1:0.9.12.3+16.04.20171116-0ubuntu1) …
Preparing to unpack …/libdecoration0_1%3a0.9.12.3+16.04.20180221-0ubuntu1_amd64.deb …
Unpacking libdecoration0:amd64 (1:0.9.12.3+16.04.20180221-0ubuntu1) over (1:0.9.12.3+16.04.20171116-0ubuntu1) …
Preparing to unpack …/unity_7.4.5+16.04.20180221-0ubuntu1_amd64.deb …
Unpacking unity (7.4.5+16.04.20180221-0ubuntu1) over (7.4.5+16.04.20171201.3) …
Preparing to unpack …/libunity-protocol-private0_7.1.4+16.04.20180209.1-0ubuntu1_amd64.deb …
Unpacking libunity-protocol-private0:amd64 (7.1.4+16.04.20180209.1-0ubuntu1) over (7.1.4+16.04.20160701-0ubuntu1) …
Preparing to unpack …/libunity9_7.1.4+16.04.20180209.1-0ubuntu1_amd64.deb …
Unpacking libunity9:amd64 (7.1.4+16.04.20180209.1-0ubuntu1) over (7.1.4+16.04.20160701-0ubuntu1) …
Preparing to unpack …/libunity-core-6.0-9_7.4.5+16.04.20180221-0ubuntu1_amd64.deb …
Unpacking libunity-core-6.0-9:amd64 (7.4.5+16.04.20180221-0ubuntu1) over (7.4.5+16.04.20171201.3) …
Preparing to unpack …/unity-schemas_7.4.5+16.04.20180221-0ubuntu1_all.deb …
Unpacking unity-schemas (7.4.5+16.04.20180221-0ubuntu1) over (7.4.5+16.04.20171201.3) …
Preparing to unpack …/libunity-scopes-json-def-desktop_7.1.4+16.04.20180209.1-0ubuntu1_all.deb …
Unpacking libunity-scopes-json-def-desktop (7.1.4+16.04.20180209.1-0ubuntu1) over (7.1.4+16.04.20160701-0ubuntu1) …
Preparing to unpack …/unity-services_7.4.5+16.04.20180221-0ubuntu1_amd64.deb …
Unpacking unity-services (7.4.5+16.04.20180221-0ubuntu1) over (7.4.5+16.04.20171201.3) …
Preparing to unpack …/compiz-core_1%3a0.9.12.3+16.04.20180221-0ubuntu1_amd64.deb …
Unpacking compiz-core (1:0.9.12.3+16.04.20180221-0ubuntu1) over (1:0.9.12.3+16.04.20171116-0ubuntu1) …
Preparing to unpack …/compiz_1%3a0.9.12.3+16.04.20180221-0ubuntu1_all.deb …
Unpacking compiz (1:0.9.12.3+16.04.20180221-0ubuntu1) over (1:0.9.12.3+16.04.20171116-0ubuntu1) …
Preparing to unpack …/docker-ce_18.05.0~ce~3-0~ubuntu_amd64.deb …
Warning: Stopping docker.service, but it can still be activated by:
docker.socket
Unpacking docker-ce (18.05.0~ce~3-0~ubuntu) over (17.06.0~ce-0~ubuntu) …
Preparing to unpack …/ebtables_2.0.10.4-3.4ubuntu2.16.04.1_amd64.deb …
Unpacking ebtables (2.0.10.4-3.4ubuntu2.16.04.1) over (2.0.10.4-3.4ubuntu2) …
Preparing to unpack …/firefox_60.0.1+build2-0ubuntu0.16.04.1_amd64.deb …
Unpacking firefox (60.0.1+build2-0ubuntu0.16.04.1) over (58.0.2+build1-0ubuntu0.16.04.1) …
Preparing to unpack …/firefox-locale-en_60.0.1+build2-0ubuntu0.16.04.1_amd64.deb …
Unpacking firefox-locale-en (60.0.1+build2-0ubuntu0.16.04.1) over (58.0.2+build1-0ubuntu0.16.04.1) …
Preparing to unpack …/libdfu1_0.8.3-0ubuntu3_amd64.deb …
Unpacking libdfu1:amd64 (0.8.3-0ubuntu3) over (0.7.0-0ubuntu4.3) …
Preparing to unpack …/libfwupd1_0.8.3-0ubuntu3_amd64.deb …
Unpacking libfwupd1:amd64 (0.8.3-0ubuntu3) over (0.7.0-0ubuntu4.3) …
Preparing to unpack …/fwupd_0.8.3-0ubuntu3_amd64.deb …
Unpacking fwupd (0.8.3-0ubuntu3) over (0.7.0-0ubuntu4.3) …
Preparing to unpack …/libibus-1.0-5_1.5.11-1ubuntu2.1_amd64.deb …
Unpacking libibus-1.0-5:amd64 (1.5.11-1ubuntu2.1) over (1.5.11-1ubuntu2) …
Preparing to unpack …/ibus_1.5.11-1ubuntu2.1_amd64.deb …
Unpacking ibus (1.5.11-1ubuntu2.1) over (1.5.11-1ubuntu2) …
Preparing to unpack …/gir1.2-ibus-1.0_1.5.11-1ubuntu2.1_amd64.deb …
Unpacking gir1.2-ibus-1.0:amd64 (1.5.11-1ubuntu2.1) over (1.5.11-1ubuntu2) …
Preparing to unpack …/gir1.2-unity-5.0_7.1.4+16.04.20180209.1-0ubuntu1_amd64.deb …
Unpacking gir1.2-unity-5.0:amd64 (7.1.4+16.04.20180209.1-0ubuntu1) over (7.1.4+16.04.20160701-0ubuntu1) …
Preparing to unpack …/gnome-accessibility-themes_3.18.0-2ubuntu2_all.deb …
Unpacking gnome-accessibility-themes (3.18.0-2ubuntu2) over (3.18.0-2ubuntu1) …
Preparing to unpack …/ubuntu-software_3.20.5-0ubuntu0.16.04.10_amd64.deb …
Unpacking ubuntu-software (3.20.5-0ubuntu0.16.04.10) over (3.20.5-0ubuntu0.16.04.8) …
Preparing to unpack …/gnome-software_3.20.5-0ubuntu0.16.04.10_amd64.deb …
Unpacking gnome-software (3.20.5-0ubuntu0.16.04.10) over (3.20.5-0ubuntu0.16.04.8) …
Preparing to unpack …/gnome-software-common_3.20.5-0ubuntu0.16.04.10_all.deb …
Unpacking gnome-software-common (3.20.5-0ubuntu0.16.04.10) over (3.20.5-0ubuntu0.16.04.8) …
Preparing to unpack …/ibus-gtk_1.5.11-1ubuntu2.1_amd64.deb …
Unpacking ibus-gtk:amd64 (1.5.11-1ubuntu2.1) over (1.5.11-1ubuntu2) …
Preparing to unpack …/ibus-gtk3_1.5.11-1ubuntu2.1_amd64.deb …
Unpacking ibus-gtk3:amd64 (1.5.11-1ubuntu2.1) over (1.5.11-1ubuntu2) …
Preparing to unpack …/libavahi-ui-gtk3-0_0.6.32~rc+dfsg-1ubuntu2.2_amd64.deb …
Unpacking libavahi-ui-gtk3-0:amd64 (0.6.32~rc+dfsg-1ubuntu2.2) over (0.6.32~rc+dfsg-1ubuntu2) …
Preparing to unpack …/libcurl3_7.47.0-1ubuntu2.8_amd64.deb …
Unpacking libcurl3:amd64 (7.47.0-1ubuntu2.8) over (7.47.0-1ubuntu2.6) …
Preparing to unpack …/libfontembed1_1.8.3-2ubuntu3.4_amd64.deb …
Unpacking libfontembed1:amd64 (1.8.3-2ubuntu3.4) over (1.8.3-2ubuntu3.1) …
Preparing to unpack …/libpoppler-glib8_0.41.0-0ubuntu1.7_amd64.deb …
Unpacking libpoppler-glib8:amd64 (0.41.0-0ubuntu1.7) over (0.41.0-0ubuntu1.6) …
Preparing to unpack …/libraw15_0.17.1-1ubuntu0.3_amd64.deb …
Unpacking libraw15:amd64 (0.17.1-1ubuntu0.3) over (0.17.1-1ubuntu0.1) …
Preparing to unpack …/libsnmp-base_5.7.3+dfsg-1ubuntu4.1_all.deb …
Unpacking libsnmp-base (5.7.3+dfsg-1ubuntu4.1) over (5.7.3+dfsg-1ubuntu4) …
Preparing to unpack …/libsnmp30_5.7.3+dfsg-1ubuntu4.1_amd64.deb …
Unpacking libsnmp30:amd64 (5.7.3+dfsg-1ubuntu4.1) over (5.7.3+dfsg-1ubuntu4) …
Preparing to unpack …/libvncclient1_0.9.10+dfsg-3ubuntu0.16.04.2_amd64.deb …
Unpacking libvncclient1:amd64 (0.9.10+dfsg-3ubuntu0.16.04.2) over (0.9.10+dfsg-3ubuntu0.16.04.1) …
Preparing to unpack …/libvorbisfile3_1.3.5-3ubuntu0.2_amd64.deb …
Unpacking libvorbisfile3:amd64 (1.3.5-3ubuntu0.2) over (1.3.5-3ubuntu0.1) …
Preparing to unpack …/libvorbisenc2_1.3.5-3ubuntu0.2_amd64.deb …
Unpacking libvorbisenc2:amd64 (1.3.5-3ubuntu0.2) over (1.3.5-3ubuntu0.1) …
Preparing to unpack …/libvorbis0a_1.3.5-3ubuntu0.2_amd64.deb …
Unpacking libvorbis0a:amd64 (1.3.5-3ubuntu0.2) over (1.3.5-3ubuntu0.1) …
Preparing to unpack …/libwayland-client0_1.12.0-1~ubuntu16.04.3_amd64.deb …
Unpacking libwayland-client0:amd64 (1.12.0-1~ubuntu16.04.3) over (1.12.0-1~ubuntu16.04.2) …
Preparing to unpack …/libwayland-cursor0_1.12.0-1~ubuntu16.04.3_amd64.deb …
Unpacking libwayland-cursor0:amd64 (1.12.0-1~ubuntu16.04.3) over (1.12.0-1~ubuntu16.04.2) …
Preparing to unpack …/libwayland-server0_1.12.0-1~ubuntu16.04.3_amd64.deb …
Unpacking libwayland-server0:amd64 (1.12.0-1~ubuntu16.04.3) over (1.12.0-1~ubuntu16.04.2) …
Preparing to unpack …/ubuntu-mono_14.04+16.04.20180326-0ubuntu1_all.deb …
Unpacking ubuntu-mono (14.04+16.04.20180326-0ubuntu1) over (14.04+16.04.20171116-0ubuntu1) …
Preparing to unpack …/light-themes_14.04+16.04.20180326-0ubuntu1_all.deb …
Unpacking light-themes (14.04+16.04.20180326-0ubuntu1) over (14.04+16.04.20171116-0ubuntu1) …
Preparing to unpack …/linux-firmware_1.157.19_all.deb …
Unpacking linux-firmware (1.157.19) over (1.157.16) …
Preparing to unpack …/linux-libc-dev_4.4.0-127.153_amd64.deb …
Unpacking linux-libc-dev:amd64 (4.4.0-127.153) over (4.4.0-112.135) …
Preparing to unpack …/python-software-properties_0.96.20.7_all.deb …
Unpacking python-software-properties (0.96.20.7) over (0.96.20) …
Preparing to unpack …/ubuntu-mobile-icons_14.04+16.04.20180326-0ubuntu1_all.deb …
Unpacking ubuntu-mobile-icons (14.04+16.04.20180326-0ubuntu1) over (14.04+16.04.20171116-0ubuntu1) …
Preparing to unpack …/suru-icon-theme_14.04+16.04.20180326-0ubuntu1_all.deb …
Unpacking suru-icon-theme (14.04+16.04.20180326-0ubuntu1) over (14.04+16.04.20171116-0ubuntu1) …
Preparing to unpack …/thunderbird-locale-en_1%3a52.8.0+build1-0ubuntu0.16.04.1_amd64.deb …
Unpacking thunderbird-locale-en (1:52.8.0+build1-0ubuntu0.16.04.1) over (1:52.6.0+build1-0ubuntu0.16.04.1) …
Preparing to unpack …/thunderbird_1%3a52.8.0+build1-0ubuntu0.16.04.1_amd64.deb …
Unpacking thunderbird (1:52.8.0+build1-0ubuntu0.16.04.1) over (1:52.6.0+build1-0ubuntu0.16.04.1) …
Preparing to unpack …/thunderbird-gnome-support_1%3a52.8.0+build1-0ubuntu0.16.04.1_amd64.deb …
Unpacking thunderbird-gnome-support (1:52.8.0+build1-0ubuntu0.16.04.1) over (1:52.6.0+build1-0ubuntu0.16.04.1) …
Preparing to unpack …/thunderbird-locale-en-us_1%3a52.8.0+build1-0ubuntu0.16.04.1_all.deb …
Unpacking thunderbird-locale-en-us (1:52.8.0+build1-0ubuntu0.16.04.1) over (1:52.6.0+build1-0ubuntu0.16.04.1) …
Preparing to unpack …/ubuntu-artwork_1%3a14.04+16.04.20180326-0ubuntu1_all.deb …
Unpacking ubuntu-artwork (1:14.04+16.04.20180326-0ubuntu1) over (1:14.04+16.04.20171116-0ubuntu1) …
Preparing to unpack …/unity-scopes-runner_7.1.4+16.04.20180209.1-0ubuntu1_all.deb …
Unpacking unity-scopes-runner (7.1.4+16.04.20180209.1-0ubuntu1) over (7.1.4+16.04.20160701-0ubuntu1) …
Preparing to unpack …/xdg-utils_1.1.1-1ubuntu1.16.04.3_all.deb …
Unpacking xdg-utils (1.1.1-1ubuntu1.16.04.3) over (1.1.1-1ubuntu1.16.04.1) …
Preparing to unpack …/jenkins_2.107.3_all.deb …
Unpacking jenkins (2.107.3) over (2.107.1) …
Preparing to unpack …/libruby2.3_2.3.1-2~16.04.9_amd64.deb …
Unpacking libruby2.3:amd64 (2.3.1-2~16.04.9) over (2.3.1-2~16.04.6) …
Preparing to unpack …/ruby2.3_2.3.1-2~16.04.9_amd64.deb …
Unpacking ruby2.3 (2.3.1-2~16.04.9) over (2.3.1-2~16.04.6) …
Processing triggers for man-db (2.7.5-1) …
Processing triggers for systemd (229-4ubuntu21.2) …
Processing triggers for ureadahead (0.100.0-19) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
Processing triggers for ufw (0.35-0ubuntu2) …
Processing triggers for install-info (6.1.0.dfsg.1-5) …
Processing triggers for hicolor-icon-theme (0.15-0ubuntu1) …
Processing triggers for gnome-menus (3.13.3-6ubuntu3.1) …
Processing triggers for desktop-file-utils (0.22-1ubuntu5.1) …
Processing triggers for mime-support (3.59ubuntu1) …
Processing triggers for dbus (1.10.6-1ubuntu3.3) …
Processing triggers for libglib2.0-0:amd64 (2.48.2-0ubuntu1) …
Processing triggers for gconf2 (3.2.6-3ubuntu6) …
Setting up perl-modules-5.22 (5.22.1-9ubuntu0.3) …
Setting up libperl5.22:amd64 (5.22.1-9ubuntu0.3) …
Setting up perl (5.22.1-9ubuntu0.3) …
Setting up libquadmath0:amd64 (5.4.0-6ubuntu1~16.04.9) …
Setting up libgomp1:amd64 (5.4.0-6ubuntu1~16.04.9) …
Setting up libitm1:amd64 (5.4.0-6ubuntu1~16.04.9) …
Setting up libatomic1:amd64 (5.4.0-6ubuntu1~16.04.9) …
Setting up libasan2:amd64 (5.4.0-6ubuntu1~16.04.9) …
Setting up liblsan0:amd64 (5.4.0-6ubuntu1~16.04.9) …
Setting up libtsan0:amd64 (5.4.0-6ubuntu1~16.04.9) …
Setting up libubsan0:amd64 (5.4.0-6ubuntu1~16.04.9) …
Setting up libcilkrts5:amd64 (5.4.0-6ubuntu1~16.04.9) …
Setting up libmpx0:amd64 (5.4.0-6ubuntu1~16.04.9) …
Setting up cpp-5 (5.4.0-6ubuntu1~16.04.9) …
Setting up libcc1-0:amd64 (5.4.0-6ubuntu1~16.04.9) …
Setting up libgcc-5-dev:amd64 (5.4.0-6ubuntu1~16.04.9) …
Setting up gcc-5 (5.4.0-6ubuntu1~16.04.9) …
Setting up libstdc++-5-dev:amd64 (5.4.0-6ubuntu1~16.04.9) …
Setting up g++-5 (5.4.0-6ubuntu1~16.04.9) …
Setting up libapt-inst2.0:amd64 (1.2.26) …
Setting up apt-utils (1.2.26) …
Setting up libprocps4:amd64 (2:3.3.10-4ubuntu2.4) …
Setting up procps (2:3.3.10-4ubuntu2.4) …
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
Setting up libpam-systemd:amd64 (229-4ubuntu21.2) …
Setting up ifupdown (0.8.10ubuntu1.4) …
Setting up udev (229-4ubuntu21.2) …
addgroup: The group `input’ already exists as a system group. Exiting.
update-initramfs: deferring update (trigger activated)
Setting up grub-common (2.02~beta2-36ubuntu3.18) …
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
Setting up grub2-common (2.02~beta2-36ubuntu3.18) …
Setting up grub-pc-bin (2.02~beta2-36ubuntu3.18) …
Setting up grub-pc (2.02~beta2-36ubuntu3.18) …
Installing for i386-pc platform.
Installation finished. No error reported.
Generating grub configuration file …
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Found linux image: /boot/vmlinuz-4.10.0-40-generic
Found initrd image: /boot/initrd.img-4.10.0-40-generic
Found linux image: /boot/vmlinuz-4.10.0-28-generic
Found initrd image: /boot/initrd.img-4.10.0-28-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done
Setting up friendly-recovery (0.2.31ubuntu1) …
Generating grub configuration file …
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Found linux image: /boot/vmlinuz-4.10.0-40-generic
Found initrd image: /boot/initrd.img-4.10.0-40-generic
Found linux image: /boot/vmlinuz-4.10.0-28-generic
Found initrd image: /boot/initrd.img-4.10.0-28-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done
Setting up initramfs-tools-bin (0.122ubuntu8.11) …
Setting up initramfs-tools-core (0.122ubuntu8.11) …
Setting up linux-base (4.5ubuntu1~16.04.1) …
Setting up initramfs-tools (0.122ubuntu8.11) …
update-initramfs: deferring update (trigger activated)
Setting up libssl1.0.0:amd64 (1.0.2g-1ubuntu4.12) …
Setting up apache2-bin (2.4.18-2ubuntu3.8) …
Setting up apache2-utils (2.4.18-2ubuntu3.8) …
Setting up apache2-data (2.4.18-2ubuntu3.8) …
Setting up apache2 (2.4.18-2ubuntu3.8) …
Setting up libavahi-common-data:amd64 (0.6.32~rc+dfsg-1ubuntu2.2) …
Setting up libavahi-common3:amd64 (0.6.32~rc+dfsg-1ubuntu2.2) …
Setting up libavahi-client3:amd64 (0.6.32~rc+dfsg-1ubuntu2.2) …
Setting up libavahi-glib1:amd64 (0.6.32~rc+dfsg-1ubuntu2.2) …
Setting up libcups2:amd64 (2.1.3-4ubuntu0.4) …
Setting up libcupsmime1:amd64 (2.1.3-4ubuntu0.4) …
Setting up cups-daemon (2.1.3-4ubuntu0.4) …
Setting up cups-core-drivers (2.1.3-4ubuntu0.4) …
Setting up cups-server-common (2.1.3-4ubuntu0.4) …
Setting up cups-common (2.1.3-4ubuntu0.4) …
Setting up libcupscgi1:amd64 (2.1.3-4ubuntu0.4) …
Setting up libtiff5:amd64 (4.0.6-1ubuntu0.4) …
Setting up libcupsfilters1:amd64 (1.8.3-2ubuntu3.4) …
Setting up libcupsimage2:amd64 (2.1.3-4ubuntu0.4) …
Setting up cups-client (2.1.3-4ubuntu0.4) …
Setting up libcupsppdc1:amd64 (2.1.3-4ubuntu0.4) …
Setting up cups-browsed (1.8.3-2ubuntu3.4) …
Setting up libpoppler58:amd64 (0.41.0-0ubuntu1.7) …
Setting up poppler-utils (0.41.0-0ubuntu1.7) …
Setting up libgs9-common (9.18~dfsg~0-0ubuntu2.8) …
Setting up libgs9:amd64 (9.18~dfsg~0-0ubuntu2.8) …
Setting up ghostscript (9.18~dfsg~0-0ubuntu2.8) …
Setting up cups-ppdc (2.1.3-4ubuntu0.4) …
Setting up cups (2.1.3-4ubuntu0.4) …
Updating PPD files for cups …
Setting up cups-bsd (2.1.3-4ubuntu0.4) …
Setting up ghostscript-x (9.18~dfsg~0-0ubuntu2.8) …
Setting up libicu55:amd64 (55.1-7ubuntu0.4) …
Setting up fonts-opensymbol (2:102.7+LibO5.1.6~rc2-0ubuntu1~xenial3) …
Setting up uno-libs3 (5.1.6~rc2-0ubuntu1~xenial3) …
Setting up ure (5.1.6~rc2-0ubuntu1~xenial3) …
Setting up libcurl3-gnutls:amd64 (7.47.0-1ubuntu2.8) …
Setting up curl (7.47.0-1ubuntu2.8) …
Setting up libwbclient0:amd64 (2:4.3.11+dfsg-0ubuntu0.16.04.13) …
Setting up samba-libs:amd64 (2:4.3.11+dfsg-0ubuntu0.16.04.13) …
Setting up samba-vfs-modules (2:4.3.11+dfsg-0ubuntu0.16.04.13) …
Setting up samba-dsdb-modules (2:4.3.11+dfsg-0ubuntu0.16.04.13) …
Setting up libpython-stdlib:amd64 (2.7.12-1~16.04) …
Setting up python (2.7.12-1~16.04) …
Setting up python-all (2.7.12-1~16.04) …
Setting up libpython-dev:amd64 (2.7.12-1~16.04) …
Setting up libpython-all-dev:amd64 (2.7.12-1~16.04) …
Setting up python-dev (2.7.12-1~16.04) …
Setting up python-all-dev (2.7.12-1~16.04) …
Setting up python-crypto (2.6.1-6ubuntu0.16.04.3) …
Setting up python-samba (2:4.3.11+dfsg-0ubuntu0.16.04.13) …
Setting up samba-common (2:4.3.11+dfsg-0ubuntu0.16.04.13) …
Setting up samba-common-bin (2:4.3.11+dfsg-0ubuntu0.16.04.13) …
Setting up libsmbclient:amd64 (2:4.3.11+dfsg-0ubuntu0.16.04.13) …
Setting up samba (2:4.3.11+dfsg-0ubuntu0.16.04.13) …
Setting up libpci3:amd64 (1:3.3.1-1.1ubuntu1.2) …
Setting up pciutils (1:3.3.1-1.1ubuntu1.2) …
Setting up python-apt-common (1.1.0~beta1ubuntu0.16.04.1) …
Setting up python3-apt (1.1.0~beta1ubuntu0.16.04.1) …
Setting up ubuntu-drivers-common (1:0.4.17.7) …
Setting up patch (2.7.5-1ubuntu0.16.04.1) …
Setting up python-apt (1.1.0~beta1ubuntu0.16.04.1) …
Setting up libdpkg-perl (1.18.4ubuntu1.4) …
Setting up dpkg-dev (1.18.4ubuntu1.4) …
Setting up distro-info-data (0.28ubuntu0.8) …
Setting up isc-dhcp-client (4.3.3-5ubuntu12.10) …
Setting up isc-dhcp-common (4.3.3-5ubuntu12.10) …
Setting up libapparmor-perl (2.10.95-0ubuntu2.9) …
Setting up apparmor (2.10.95-0ubuntu2.9) …
Installing new version of config file /etc/apparmor.d/abstractions/base …
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
Skipping profile in /etc/apparmor.d/disable: usr.bin.firefox
AppArmor parser error for /etc/apparmor.d/usr.lib.snapd.snap-confine.real in /etc/apparmor.d/usr.lib.snapd.snap-confine.real at line 11: Could not open ‘/var/lib/snapd/apparmor/snap-confine.d’
Skipping profile in /etc/apparmor.d/disable: usr.sbin.rsyslogd
Skipping profile in /etc/apparmor.d/disable: usr.bin.firefox
AppArmor parser error for /etc/apparmor.d/usr.lib.snapd.snap-confine.real in /etc/apparmor.d/usr.lib.snapd.snap-confine.real at line 11: Could not open ‘/var/lib/snapd/apparmor/snap-confine.d’
Skipping profile in /etc/apparmor.d/disable: usr.sbin.rsyslogd
Setting up apt-transport-https (1.2.26) …
Setting up hdparm (9.48+ds-1ubuntu0.1) …
Setting up libnuma1:amd64 (2.0.11-1ubuntu1.1) …
Setting up libplymouth4:amd64 (0.9.2-3ubuntu13.5) …
Setting up lshw (02.17-1.1ubuntu3.5) …
Setting up openssh-client (1:7.2p2-4ubuntu2.4) …
Setting up openssh-sftp-server (1:7.2p2-4ubuntu2.4) …
Setting up openssh-server (1:7.2p2-4ubuntu2.4) …
Installing new version of config file /etc/network/if-up.d/openssh-server …
Setting up openssl (1.0.2g-1ubuntu4.12) …
Setting up plymouth (0.9.2-3ubuntu13.5) …
update-initramfs: deferring update (trigger activated)
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
Setting up plymouth-theme-ubuntu-text (0.9.2-3ubuntu13.5) …
update-initramfs: deferring update (trigger activated)
Setting up plymouth-label (0.9.2-3ubuntu13.5) …
Setting up plymouth-theme-ubuntu-logo (0.9.2-3ubuntu13.5) …
update-initramfs: deferring update (trigger activated)
Setting up wget (1.17.1-1ubuntu1.4) …
Setting up xdg-user-dirs (0.15-2ubuntu6.16.04.1) …
Setting up python-paramiko (1.16.0-1ubuntu0.1) …
Setting up ansible (2.5.4-1ppa~xenial) …
Setting up python3-problem-report (2.20.1-0ubuntu2.18) …
Setting up python3-apport (2.20.1-0ubuntu2.18) …
Setting up apport (2.20.1-0ubuntu2.18) …
Setting up apport-gtk (2.20.1-0ubuntu2.18) …
Setting up avahi-autoipd (0.6.32~rc+dfsg-1ubuntu2.2) …
Setting up libpulse0:amd64 (1:8.0-0ubuntu3.10) …
Setting up libpulsedsp:amd64 (1:8.0-0ubuntu3.10) …
Setting up pulseaudio-utils (1:8.0-0ubuntu3.10) …
Setting up pulseaudio (1:8.0-0ubuntu3.10) …
Setting up pulseaudio-module-bluetooth (1:8.0-0ubuntu3.10) …
Setting up libpulse-mainloop-glib0:amd64 (1:8.0-0ubuntu3.10) …
Setting up pulseaudio-module-x11 (1:8.0-0ubuntu3.10) …
Setting up libavahi-core7:amd64 (0.6.32~rc+dfsg-1ubuntu2.2) …
Setting up avahi-daemon (0.6.32~rc+dfsg-1ubuntu2.2) …
Installing new version of config file /etc/avahi/avahi-daemon.conf …
Setting up avahi-utils (0.6.32~rc+dfsg-1ubuntu2.2) …
Setting up libbamf3-2:amd64 (0.5.3~bzr0+16.04.20180209-0ubuntu1) …
Setting up bamfdaemon (0.5.3~bzr0+16.04.20180209-0ubuntu1) …
Rebuilding /usr/share/applications/bamf-2.index…
Setting up ca-certificates-java (20160321ubuntu1) …
Setting up compiz-core (1:0.9.12.3+16.04.20180221-0ubuntu1) …
Setting up libcompizconfig0:amd64 (1:0.9.12.3+16.04.20180221-0ubuntu1) …
Setting up libdecoration0:amd64 (1:0.9.12.3+16.04.20180221-0ubuntu1) …
Setting up compiz-plugins-default:amd64 (1:0.9.12.3+16.04.20180221-0ubuntu1) …
Setting up compiz-gnome (1:0.9.12.3+16.04.20180221-0ubuntu1) …
Setting up libunity-protocol-private0:amd64 (7.1.4+16.04.20180209.1-0ubuntu1) …
Setting up unity-services (7.4.5+16.04.20180221-0ubuntu1) …
Setting up unity-schemas (7.4.5+16.04.20180221-0ubuntu1) …
Setting up libunity-core-6.0-9:amd64 (7.4.5+16.04.20180221-0ubuntu1) …
Setting up compiz (1:0.9.12.3+16.04.20180221-0ubuntu1) …
Setting up unity (7.4.5+16.04.20180221-0ubuntu1) …
Setting up libunity-scopes-json-def-desktop (7.1.4+16.04.20180209.1-0ubuntu1) …
Setting up libunity9:amd64 (7.1.4+16.04.20180209.1-0ubuntu1) …
Setting up docker-ce (18.05.0~ce~3-0~ubuntu) …
Setting up ebtables (2.0.10.4-3.4ubuntu2.16.04.1) …
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
Setting up firefox (60.0.1+build2-0ubuntu0.16.04.1) …
Please restart all running instances of firefox, or you will experience problems.
Setting up firefox-locale-en (60.0.1+build2-0ubuntu0.16.04.1) …
Setting up libdfu1:amd64 (0.8.3-0ubuntu3) …
Setting up libfwupd1:amd64 (0.8.3-0ubuntu3) …
Setting up fwupd (0.8.3-0ubuntu3) …
Installing new version of config file /etc/fwupd.conf …
Setting up libibus-1.0-5:amd64 (1.5.11-1ubuntu2.1) …
Setting up gir1.2-ibus-1.0:amd64 (1.5.11-1ubuntu2.1) …
Setting up ibus (1.5.11-1ubuntu2.1) …
Setting up gir1.2-unity-5.0:amd64 (7.1.4+16.04.20180209.1-0ubuntu1) …
Setting up gnome-accessibility-themes (3.18.0-2ubuntu2) …
Setting up gnome-software-common (3.20.5-0ubuntu0.16.04.10) …
Setting up gnome-software (3.20.5-0ubuntu0.16.04.10) …
Setting up ubuntu-software (3.20.5-0ubuntu0.16.04.10) …
Setting up ibus-gtk:amd64 (1.5.11-1ubuntu2.1) …
Setting up ibus-gtk3:amd64 (1.5.11-1ubuntu2.1) …
Setting up libavahi-ui-gtk3-0:amd64 (0.6.32~rc+dfsg-1ubuntu2.2) …
Setting up libcurl3:amd64 (7.47.0-1ubuntu2.8) …
Setting up libfontembed1:amd64 (1.8.3-2ubuntu3.4) …
Setting up libpoppler-glib8:amd64 (0.41.0-0ubuntu1.7) …
Setting up libraw15:amd64 (0.17.1-1ubuntu0.3) …
Setting up libsnmp-base (5.7.3+dfsg-1ubuntu4.1) …
Setting up libsnmp30:amd64 (5.7.3+dfsg-1ubuntu4.1) …
Setting up libvncclient1:amd64 (0.9.10+dfsg-3ubuntu0.16.04.2) …
Setting up libvorbis0a:amd64 (1.3.5-3ubuntu0.2) …
Setting up libvorbisfile3:amd64 (1.3.5-3ubuntu0.2) …
Setting up libvorbisenc2:amd64 (1.3.5-3ubuntu0.2) …
Setting up libwayland-client0:amd64 (1.12.0-1~ubuntu16.04.3) …
Setting up libwayland-cursor0:amd64 (1.12.0-1~ubuntu16.04.3) …
Setting up libwayland-server0:amd64 (1.12.0-1~ubuntu16.04.3) …
Setting up ubuntu-mono (14.04+16.04.20180326-0ubuntu1) …
Setting up light-themes (14.04+16.04.20180326-0ubuntu1) …
Setting up linux-firmware (1.157.19) …
update-initramfs: Generating /boot/initrd.img-4.10.0-40-generic
update-initramfs: Generating /boot/initrd.img-4.10.0-28-generic
Setting up linux-libc-dev:amd64 (4.4.0-127.153) …
Setting up python-software-properties (0.96.20.7) …
Setting up ubuntu-mobile-icons (14.04+16.04.20180326-0ubuntu1) …
Setting up suru-icon-theme (14.04+16.04.20180326-0ubuntu1) …
Setting up thunderbird (1:52.8.0+build1-0ubuntu0.16.04.1) …
Setting up thunderbird-locale-en (1:52.8.0+build1-0ubuntu0.16.04.1) …
Setting up thunderbird-gnome-support (1:52.8.0+build1-0ubuntu0.16.04.1) …
Setting up thunderbird-locale-en-us (1:52.8.0+build1-0ubuntu0.16.04.1) …
Setting up ubuntu-artwork (1:14.04+16.04.20180326-0ubuntu1) …
Setting up unity-scopes-runner (7.1.4+16.04.20180209.1-0ubuntu1) …
Setting up xdg-utils (1.1.1-1ubuntu1.16.04.3) …
Setting up jenkins (2.107.3) …
Installing new version of config file /etc/default/jenkins …
Installing new version of config file /etc/init.d/jenkins …
Installing new version of config file /etc/logrotate.d/jenkins …
Setting up libruby2.3:amd64 (2.3.1-2~16.04.9) …
Setting up ruby2.3 (2.3.1-2~16.04.9) …
Processing triggers for ca-certificates (20170717~16.04.1) …
Updating certificates in /etc/ssl/certs…
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d…

done.
done.
Setting up openjdk-8-jre-headless:amd64 (8u171-b11-0ubuntu0.16.04.1) …
Installing new version of config file /etc/java-8-openjdk/jvm-amd64.cfg …
Installing new version of config file /etc/java-8-openjdk/management/management.properties …
Installing new version of config file /etc/java-8-openjdk/net.properties …
Installing new version of config file /etc/java-8-openjdk/security/java.security …
Setting up libreoffice-common (1:5.1.6~rc2-0ubuntu1~xenial3) …
Installing new version of config file /etc/bash_completion.d/libreoffice.sh …
Setting up libreoffice-style-galaxy (1:5.1.6~rc2-0ubuntu1~xenial3) …
Setting up libreoffice-style-breeze (1:5.1.6~rc2-0ubuntu1~xenial3) …
Setting up libreoffice-core (1:5.1.6~rc2-0ubuntu1~xenial3) …
Setting up libreoffice-base-core (1:5.1.6~rc2-0ubuntu1~xenial3) …
Setting up libreoffice-calc (1:5.1.6~rc2-0ubuntu1~xenial3) …
Setting up libreoffice-gtk (1:5.1.6~rc2-0ubuntu1~xenial3) …
Setting up libreoffice-gnome (1:5.1.6~rc2-0ubuntu1~xenial3) …
Setting up libreoffice-writer (1:5.1.6~rc2-0ubuntu1~xenial3) …
Setting up libreoffice-draw (1:5.1.6~rc2-0ubuntu1~xenial3) …
Setting up libreoffice-impress (1:5.1.6~rc2-0ubuntu1~xenial3) …
Setting up libreoffice-ogltrans (1:5.1.6~rc2-0ubuntu1~xenial3) …
Setting up libreoffice-pdfimport (1:5.1.6~rc2-0ubuntu1~xenial3) …
Setting up python3-uno (1:5.1.6~rc2-0ubuntu1~xenial3) …
Setting up libreoffice-math (1:5.1.6~rc2-0ubuntu1~xenial3) …
Setting up libreoffice-avmedia-backend-gstreamer (1:5.1.6~rc2-0ubuntu1~xenial3) …
Setting up python3-distupgrade (1:16.04.25) …
Setting up python3-update-manager (1:16.04.13) …
Setting up ubuntu-release-upgrader-core (1:16.04.25) …
Setting up update-manager-core (1:16.04.13) …
Setting up update-notifier-common (3.168.8) …
Setting up ubuntu-release-upgrader-gtk (1:16.04.25) …
Setting up update-manager (1:16.04.13) …
Setting up update-notifier (3.168.8) …
Processing triggers for libgtk2.0-0:amd64 (2.24.30-1ubuntu1.16.04.2) …
Processing triggers for libgtk-3-0:amd64 (3.18.9-1ubuntu3.3) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
Processing triggers for initramfs-tools (0.122ubuntu8.11) …
update-initramfs: Generating /boot/initrd.img-4.10.0-40-generic
Processing triggers for systemd (229-4ubuntu21.2) …
Processing triggers for ureadahead (0.100.0-19) …
vskumar@ubuntu:~/K8$

vskumar@ubuntu:~/K8$ sudo sudo apt-get install -y build-essential make cmake scons curl git \
> ruby autoconf automake autoconf-archive \
> gettext libtool flex bison \
> libbz2-dev libcurl4-openssl-dev \
> libexpat-dev libncurses-dev
[sudo] password for vskumar:
Reading package lists… Done
Building dependency tree
Reading state information… Done
Note, selecting ‘libexpat1-dev’ instead of ‘libexpat-dev’
Note, selecting ‘libncurses5-dev’ instead of ‘libncurses-dev’
build-essential is already the newest version (12.1ubuntu2).
gettext is already the newest version (0.19.7-2ubuntu3).
make is already the newest version (4.1-6).
ruby is already the newest version (1:2.3.0+1).
ruby set to manually installed.
curl is already the newest version (7.47.0-1ubuntu2.8).
git is already the newest version (1:2.7.4-0ubuntu1.3).
libexpat1-dev is already the newest version (2.1.0-7ubuntu0.16.04.3).
libexpat1-dev set to manually installed.
The following packages were automatically installed and are no longer required:
ca-certificates-java default-jre-headless java-common openjdk-8-jre-headless
Use ‘sudo apt autoremove’ to remove them.
The following additional packages will be installed:
autotools-dev bzip2-doc cmake-data libbison-dev libfl-dev libjsoncpp1
libltdl-dev libsigsegv2 libtinfo-dev m4
Suggested packages:
gnu-standards autoconf-doc bison-doc codeblocks eclipse ninja-build
libcurl4-doc libcurl3-dbg libidn11-dev libkrb5-dev libldap2-dev librtmp-dev
libssl-dev zlib1g-dev libtool-doc ncurses-doc gfortran | fortran95-compiler
gcj-jdk
The following NEW packages will be installed:
autoconf autoconf-archive automake autotools-dev bison bzip2-doc cmake
cmake-data flex libbison-dev libbz2-dev libcurl4-openssl-dev libfl-dev
libjsoncpp1 libltdl-dev libncurses5-dev libsigsegv2 libtinfo-dev libtool m4
scons
0 upgraded, 21 newly installed, 0 to remove and 23 not upgraded.
Need to get 8,095 kB of archives.
After this operation, 40.6 MB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu xenial/universe amd64 autoconf-archive all 20150925-1 [637 kB]
Get:2 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 cmake-data all 3.5.1-1ubuntu3 [1,121 kB]
Get:3 http://archive.ubuntu.com/ubuntu xenial/main amd64 libjsoncpp1 amd64 1.7.2-1 [73.0 kB]
Get:4 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 cmake amd64 3.5.1-1ubuntu3 [2,623 kB]
Get:5 http://archive.ubuntu.com/ubuntu xenial/main amd64 libsigsegv2 amd64 2.10-4 [14.1 kB]
Get:6 http://archive.ubuntu.com/ubuntu xenial/main amd64 m4 amd64 1.4.17-5 [195 kB]
Get:7 http://archive.ubuntu.com/ubuntu xenial/main amd64 libfl-dev amd64 2.6.0-11 [12.5 kB]
Get:8 http://archive.ubuntu.com/ubuntu xenial/main amd64 flex amd64 2.6.0-11 [290 kB]
Get:9 http://archive.ubuntu.com/ubuntu xenial/main amd64 autoconf all 2.69-9 [321 kB]
Get:10 http://archive.ubuntu.com/ubuntu xenial/main amd64 autotools-dev all 20150820.1 [39.8 kB]
Get:11 http://archive.ubuntu.com/ubuntu xenial/main amd64 automake all 1:1.15-4ubuntu1 [510 kB]
Get:12 http://archive.ubuntu.com/ubuntu xenial/main amd64 libbison-dev amd64 2:3.0.4.dfsg-1 [338 kB]
Get:13 http://archive.ubuntu.com/ubuntu xenial/main amd64 bison amd64 2:3.0.4.dfsg-1 [259 kB]
Get:14 http://archive.ubuntu.com/ubuntu xenial/main amd64 bzip2-doc all 1.0.6-8 [295 kB]
Get:15 http://archive.ubuntu.com/ubuntu xenial/main amd64 libbz2-dev amd64 1.0.6-8 [29.1 kB]
Get:16 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libcurl4-openssl-dev amd64 7.47.0-1ubuntu2.8 [263 kB]
Get:17 http://archive.ubuntu.com/ubuntu xenial/main amd64 libltdl-dev amd64 2.4.6-0.1 [162 kB]
Get:18 http://archive.ubuntu.com/ubuntu xenial/main amd64 libtinfo-dev amd64 6.0+20160213-1ubuntu1 [77.4 kB]
Get:19 http://archive.ubuntu.com/ubuntu xenial/main amd64 libncurses5-dev amd64 6.0+20160213-1ubuntu1 [175 kB]
Get:20 http://archive.ubuntu.com/ubuntu xenial/main amd64 libtool all 2.4.6-0.1 [193 kB]
Get:21 http://archive.ubuntu.com/ubuntu xenial/universe amd64 scons all 2.4.1-1 [469 kB]
Fetched 8,095 kB in 15s (537 kB/s)
Selecting previously unselected package autoconf-archive.
(Reading database … 224983 files and directories currently installed.)
Preparing to unpack …/autoconf-archive_20150925-1_all.deb …
Unpacking autoconf-archive (20150925-1) …
Selecting previously unselected package cmake-data.
Preparing to unpack …/cmake-data_3.5.1-1ubuntu3_all.deb …
Unpacking cmake-data (3.5.1-1ubuntu3) …
Selecting previously unselected package libjsoncpp1:amd64.
Preparing to unpack …/libjsoncpp1_1.7.2-1_amd64.deb …
Unpacking libjsoncpp1:amd64 (1.7.2-1) …
Selecting previously unselected package cmake.
Preparing to unpack …/cmake_3.5.1-1ubuntu3_amd64.deb …
Unpacking cmake (3.5.1-1ubuntu3) …
Selecting previously unselected package libsigsegv2:amd64.
Preparing to unpack …/libsigsegv2_2.10-4_amd64.deb …
Unpacking libsigsegv2:amd64 (2.10-4) …
Selecting previously unselected package m4.
Preparing to unpack …/archives/m4_1.4.17-5_amd64.deb …
Unpacking m4 (1.4.17-5) …
Selecting previously unselected package libfl-dev:amd64.
Preparing to unpack …/libfl-dev_2.6.0-11_amd64.deb …
Unpacking libfl-dev:amd64 (2.6.0-11) …
Selecting previously unselected package flex.
Preparing to unpack …/flex_2.6.0-11_amd64.deb …
Unpacking flex (2.6.0-11) …
Selecting previously unselected package autoconf.
Preparing to unpack …/autoconf_2.69-9_all.deb …
Unpacking autoconf (2.69-9) …
Selecting previously unselected package autotools-dev.
Preparing to unpack …/autotools-dev_20150820.1_all.deb …
Unpacking autotools-dev (20150820.1) …
Selecting previously unselected package automake.
Preparing to unpack …/automake_1%3a1.15-4ubuntu1_all.deb …
Unpacking automake (1:1.15-4ubuntu1) …
Selecting previously unselected package libbison-dev:amd64.
Preparing to unpack …/libbison-dev_2%3a3.0.4.dfsg-1_amd64.deb …
Unpacking libbison-dev:amd64 (2:3.0.4.dfsg-1) …
Selecting previously unselected package bison.
Preparing to unpack …/bison_2%3a3.0.4.dfsg-1_amd64.deb …
Unpacking bison (2:3.0.4.dfsg-1) …
Selecting previously unselected package bzip2-doc.
Preparing to unpack …/bzip2-doc_1.0.6-8_all.deb …
Unpacking bzip2-doc (1.0.6-8) …
Selecting previously unselected package libbz2-dev:amd64.
Preparing to unpack …/libbz2-dev_1.0.6-8_amd64.deb …
Unpacking libbz2-dev:amd64 (1.0.6-8) …
Selecting previously unselected package libcurl4-openssl-dev:amd64.
Preparing to unpack …/libcurl4-openssl-dev_7.47.0-1ubuntu2.8_amd64.deb …
Unpacking libcurl4-openssl-dev:amd64 (7.47.0-1ubuntu2.8) …
Selecting previously unselected package libltdl-dev:amd64.
Preparing to unpack …/libltdl-dev_2.4.6-0.1_amd64.deb …
Unpacking libltdl-dev:amd64 (2.4.6-0.1) …
Selecting previously unselected package libtinfo-dev:amd64.
Preparing to unpack …/libtinfo-dev_6.0+20160213-1ubuntu1_amd64.deb …
Unpacking libtinfo-dev:amd64 (6.0+20160213-1ubuntu1) …
Selecting previously unselected package libncurses5-dev:amd64.
Preparing to unpack …/libncurses5-dev_6.0+20160213-1ubuntu1_amd64.deb …
Unpacking libncurses5-dev:amd64 (6.0+20160213-1ubuntu1) …
Selecting previously unselected package libtool.
Preparing to unpack …/libtool_2.4.6-0.1_all.deb …
Unpacking libtool (2.4.6-0.1) …
Selecting previously unselected package scons.
Preparing to unpack …/archives/scons_2.4.1-1_all.deb …
Unpacking scons (2.4.1-1) …
Processing triggers for doc-base (0.10.7) …
Processing 4 added doc-base files…
Registering documents with scrollkeeper…
Processing triggers for install-info (6.1.0.dfsg.1-5) …
Processing triggers for man-db (2.7.5-1) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
Setting up autoconf-archive (20150925-1) …
Setting up cmake-data (3.5.1-1ubuntu3) …
Setting up libjsoncpp1:amd64 (1.7.2-1) …
Setting up cmake (3.5.1-1ubuntu3) …
Setting up libsigsegv2:amd64 (2.10-4) …
Setting up m4 (1.4.17-5) …
Setting up libfl-dev:amd64 (2.6.0-11) …
Setting up flex (2.6.0-11) …
Setting up autoconf (2.69-9) …
Setting up autotools-dev (20150820.1) …
Setting up automake (1:1.15-4ubuntu1) …
update-alternatives: using /usr/bin/automake-1.15 to provide /usr/bin/automake (automake) in auto mode
Setting up libbison-dev:amd64 (2:3.0.4.dfsg-1) …
Setting up bison (2:3.0.4.dfsg-1) …
update-alternatives: using /usr/bin/bison.yacc to provide /usr/bin/yacc (yacc) in auto mode
Setting up bzip2-doc (1.0.6-8) …
Setting up libbz2-dev:amd64 (1.0.6-8) …
Setting up libcurl4-openssl-dev:amd64 (7.47.0-1ubuntu2.8) …
Setting up libltdl-dev:amd64 (2.4.6-0.1) …
Setting up libtinfo-dev:amd64 (6.0+20160213-1ubuntu1) …
Setting up libncurses5-dev:amd64 (6.0+20160213-1ubuntu1) …
Setting up libtool (2.4.6-0.1) …
Setting up scons (2.4.1-1) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
vskumar@ubuntu:~/K8$

vskumar@ubuntu:~/K8$
vskumar@ubuntu:~/K8$ git clone https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew
Cloning into ‘/home/vskumar/.linuxbrew’…
remote: Counting objects: 353749, done.
remote: Total 353749 (delta 0), reused 0 (delta 0), pack-reused 353749
Receiving objects: 100% (353749/353749), 67.99 MiB | 2.02 MiB/s, done.
Resolving deltas: 100% (267333/267333), done.
Checking connectivity… done.
vskumar@ubuntu:~/K8$

 

vskumar@ubuntu:~/K8$
vskumar@ubuntu:~/K8$ sudo vi ~/.bashrc
vskumar@ubuntu:~/K8$ tail ~/.bashrc
# Until LinuxBrew is fixed, the following is required.
# See: https://github.com/Homebrew/linuxbrew/issues/47
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH
## Setup linux brew
export LINUXBREWHOME=$HOME/.linuxbrew
export PATH=$LINUXBREWHOME/bin:$PATH
export MANPATH=$LINUXBREWHOME/man:$MANPATH
export PKG_CONFIG_PATH=$LINUXBREWHOME/lib64/pkgconfig:$LINUXBREWHOME/lib/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH
vskumar@ubuntu:~/K8$

skumar@ubuntu:~$ which brew
/home/vskumar/.linuxbrew/bin/brew
vskumar@ubuntu:~$
vskumar@ubuntu:~$ echo $PKG_CONFIG_PATH
/home/vskumar/.linuxbrew/lib64/pkgconfig:/home/vskumar/.linuxbrew/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:
vskumar@ubuntu:~$

vskumar@ubuntu:~$
vskumar@ubuntu:~$ brew update
remote: Counting objects: 1101, done.
remote: Compressing objects: 100% (1021/1021), done.
remote: Total 1101 (delta 167), reused 324 (delta 39), pack-reused 0
Receiving objects: 100% (1101/1101), 1.13 MiB | 388.00 KiB/s, done.
Resolving deltas: 100% (167/167), completed with 80 local objects.
From https://github.com/Linuxbrew/brew
+ 5320403…191f6b0 master -> origin/master (forced update)
* [new tag] 1.6.6 -> 1.6.6
HEAD is now at 191f6b0 Merge tag Homebrew/1.6.6 into Linuxbrew/master
/home/vskumar/.linuxbrew/Library/Homebrew/cmd/update.sh: line 6: /home/vskumar/.linuxbrew/Library/ENV/scm/git: No such file or directory
vskumar@ubuntu:~$ brew update

vskumar@ubuntu:~$
vskumar@ubuntu:~$ brew doctor
==> Downloading https://homebrew.bintray.com/bottles-portable-ruby/portable-ruby-2.3.3_2.x86_64_linux.bottle.tar.gz
######################################################################## 100.0%
==> Pouring portable-ruby-2.3.3_2.x86_64_linux.bottle.tar.gz
Your system is ready to brew.
vskumar@ubuntu:~$

===== Now, Linuxbrew is ready to use ====>

 

 

 

 

27.DevOps:Working with SSH for Ansible usage

ssh

Working with SSH for Ansible usage:
With reference to my blog on Ansible installation on Ubuntu VM,  https://vskumar.blog/2018/05/08/23-devops-how-to-install-ansible-on-ubuntu-linux-vm/

in this blog, I have demonstrated on playing around with ssh among three
ubuntu Vmware Virtual machines.

To use Ansible exercises we need to follow the below pre-requisites with ssh operations.

Pre-requisites for Ansible usage:
https://help.ubuntu.com/community/SSH/OpenSSH/Keys

SSH Keys for Ansible VMs usage:
Before using Ansible we need to make sure the SSH is installed in the
VMs.
I would like to give the steps for this setup as below:

Pre-requisite Step1:
Install OpenSSH on Ubuntu.
Update the package index using the following command:
sudo apt-get update

To install the OpenSSH server application as well as the other related
packages use the command below:
sudo apt-get install openssh-server

Further, you can install the OpenSSH client application using
the following command:
sudo apt-get install openssh-client

Pre-requisite Step2:
Configure OpenSSH on Ubuntu
Before making any changes in OpenSSH configuration,
we need to know how to manage the OpenSSH service on Ubuntu VMs.

How to check ssh version?:
use the command; ssh -V

i) To start the service we can use the following command:
sudo systemctl start sshd.service

ii) To stop the service we can use:
sudo systemctl stop sshd.service

iii) To restart the service we can use:
sudo systemctl restart sshd.service

iv) To check the status of the service we can use:
sudo systemctl status sshd.service

v) If we want to enable the service on system boot we can use:
sudo systemctl enable sshd.service

vi) If we want to disable the service on system boot we can use:
sudo systemctl disable sshd.service

vii) The configuration file for the OpenSSH server application
is in the folder:/etc/ssh/sshd_config
We need to update the default port in this file.
We need to make sure to create a backup of the original configuration before
making any changes:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.orig

We can edit the file by using a text editor of our choice either vi or vim, etc..
The first thing we must do is to change the default SSH listening port.
Open the file and locate the line that specifies the listening port:
Port 22
Change it to your desired port number. Ex: Port 1990

Save the file and close it.
Then restart the service for the changes to take effect.

Note:
After making any changes in the OpenSSH configuration you need to restart the service
for the changes to take effect.

Pre-requisite Step3: Create an SSH key pair
Please note, during Ansible exercise or other DevOps tools, we need to connect to other VMs using SSH keys.

Let us note; the Key-based authentication uses two keys, one “public” key that anyone is allowed
to see.
And another “private” key that only the owner is allowed to see.
To securely communicate using key-based authentication, one needs to create a key pair,
securely store the private key on the computer which we want to log in from [Source machine],
and store the public key on the other Virtual Machine[Target machine] one wants to log in to.
Using key based logins with ssh is generally considered more secure than using plain password logins.

Now, let us see these steps:
1. Generating RSA Keys:
Our first step involves creating a set of RSA keys for use in authentication.
This should be done on the client.
To create our public and private SSH keys we need to use the below commands:
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa

We will be prompted for a location to save the keys, and a passphrase for the keys.
This passphrase will protect our private key while it’s stored on the hard drive:

=== Sample Output ====>
Generating public/private rsa key pair.
Enter file in which to save the key (/home/b/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/b/.ssh/id_rsa.
Your public key has been saved in /home/b/.ssh/id_rsa.pub.
======================>
Note; An SSH key passphrase is a secondary form of security.
You need to remember it while logging the remote machine.
Now, our public key is now available as .ssh/id_rsa.pub in the home directory.

The file name and pwd can be given when you follow rigid security procedures as per your project setup. Here if you avoid in giving name/pwd, it makes us easy to copy the key file to target machine.

2. Transfer Client Key to Host:
The key we need to transfer to the host is the public one.
If we can log in to a computer over SSH using a password,
we can transfer our RSA key by doing the following from our own computer:
Command format:
====>
ssh-copy-id <username>@<host>
====>
Note: The <username> and <host> should be replaced by our username
and the name of the computer we’re transferring our key to.

TIP on Port# usage:
We cannot specify a port other than the standard port 22 [unless we changed it to
another port# in the target VM]. we can work around this by issuing the
command like this: ssh-copy-id “<username>@<host> -p <port_nr>”.
If we are using the standard port 22, we can ignore this tip.

We can make sure this worked by doing the below command test:
ssh <username>@<host>

We should be prompted for the passphrase for our key:
Enter passphrase for key ‘/home/<user>/.ssh/id_rsa’:
Enter your passphrase, and provided host is configured to allow key-based logins,
we should then be logged in as usual.

 

How to remove the existing SSH from Ubuntu ?
If we have already ssh we can use the below steps to remove and
get the latest setup.

Step1: Stop SSH service before uninstalling it.
service ssh stop

Step2: Now, we need to Uninstall and remove the ssh package from the machine by using the below
apt-get command.

apt-get purge openssh-server

Now you can check its status using ssh -VM
If it is not there you should not get the version.

Please note my VMs Ips,where i will apply some exercises timely:

IP of Ans-ControlMachine:
192.168.116.132

IP of VM1:
192.168.116.134

IP of VM2:
192.168.116.135

IP of VM3:
192.168.116.133

The machine names are prompted in CLI.
I am using these four Virtual machines on Vmware environment with player as well as Workstation.

I have played around with SSH among these machines.
I have copied most of the screen outputs in this content.

Removing SSH from one Virtual machine for installating procedure testing:
I have preloaded SSH earlier.
I am purging SSH in one Virtual machine to demonstrate the exercise.
And below I have copied the screen outputs also.

==== Screen outputs for Ans-ControlMachine =====>
=== Removing SSH from Ans-ControlMachine=========>
vskumar@ubuntu:~$ ssh -V
OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g 1 Mar 2016
vskumar@ubuntu:~$ cat /etc/hostname
Ans-ControlMachine
vskumar@ubuntu:~$ service ssh stop
Failed to stop ssh.service: Unit ssh.service not loaded.
vskumar@ubuntu:~$ service ssh status
● ssh.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)
vskumar@ubuntu:~$
vskumar@ubuntu:~$ apt-get -purge openssh-server
E: Command line option ‘p’ [from -purge] is not understood in combination with the other options.
vskumar@ubuntu:~$ apt-get purge remove openssh-server
E: Could not open lock file /var/lib/dpkg/lock – open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
vskumar@ubuntu:~$ sudo apt-get purge remove openssh-server
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package remove
vskumar@ubuntu:~$ sudo apt-get purge openssh-server
Reading package lists… Done
Building dependency tree
Reading state information… Done
Package ‘openssh-server’ is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 432 not upgraded.

vskumar@ubuntu:~$ sudo apt-get purge openssh-client
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages will be REMOVED:
openssh-client* snapd* ubuntu-core-launcher*
0 upgraded, 0 newly installed, 3 to remove and 429 not upgraded.
After this operation, 61.7 MB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database … 176110 files and directories currently installed.)
Removing ubuntu-core-launcher (2.25) …
Removing snapd (2.25) …
Warning: Stopping snapd.service, but it can still be activated by:
snapd.socket
Purging configuration files for snapd (2.25) …
Final directory cleanup
Discarding preserved snap namespaces
umount: /run/snapd/ns/*.mnt: mountpoint not found
umount: /run/snapd/ns/: mountpoint not found
Removing extra snap-confine apparmor rules
Removing snapd state
Removing openssh-client (1:7.2p2-4ubuntu2.2) …
Purging configuration files for openssh-client (1:7.2p2-4ubuntu2.2) …
Processing triggers for man-db (2.7.5-1) …

vskumar@ubuntu:~$
s for man-db (2.7.5-1) …
vskumar@ubuntu:~$
vskumar@ubuntu:~$ ssh -V
bash: /usr/bin/ssh: No such file or directory
vskumar@ubuntu:~$
== So we have completely removed the SSH ====>
=== from Ans-ControlMachine=========>

Installing SSH into Ans-ControlMachine:

Now, let me install the SSH server and client also.
Step1:
Let update the packages.
sudo apt-get update

== Output =======>
vskumar@ubuntu:~$ sudo apt-get update

Get:1 http://security.ubuntu.com/ubuntu xenial-security InRelease [107 kB]
Hit:2 http://us.archive.ubuntu.com/ubuntu xenial InRelease
Get:3 http://us.archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu xenial-backports InRelease [107 kB]
Get:5 http://security.ubuntu.com/ubuntu xenial-security/main amd64 DEP-11 Metadata [67.7 kB]
Get:6 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 DEP-11 Metadata [319 kB]
Get:7 http://security.ubuntu.com/ubuntu xenial-security/main DEP-11 64×64 Icons [72.6 kB]
Get:8 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 DEP-11 Metadata [107 kB]
Get:9 http://security.ubuntu.com/ubuntu xenial-security/universe DEP-11 64×64 Icons [147 kB]
Get:10 http://us.archive.ubuntu.com/ubuntu xenial-updates/main DEP-11 64×64 Icons [226 kB]
Get:11 http://us.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 DEP-11 Metadata [246 kB]
Get:12 http://us.archive.ubuntu.com/ubuntu xenial-updates/universe DEP-11 64×64 Icons [331 kB]
Get:13 http://us.archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 DEP-11 Metadata [5,964 B]
Get:14 http://us.archive.ubuntu.com/ubuntu xenial-backports/main amd64 DEP-11 Metadata [3,324 B]
Get:15 http://us.archive.ubuntu.com/ubuntu xenial-backports/universe amd64 DEP-11 Metadata [5,088 B]
Fetched 1,853 kB in 11s (168 kB/s)
Reading package lists… Done
vskumar@ubuntu:~$
============>

Step2: Installing server
Now, we will use the below command to install ssh srver:
sudo apt-get install openssh-server

==== Screen output ======>
vskumar@ubuntu:~$ sudo apt-get install openssh-server
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following additional packages will be installed:
ncurses-term openssh-client openssh-sftp-server ssh-import-id
Suggested packages:
ssh-askpass libpam-ssh keychain monkeysphere rssh molly-guard
The following NEW packages will be installed:
ncurses-term openssh-client openssh-server openssh-sftp-server ssh-import-id
0 upgraded, 5 newly installed, 0 to remove and 429 not upgraded.
Need to get 1,222 kB of archives.
After this operation, 8,917 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssh-client amd64 1:7.2p2-4ubuntu2.4 [589 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 ncurses-term all 6.0+20160213-1ubuntu1 [249 kB]
Get:3 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssh-sftp-server amd64 1:7.2p2-4ubuntu2.4 [38.7 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssh-server amd64 1:7.2p2-4ubuntu2.4 [335 kB]
Get:5 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 ssh-import-id all 5.5-0ubuntu1 [10.2 kB]
Fetched 1,222 kB in 7s (162 kB/s)
Preconfiguring packages …
Selecting previously unselected package openssh-client.
(Reading database … 176023 files and directories currently installed.)
Preparing to unpack …/openssh-client_1%3a7.2p2-4ubuntu2.4_amd64.deb …
Unpacking openssh-client (1:7.2p2-4ubuntu2.4) …
Selecting previously unselected package ncurses-term.
Preparing to unpack …/ncurses-term_6.0+20160213-1ubuntu1_all.deb …
Unpacking ncurses-term (6.0+20160213-1ubuntu1) …
Selecting previously unselected package openssh-sftp-server.
Preparing to unpack …/openssh-sftp-server_1%3a7.2p2-4ubuntu2.4_amd64.deb …
Unpacking openssh-sftp-server (1:7.2p2-4ubuntu2.4) …
Selecting previously unselected package openssh-server.
Preparing to unpack …/openssh-server_1%3a7.2p2-4ubuntu2.4_amd64.deb …
Unpacking openssh-server (1:7.2p2-4ubuntu2.4) …
Selecting previously unselected package ssh-import-id.
Preparing to unpack …/ssh-import-id_5.5-0ubuntu1_all.deb …
Unpacking ssh-import-id (5.5-0ubuntu1) …
Processing triggers for man-db (2.7.5-1) …
Processing triggers for ufw (0.35-0ubuntu2) …
Processing triggers for systemd (229-4ubuntu19) …
Processing triggers for ureadahead (0.100.0-19) …
Setting up openssh-client (1:7.2p2-4ubuntu2.4) …
Setting up ncurses-term (6.0+20160213-1ubuntu1) …
Setting up openssh-sftp-server (1:7.2p2-4ubuntu2.4) …
Setting up openssh-server (1:7.2p2-4ubuntu2.4) …
Creating SSH2 RSA key; this may take some time …
2048 SHA256:3yMAIuH8WhE4tf0kwEqrBHo7gxj3nYq/RTXhYMrpz/s root@ubuntu (RSA)
Creating SSH2 DSA key; this may take some time …
1024 SHA256:HoY3UATMD48l8tOWSWQcJWtwK+s98j7WpD7WGEPsbVo root@ubuntu (DSA)
Creating SSH2 ECDSA key; this may take some time …
256 SHA256:sIDDAzkiGiTCzpGHOTEU3QbG/oNn4DNvXxHtm7kzAZ4 root@ubuntu (ECDSA)
Creating SSH2 ED25519 key; this may take some time …
256 SHA256:hGlI7mLNIGbU2bs/igS1YZrNwxxCvFpszZxOCAOozGk root@ubuntu (ED25519)
Setting up ssh-import-id (5.5-0ubuntu1) …
Processing triggers for systemd (229-4ubuntu19) …
Processing triggers for ureadahead (0.100.0-19) …
Processing triggers for ufw (0.35-0ubuntu2) …
vskumar@ubuntu:~$ ssh -V
OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g 1 Mar 2016
vskumar@ubuntu:~$
=======================>

Step3: install client
We can try to install the OpenSSH client application using
the following command:
sudo apt-get install openssh-client

==== Screen output =====================>
vskumar@ubuntu:~$
vskumar@ubuntu:~$ sudo apt-get install openssh-client
Reading package lists… Done
Building dependency tree
Reading state information… Done
openssh-client is already the newest version (1:7.2p2-4ubuntu2.4).
openssh-client set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 429 not upgraded.
vskumar@ubuntu:~$
=== It is installed along with server ====>

Step4:
Now, let us check the status:

=== Status of SSH server ===>
vskumar@ubuntu:~$ sudo systemctl status sshd.service
● ssh.service – OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enab
Active: active (running) since Sat 2018-05-26 05:21:18 PDT; 6min ago
Main PID: 4645 (sshd)
CGroup: /system.slice/ssh.service
└─4645 /usr/sbin/sshd -D

May 26 05:21:17 ubuntu systemd[1]: Starting OpenBSD Secure Shell server…
May 26 05:21:17 ubuntu sshd[4645]: Server listening on 0.0.0.0 port 22.
May 26 05:21:17 ubuntu sshd[4645]: Server listening on :: port 22.
May 26 05:21:18 ubuntu systemd[1]: Started OpenBSD Secure Shell server.
lines 1-11/11 (END)
vskumar@ubuntu:~$
============================>

Generating RSA Keys:
Step1:
To create our public and private SSH keys we need to use the below commands:
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa

=== Screen output ===>
vskumar@ubuntu:~$ ls
Desktop Downloads Music Public Videos
Documents examples.desktop Pictures Templates
vskumar@ubuntu:~$ ls -la
total 116
drwxr-xr-x 17 vskumar vskumar 4096 May 26 05:30 .
drwxr-xr-x 3 root root 4096 Nov 22 2017 ..
-rw——- 1 vskumar vskumar 524 Mar 6 18:06 .bash_history
-rw-r–r– 1 vskumar vskumar 220 Nov 22 2017 .bash_logout
-rw-r–r– 1 vskumar vskumar 3771 Nov 22 2017 .bashrc
drwx—— 13 vskumar vskumar 4096 May 26 04:45 .cache
drwx—— 14 vskumar vskumar 4096 Nov 22 2017 .config
drwxr-xr-x 2 vskumar vskumar 4096 Nov 22 2017 Desktop
-rw-r–r– 1 vskumar vskumar 25 Nov 22 2017 .dmrc
drwxr-xr-x 2 vskumar vskumar 4096 Nov 22 2017 Documents
drwxr-xr-x 2 vskumar vskumar 4096 Nov 22 2017 Downloads
-rw-r–r– 1 vskumar vskumar 8980 Nov 22 2017 examples.desktop
drwx—— 2 vskumar vskumar 4096 Dec 22 21:36 .gconf
drwx—— 3 vskumar vskumar 4096 May 26 04:42 .gnupg
-rw——- 1 vskumar vskumar 3498 May 26 04:42 .ICEauthority
drwx—— 3 vskumar vskumar 4096 Nov 22 2017 .local
drwx—— 4 vskumar vskumar 4096 Nov 22 2017 .mozilla
drwxr-xr-x 2 vskumar vskumar 4096 Nov 22 2017 Music
drwxr-xr-x 2 vskumar vskumar 4096 Nov 22 2017 Pictures
-rw-r–r– 1 vskumar vskumar 655 Nov 22 2017 .profile
drwxr-xr-x 2 vskumar vskumar 4096 Nov 22 2017 Public
drwxrwxr-x 2 vskumar vskumar 4096 May 26 05:30 .ssh
-rw-r–r– 1 vskumar vskumar 0 Nov 22 2017 .sudo_as_admin_successful
drwxr-xr-x 2 vskumar vskumar 4096 Nov 22 2017 Templates
drwxr-xr-x 2 vskumar vskumar 4096 Nov 22 2017 Videos
-rw——- 1 vskumar vskumar 51 May 26 04:42 .Xauthority
-rw——- 1 vskumar vskumar 82 May 26 04:42 .xsession-errors
-rw——- 1 vskumar vskumar 82 May 26 03:11 .xsession-errors.old
vskumar@ubuntu:~$
vskumar@ubuntu:~$ chmod 700 ~/.ssh
I copied on the below line:
drwx—— 2 vskumar vskumar 4096 May 26 05:30 .ssh
The rights are changed.
======================>

=========================>
vskumar@ubuntu:~$
vskumar@ubuntu:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/vskumar/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/vskumar/.ssh/id_rsa.
Your public key has been saved in /home/vskumar/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:jLVDx+RqfC+3lo3qcajm+gcHO+44+h/cfTDDLHtsEAg vskumar@ubuntu
The key’s randomart image is:
+—[RSA 2048]—-+
| E . |
| . = |
| + = |
| *.+ + |
| . So+ * |
| o++.O + |
| .o+* O+. |
| ..oo.B+o. |
| .o+O*ooo. |
+—-[SHA256]—–+
vskumar@ubuntu:~$
=== I have given the pwd for passphrase ====>

Step2: Transfer Client Key to Host
ssh-copy-id <username>@<host>
I will try with VM1.
==== Copting ssh id to VM1 ====>
== From Ans-ControlMachine ====>
vskumar@ubuntu:~/.ssh$ cat /etc/hostname
Ans-ControlMachine
vskumar@ubuntu:~/.ssh$ ls
id_rsa id_rsa.pub known_hosts
vskumar@ubuntu:~/.ssh$ ssh ssh-copy-id vskumar@192.168.116.134
ssh: Could not resolve hostname ssh-copy-id: Name or service not known
vskumar@ubuntu:~/.ssh$ sudo ssh-copy-id vskumar@192.168.116.134
[sudo] password for vskumar:
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: “/home/vskumar/.ssh/id_rsa.pub”
The authenticity of host ‘192.168.116.134 (192.168.116.134)’ can’t be established.
ECDSA key fingerprint is SHA256:ZPPT6yQv8nAC1A6cDkeIssDYiim81f4/88I+NNVm1Iw.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed — if you are prompted now it is to install the new keys
vskumar@192.168.116.134’s password:

Number of key(s) added: 1

Now try logging into the machine, with: “ssh ‘vskumar@192.168.116.134′”
and check to make sure that only the key(s) you wanted were added.

vskumar@ubuntu:~/.ssh$

==== Copied ssh key to VM1 ===>

======From VM1 =====>
vskumar@VM1:~$
vskumar@VM1:~$ ssh -V
OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g 1 Mar 2016
vskumar@VM1:~$ service ssh stop
Failed to stop ssh.service: Unit ssh.service not loaded.
vskumar@VM1:~$ apt-get -purge openssh-server
E: Command line option ‘p’ [from -purge] is not understood in combination with the other options.
vskumar@VM1:~$ sudo apt-get -purge openssh-server
[sudo] password for vskumar:
E: Command line option ‘p’ [from -purge] is not understood in combination with the other options.
vskumar@VM1:~$ sudo apt-get purge openssh-server
Reading package lists… Done
Building dependency tree
Reading state information… Done
Package ‘openssh-server’ is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 432 not upgraded.
vskumar@VM1:~$ ssh -V
OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g 1 Mar 2016
vskumar@VM1:~$ sudo apt-get purge openssh-client
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages will be REMOVED:
openssh-client* snapd* ubuntu-core-launcher*
0 upgraded, 0 newly installed, 3 to remove and 429 not upgraded.
After this operation, 61.7 MB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database … 176110 files and directories currently installed.)
Removing ubuntu-core-launcher (2.25) …
Removing snapd (2.25) …
Warning: Stopping snapd.service, but it can still be activated by:
snapd.socket
Purging configuration files for snapd (2.25) …
Final directory cleanup
Discarding preserved snap namespaces
umount: /run/snapd/ns/*.mnt: mountpoint not found
umount: /run/snapd/ns/: mountpoint not found
Removing extra snap-confine apparmor rules
Removing snapd state
Removing openssh-client (1:7.2p2-4ubuntu2.2) …
Purging configuration files for openssh-client (1:7.2p2-4ubuntu2.2) …
Processing triggers for man-db (2.7.5-1) …
vskumar@VM1:~$
vskumar@VM1:~$ ssh -V
bash: /usr/bin/ssh: No such file or directory
vskumar@VM1:~$

vskumar@VM1:~$ sudo apt-get update
0% [Working]
Get:1 http://security.ubuntu.com/ubuntu xenial-security InRelease [107 kB]
Hit:2 http://us.archive.ubuntu.com/ubuntu xenial InRelease
Get:3 http://us.archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu xenial-backports InRelease [107 kB]
Get:5 http://security.ubuntu.com/ubuntu xenial-security/main amd64 DEP-11 Metadata [67.7 kB]
Get:6 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [783 kB]
Get:7 http://security.ubuntu.com/ubuntu xenial-security/main DEP-11 64×64 Icons [72.6 kB]
Get:8 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 DEP-11 Metadata [107 kB]
Get:9 http://security.ubuntu.com/ubuntu xenial-security/universe DEP-11 64×64 Icons [147 kB]
Get:10 http://us.archive.ubuntu.com/ubuntu xenial-updates/main i386 Packages [718 kB]
Get:11 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 DEP-11 Metadata [319 kB]
Get:12 http://us.archive.ubuntu.com/ubuntu xenial-updates/main DEP-11 64×64 Icons [226 kB]
Get:13 http://us.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [631 kB]
Get:14 http://us.archive.ubuntu.com/ubuntu xenial-updates/universe i386 Packages [577 kB]
Get:15 http://us.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 DEP-11 Metadata [246 kB]
Get:16 http://us.archive.ubuntu.com/ubuntu xenial-updates/universe DEP-11 64×64 Icons [331 kB]
Get:17 http://us.archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 DEP-11 Metadata [5,964 B]
Get:18 http://us.archive.ubuntu.com/ubuntu xenial-backports/main amd64 DEP-11 Metadata [3,324 B]
Get:19 http://us.archive.ubuntu.com/ubuntu xenial-backports/universe amd64 DEP-11 Metadata [5,088 B]
Fetched 4,562 kB in 24s (187 kB/s)
Reading package lists… Done
vskumar@VM1:~$

vskumar@VM1:~$
vskumar@VM1:~$ sudo apt-get install openssh-server
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following additional packages will be installed:
ncurses-term openssh-client openssh-sftp-server ssh-import-id
Suggested packages:
ssh-askpass libpam-ssh keychain monkeysphere rssh molly-guard
The following NEW packages will be installed:
ncurses-term openssh-client openssh-server openssh-sftp-server ssh-import-id
0 upgraded, 5 newly installed, 0 to remove and 429 not upgraded.
Need to get 1,222 kB of archives.
After this operation, 8,917 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssh-client amd64 1:7.2p2-4ubuntu2.4 [589 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 ncurses-term all 6.0+20160213-1ubuntu1 [249 kB]
Get:3 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssh-sftp-server amd64 1:7.2p2-4ubuntu2.4 [38.7 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssh-server amd64 1:7.2p2-4ubuntu2.4 [335 kB]
Get:5 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 ssh-import-id all 5.5-0ubuntu1 [10.2 kB]
Fetched 1,222 kB in 7s (160 kB/s)
Preconfiguring packages …
Selecting previously unselected package openssh-client.
(Reading database … 176023 files and directories currently installed.)
Preparing to unpack …/openssh-client_1%3a7.2p2-4ubuntu2.4_amd64.deb …
Unpacking openssh-client (1:7.2p2-4ubuntu2.4) …
Selecting previously unselected package ncurses-term.
Preparing to unpack …/ncurses-term_6.0+20160213-1ubuntu1_all.deb …
Unpacking ncurses-term (6.0+20160213-1ubuntu1) …
Selecting previously unselected package openssh-sftp-server.
Preparing to unpack …/openssh-sftp-server_1%3a7.2p2-4ubuntu2.4_amd64.deb …
Unpacking openssh-sftp-server (1:7.2p2-4ubuntu2.4) …
Selecting previously unselected package openssh-server.
Preparing to unpack …/openssh-server_1%3a7.2p2-4ubuntu2.4_amd64.deb …
Unpacking openssh-server (1:7.2p2-4ubuntu2.4) …
Selecting previously unselected package ssh-import-id.
Preparing to unpack …/ssh-import-id_5.5-0ubuntu1_all.deb …
Unpacking ssh-import-id (5.5-0ubuntu1) …
Processing triggers for man-db (2.7.5-1) …
Processing triggers for ufw (0.35-0ubuntu2) …
Processing triggers for systemd (229-4ubuntu19) …
Processing triggers for ureadahead (0.100.0-19) …
Setting up openssh-client (1:7.2p2-4ubuntu2.4) …
Setting up ncurses-term (6.0+20160213-1ubuntu1) …
Setting up openssh-sftp-server (1:7.2p2-4ubuntu2.4) …
Setting up openssh-server (1:7.2p2-4ubuntu2.4) …
Creating SSH2 RSA key; this may take some time …
2048 SHA256:4efQhtH82rrRfTvvYxt3Wu7lJg0HJcW66yEi6WaTN+c root@VM1 (RSA)
Creating SSH2 DSA key; this may take some time …
1024 SHA256:fGZ3vX279MRTXsRhzYyHSPIwVv7ge2/WRQmh+SHlIZo root@VM1 (DSA)
Creating SSH2 ECDSA key; this may take some time …
256 SHA256:ZPPT6yQv8nAC1A6cDkeIssDYiim81f4/88I+NNVm1Iw root@VM1 (ECDSA)
Creating SSH2 ED25519 key; this may take some time …
256 SHA256:5rZGM1Q0vbVD82kcvKS4NdtzCGgDIaiEjL+C01+iJgU root@VM1 (ED25519)
Setting up ssh-import-id (5.5-0ubuntu1) …
Processing triggers for systemd (229-4ubuntu19) …
Processing triggers for ureadahead (0.100.0-19) …
Processing triggers for ufw (0.35-0ubuntu2) …
vskumar@VM1:~$
vskumar@VM1:~$ ssh -V
OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g 1 Mar 2016
vskumar@VM1:~$

==========================>

 

===Connecting to >
vskumar@VM1:~$ ssh vskumar@Ans-ControlMachine
ssh: Could not resolve hostname ans-controlmachine: Name or service not known
vskumar@VM1:~$ ssh vskumar@192.168.116.132
The authenticity of host ‘192.168.116.132 (192.168.116.132)’ can’t be established.
ECDSA key fingerprint is SHA256:sIDDAzkiGiTCzpGHOTEU3QbG/oNn4DNvXxHtm7kzAZ4.
Are you sure you want to continue connecting (yes/no)? y
Please type ‘yes’ or ‘no’: yes
Warning: Permanently added ‘192.168.116.132’ (ECDSA) to the list of known hosts.
vskumar@192.168.116.132’s password:
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.10.0-28-generic x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

437 packages can be updated.
251 updates are security updates.

 

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

vskumar@ubuntu:~$

vskumar@ubuntu:~$ pwd
/home/vskumar
vskumar@ubuntu:~$ cat /etc/hostname
Ans-ControlMachine
vskumar@ubuntu:~$ exit
logout
Connection to 192.168.116.132 closed.
vskumar@VM1:~$ cat /etc/hostname
VM1
vskumar@VM1:~$
==== Connected from VM1 to ======>
==== Ans-ControlMachine and exit ======>

I am connecting to VM1 from Ans-ControlMachine through ssh.

== Connecting to VM1 from ==>
====Ans-ControlMachine =====>
vskumar@ubuntu:~/.ssh$ ssh vskumar@192.168.116.134
The authenticity of host ‘192.168.116.134 (192.168.116.134)’ can’t be established.
ECDSA key fingerprint is SHA256:ZPPT6yQv8nAC1A6cDkeIssDYiim81f4/88I+NNVm1Iw.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.116.134’ (ECDSA) to the list of known hosts.
vskumar@192.168.116.134’s password:
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.10.0-28-generic x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

437 packages can be updated.
251 updates are security updates.

 

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

vskumar@VM1:~$ cat /etc/hostname
VM1
vskumar@VM1:~$
vskumar@VM1:~$
vskumar@VM1:~$ exit
logout
Connection to 192.168.116.134 closed.
vskumar@ubuntu:~/.ssh$
vskumar@ubuntu:~/.ssh$ cat /etc/hostname
Ans-ControlMachine
vskumar@ubuntu:~/.ssh$
======= Exit from VM1 And back ====>
==== to Ans-ControlMachine ====>

 

=== Connecting from VM1 to VM2 ===>
== Connecting in the same SSH ====>
== From VM1 to Ans-ControlMachine ====>
== You can play around with ssh ====>
== Across VMs by using IPs ========>
vskumar@VM2:~$ ssh -V
OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g 1 Mar 2016
vskumar@VM2:~$ sudo ssh vskumar@VM1
[sudo] password for vskumar:
ssh: Could not resolve hostname vm1: Name or service not known
vskumar@VM2:~$ sudo ssh vskumar@192.168.116.134
The authenticity of host ‘192.168.116.134 (192.168.116.134)’ can’t be established.
ECDSA key fingerprint is SHA256:ZPPT6yQv8nAC1A6cDkeIssDYiim81f4/88I+NNVm1Iw.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.116.134’ (ECDSA) to the list of known hosts.
vskumar@192.168.116.134’s password:
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.10.0-28-generic x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

437 packages can be updated.
251 updates are security updates.

Last login: Sat May 26 06:00:10 2018 from 192.168.116.132
vskumar@VM1:~$ cat /etc/hostname
VM1
vskumar@VM1:~$ ssh vskumar@192.168.116.132
vskumar@192.168.116.132’s password:
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.10.0-28-generic x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

437 packages can be updated.
251 updates are security updates.

Last login: Sat May 26 05:55:36 2018 from 192.168.116.134
vskumar@ubuntu:~$ cat /etc/hostname
Ans-ControlMachine
vskumar@ubuntu:~$
vskumar@ubuntu:~$ exit
logout
Connection to 192.168.116.132 closed.
vskumar@VM1:~$

vskumar@VM1:~$ exit
logout
Connection to 192.168.116.134 closed.
vskumar@VM2:~$ cat /etc/hostname
VM2
vskumar@VM2:~$
== We have played around 3 VMs ===>
=== With SSH =====================>

 

=== Connecting from VM2 ===>
==== tO Ans-ControlMachine===>
vskumar@VM2:~$ ssh vskumar@192.168.116.132
The authenticity of host ‘192.168.116.132 (192.168.116.132)’ can’t be established.
ECDSA key fingerprint is SHA256:sIDDAzkiGiTCzpGHOTEU3QbG/oNn4DNvXxHtm7kzAZ4.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.116.132’ (ECDSA) to the list of known hosts.
vskumar@192.168.116.132’s password:
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.10.0-28-generic x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

437 packages can be updated.
251 updates are security updates.

Last login: Sat May 26 06:05:18 2018 from 192.168.116.134
vskumar@ubuntu:~$
vskumar@ubuntu:~$ cat /etc/hostname
Ans-ControlMachine
vskumar@ubuntu:~$
vskumar@ubuntu:~$ exit
logout
Connection to 192.168.116.132 closed.
vskumar@VM2:~$
==== Conneted from VM2 ==>

=== Removing ssh from VM2 ====>
== To have clean files ========>
vskumar@VM2:~$ sudo apt-get purge openssh-client
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages will be REMOVED:
openssh-client* snapd* ubuntu-core-launcher*
0 upgraded, 0 newly installed, 3 to remove and 429 not upgraded.
After this operation, 61.7 MB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database … 176110 files and directories currently installed.)
Removing ubuntu-core-launcher (2.25) …
Removing snapd (2.25) …
Warning: Stopping snapd.service, but it can still be activated by:
snapd.socket
Purging configuration files for snapd (2.25) …
Final directory cleanup
Discarding preserved snap namespaces
umount: /run/snapd/ns/*.mnt: mountpoint not found
umount: /run/snapd/ns/: mountpoint not found
Removing extra snap-confine apparmor rules
Removing snapd state
Removing openssh-client (1:7.2p2-4ubuntu2.2) …
Purging configuration files for openssh-client (1:7.2p2-4ubuntu2.2) …
Processing triggers for man-db (2.7.5-1) …
vskumar@VM2:~$
vskumar@VM2:~$ ssh -V
bash: /usr/bin/ssh: No such file or directory
vskumar@VM2:~$
===== SSH is removed in VM2 ====>

=== Installing ssh in VM2 ====>
vskumar@VM2:~$ sudo apt-get install openssh-server
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following additional packages will be installed:
ncurses-term openssh-client openssh-sftp-server ssh-import-id
Suggested packages:
ssh-askpass libpam-ssh keychain monkeysphere rssh molly-guard
The following NEW packages will be installed:
ncurses-term openssh-client openssh-server openssh-sftp-server ssh-import-id
0 upgraded, 5 newly installed, 0 to remove and 429 not upgraded.
Need to get 633 kB/1,222 kB of archives.
After this operation, 8,917 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 ncurses-term all 6.0+20160213-1ubuntu1 [249 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssh-sftp-server amd64 1:7.2p2-4ubuntu2.4 [38.7 kB]
Get:3 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssh-server amd64 1:7.2p2-4ubuntu2.4 [335 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 ssh-import-id all 5.5-0ubuntu1 [10.2 kB]
Fetched 633 kB in 34s (18.5 kB/s)
Preconfiguring packages …
Selecting previously unselected package openssh-client.
(Reading database … 176023 files and directories currently installed.)
Preparing to unpack …/openssh-client_1%3a7.2p2-4ubuntu2.4_amd64.deb …
Unpacking openssh-client (1:7.2p2-4ubuntu2.4) …
Selecting previously unselected package ncurses-term.
Preparing to unpack …/ncurses-term_6.0+20160213-1ubuntu1_all.deb …
Unpacking ncurses-term (6.0+20160213-1ubuntu1) …
Selecting previously unselected package openssh-sftp-server.
Preparing to unpack …/openssh-sftp-server_1%3a7.2p2-4ubuntu2.4_amd64.deb …
Unpacking openssh-sftp-server (1:7.2p2-4ubuntu2.4) …
Selecting previously unselected package openssh-server.
Preparing to unpack …/openssh-server_1%3a7.2p2-4ubuntu2.4_amd64.deb …
Unpacking openssh-server (1:7.2p2-4ubuntu2.4) …
Selecting previously unselected package ssh-import-id.
Preparing to unpack …/ssh-import-id_5.5-0ubuntu1_all.deb …
Unpacking ssh-import-id (5.5-0ubuntu1) …
Processing triggers for man-db (2.7.5-1) …
Processing triggers for ufw (0.35-0ubuntu2) …
Processing triggers for systemd (229-4ubuntu19) …
Processing triggers for ureadahead (0.100.0-19) …
Setting up openssh-client (1:7.2p2-4ubuntu2.4) …
Setting up ncurses-term (6.0+20160213-1ubuntu1) …
Setting up openssh-sftp-server (1:7.2p2-4ubuntu2.4) …
Setting up openssh-server (1:7.2p2-4ubuntu2.4) …
Creating SSH2 RSA key; this may take some time …
2048 SHA256:JzaY4P+pXshET4rzo/+nkNxGxWe9Hl2Vljd5OV9upko root@VM2 (RSA)
Creating SSH2 DSA key; this may take some time …
1024 SHA256:M49R3FKLVlxGFRw8Caf+s1ktna9h3Ak5Ls93+TyBrac root@VM2 (DSA)
Creating SSH2 ECDSA key; this may take some time …
256 SHA256:/HtM2RyrOSeFO01WW3d1S5fcB9mBM7MApniY54Nq4k4 root@VM2 (ECDSA)
Creating SSH2 ED25519 key; this may take some time …
256 SHA256:lbmYMsRLrCR23898dlX4TidNFYkasm3w/lpyl0oZXfg root@VM2 (ED25519)
Setting up ssh-import-id (5.5-0ubuntu1) …
Processing triggers for systemd (229-4ubuntu19) …
Processing triggers for ureadahead (0.100.0-19) …
Processing triggers for ufw (0.35-0ubuntu2) …
vskumar@VM2:~$ ssh -V
OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g 1 Mar 2016
vskumar@VM2:~$
== Now VM2 has the complete ssh =====>

=== Now let me connect to ===>
====Ans-ControlMachine ======>
== From VM2 =================>

vskumar@VM2:~$ sudo ssh vskumar@192.168.116.132
The authenticity of host ‘192.168.116.132 (192.168.116.132)’ can’t be established.
ECDSA key fingerprint is SHA256:sIDDAzkiGiTCzpGHOTEU3QbG/oNn4DNvXxHtm7kzAZ4.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.116.132’ (ECDSA) to the list of known hosts.
vskumar@192.168.116.132’s password:
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.10.0-28-generic x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

437 packages can be updated.
251 updates are security updates.

Last login: Sat May 26 06:58:14 2018 from 192.168.116.135
vskumar@ubuntu:~$ cat /etc/hostname
Ans-ControlMachine
vskumar@ubuntu:~$
vskumar@ubuntu:~$ exit
logout
Connection to 192.168.116.132 closed.
vskumar@VM2:~$
== Connected and exited ====>

=== Now let me connect to ===>
====From Ans-ControlMachine ======>
==== TO VM2 =================>
vskumar@ubuntu:~/.ssh$ ssh vskumar@192.168.116.135
The authenticity of host ‘192.168.116.135 (192.168.116.135)’ can’t be established.
ECDSA key fingerprint is SHA256:/HtM2RyrOSeFO01WW3d1S5fcB9mBM7MApniY54Nq4k4.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.116.135’ (ECDSA) to the list of known hosts.
vskumar@192.168.116.135’s password:
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.10.0-28-generic x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

437 packages can be updated.
251 updates are security updates.

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

vskumar@VM2:~$ cat /etc/hostname
VM2
vskumar@VM2:~$
vskumar@VM2:~$ exit
logout
Connection to 192.168.116.135 closed.
vskumar@ubuntu:~/.ssh$
===== Connected to VM2 and exited ===>

== SSh key added in VM2 ===>
====From Ans-ControlMachine ======>
vskumar@ubuntu:~/.ssh$
vskumar@ubuntu:~/.ssh$ ssh ssh-copy-id vskumar@192.168.116.135
ssh: Could not resolve hostname ssh-copy-id: Name or service not known
vskumar@ubuntu:~/.ssh$ sudo ssh-copy-id vskumar@192.168.116.135
[sudo] password for vskumar:
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: “/home/vskumar/.ssh/id_rsa.pub”
The authenticity of host ‘192.168.116.135 (192.168.116.135)’ can’t be established.
ECDSA key fingerprint is SHA256:/HtM2RyrOSeFO01WW3d1S5fcB9mBM7MApniY54Nq4k4.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed — if you are prompted now it is to install the new keys
vskumar@192.168.116.135’s password:

Number of key(s) added: 1

Now try logging into the machine, with: “ssh ‘vskumar@192.168.116.135′”
and check to make sure that only the key(s) you wanted were added.

vskumar@ubuntu:~/.ssh$
===== So now, we have made correct ssh connection ====>
=== with VM2 also ============================>

Now, let us try with VM3 as below:

=== Status of VM3 ====>
vskumar@VM3:~$ cat /etc/hostname
VM3
vskumar@VM3:~$ ssh -V
OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g 1 Mar 2016
vskumar@VM3:~$
vskumar@VM3:~$ ssh vskumar@192.168.116.135
The authenticity of host ‘192.168.116.135 (192.168.116.135)’ can’t be established.
ECDSA key fingerprint is SHA256:/HtM2RyrOSeFO01WW3d1S5fcB9mBM7MApniY54Nq4k4.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.116.135’ (ECDSA) to the list of known hosts.
vskumar@192.168.116.135’s password:
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.10.0-28-generic x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

437 packages can be updated.
251 updates are security updates.

Last login: Sat May 26 07:13:50 2018 from 192.168.116.132
vskumar@VM2:~$ cat /etc/hostname
VM2
vskumar@VM2:~$
vskumar@VM2:~$ ssh vskumar@192.168.116.132
vskumar@192.168.116.132’s password:
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.10.0-28-generic x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

437 packages can be updated.
251 updates are security updates.

Last login: Sat May 26 07:13:07 2018 from 192.168.116.132
vskumar@ubuntu:~$ cat /etc/hostname
Ans-ControlMachine
vskumar@ubuntu:~$
vskumar@ubuntu:~$ exit
logout
Connection to 192.168.116.132 closed.
vskumar@VM2:~$
vskumar@VM2:~$ exit
logout
Connection to 192.168.116.135 closed.
vskumar@VM3:~$
vskumar@VM3:~$ ssh vskumar@192.168.116.132
The authenticity of host ‘192.168.116.132 (192.168.116.132)’ can’t be established.
ECDSA key fingerprint is SHA256:sIDDAzkiGiTCzpGHOTEU3QbG/oNn4DNvXxHtm7kzAZ4.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.116.132’ (ECDSA) to the list of known hosts.
vskumar@192.168.116.132’s password:
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.10.0-28-generic x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

437 packages can be updated.
251 updates are security updates.

Last login: Sat May 26 07:35:04 2018 from 192.168.116.135
vskumar@ubuntu:~$ cat /etc/hostname
Ans-ControlMachine
vskumar@ubuntu:~$ exit
logout
Connection to 192.168.116.132 closed.
vskumar@VM3:~$
== So, we could connect from VM3 ====>
=== To all 3 other VMs ==============>
== The issues is resolved for ssh in VM3 ===>

Now, we are ready to use these ssh connection made machines for Ansible future exercises.

 

In the following video I have demonstrated with trouble shoot methods also:

https://youtu.be/OXd95oKvmEM

26.DevOps:How to install Apache-Ant for Ubuntu ?:

Ant-Logo

 

 

In this blog, I would like to demonstrate the Apache-Ant installtion on Ubuntu.

What are the pre-requisites:
You need to have JDK 8/9 in your Ubuntu machine.
If you do not have it please visit my blog to get the installation instructions.
Please go through my JENKINS Instllation blog.
It has JDK installation procedure also.
URL: https://vskumar.blog/2017/11/25/1-devops-jenkins2-9-installation-with-java-9-on-windows-10/

How to uninstall existing ant?:
Step1:
I have ant installed in my ubuntu VM.
1st let me remove it and restart the install process:
We need to use the below command:
sudo apt-get remove ant
===== Screen display =====>
vskumar@ubuntu:~$ sudo apt-get remove ant
[sudo] password for vskumar:
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages will be REMOVED:
ant ant-optional
0 upgraded, 0 newly installed, 2 to remove and 4 not upgraded.
After this operation, 3,108 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database … 236912 files and directories currently installed.)
Removing ant-optional (1.9.6-1ubuntu1) …
Removing ant (1.9.6-1ubuntu1) …
Processing triggers for man-db (2.7.5-1) …
========= Ant is Removed ===>

Step2:
=== Checking Ant version ===>
vskumar@ubuntu:~$ ant -v
The program ‘ant’ is currently not installed. You can install it by typing:
sudo apt install ant
vskumar@ubuntu:~$ D
===Now there is no Ant setup ===>
Looks like; still the ant is existing.

Step3:
Also please let us note the following:
If we want to delete configuration and/or data files of ant from Ubuntu Xenial completely,
then the below command will work:
sudo apt-get purge ant
== Screen display ===>
vskumar@ubuntu:~$ sudo apt-get purge ant
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages will be REMOVED:
ant* ant-optional*
0 upgraded, 0 newly installed, 2 to remove and 4 not upgraded.
After this operation, 3,108 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database … 236912 files and directories currently installed.)
Removing ant-optional (1.9.6-1ubuntu1) …
Removing ant (1.9.6-1ubuntu1) …
Processing triggers for man-db (2.7.5-1) …
vskumar@ubuntu:~$
======================>

Now, let us check it.
=== Check the version now also ===>
vskumar@ubuntu:~$
vskumar@ubuntu:~$ ant -v
bash: /usr/bin/ant: No such file or directory
vskumar@ubuntu:~$
=================================>

Still you if you feel ant older version is there, we can follow the below step also:
To delete configuration and/or data files of ant and it’s dependencies from Ubuntu Xenial
then we should execute the below command:
sudo apt-get purge –auto-remove ant

Now, we will see how to install, configure and compile ant latest version1.10.1 ?:

Step1:
We need to update the packages/repos in Ubuntu VM as below:
sudo apt-get update
==== Screen display ======>
vskumar@ubuntu:~$
vskumar@ubuntu:~$ sudo apt-get update
[sudo] password for vskumar:
Hit:1 http://archive.ubuntu.com/ubuntu xenial InRelease
Hit:2 http://ppa.launchpad.net/ansible/ansible/ubuntu xenial InRelease
Hit:3 http://ppa.launchpad.net/webupd8team/java/ubuntu xenial InRelease
Get:4 https://download.docker.com/linux/ubuntu xenial InRelease [65.8 kB]
Ign:5 https://apt.datadoghq.com stable InRelease
Get:6 https://apt.datadoghq.com stable Release [4,525 B]
Get:7 https://apt.datadoghq.com stable Release.gpg [819 B]
Ign:8 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial InRelease
Ign:9 https://pkg.jenkins.io/debian-stable binary/ InRelease
Ign:10 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial InRelease
Get:11 https://pkg.jenkins.io/debian-stable binary/ Release [2,042 B]
Get:12 https://pkg.jenkins.io/debian-stable binary/ Release.gpg [181 B]
Ign:13 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial Release
Ign:14 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial Release
Get:15 https://download.docker.com/linux/ubuntu xenial/edge amd64 Packages [4,793 B]
Ign:15 https://download.docker.com/linux/ubuntu xenial/edge amd64 Packages
Ign:16 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 amd64 Packages
Ign:17 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 all Packages
Ign:18 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 Translation-en_US
Ign:19 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 Translation-en
Ign:20 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 amd64 DEP-11 Metadata
Ign:21 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 DEP-11 64×64 Icons
Ign:22 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 amd64 Packages
Get:23 https://apt.datadoghq.com stable/6 amd64 Packages [2,447 B]
Ign:24 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 all Packages
Get:15 https://download.docker.com/linux/ubuntu xenial/edge amd64 Packages [4,521 B]
Ign:15 https://download.docker.com/linux/ubuntu xenial/edge amd64 Packages
Ign:25 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 Translation-en_US
Ign:26 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 Translation-en
Ign:27 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 amd64 DEP-11 Metadata
Ign:28 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 DEP-11 64×64 Icons
Ign:16 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 amd64 Packages
Ign:17 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 all Packages
Ign:18 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 Translation-en_US
Ign:19 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 Translation-en
Get:15 https://download.docker.com/linux/ubuntu xenial/edge amd64 Packages [29.9 kB]
Ign:20 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 amd64 DEP-11 Metadata
Ign:21 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 DEP-11 64×64 Icons
Ign:22 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 amd64 Packages
Ign:24 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 all Packages
Ign:25 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 Translation-en_US
Ign:26 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 Translation-en
Get:29 https://pkg.jenkins.io/debian-stable binary/ Packages [12.7 kB]
Ign:29 https://pkg.jenkins.io/debian-stable binary/ Packages
Ign:27 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 amd64 DEP-11 Metadata
Ign:28 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 DEP-11 64×64 Icons
Ign:16 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 amd64 Packages
Ign:17 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 all Packages
Ign:18 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 Translation-en_US
Ign:19 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 Translation-en
Ign:20 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 amd64 DEP-11 Metadata
Ign:21 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 DEP-11 64×64 Icons
Get:29 https://pkg.jenkins.io/debian-stable binary/ Packages [11.9 kB]
Ign:22 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 amd64 Packages
Ign:24 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 all Packages
Ign:25 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 Translation-en_US
Ign:26 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 Translation-en
Ign:27 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 amd64 DEP-11 Metadata
Ign:28 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 DEP-11 64×64 Icons
Ign:16 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 amd64 Packages
Ign:17 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 all Packages
Ign:18 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 Translation-en_US
Ign:19 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 Translation-en
Ign:20 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 amd64 DEP-11 Metadata
Ign:21 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 DEP-11 64×64 Icons
Ign:22 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 amd64 Packages
Ign:24 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 all Packages
Ign:25 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 Translation-en_US
Ign:26 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 Translation-en
Ign:27 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 amd64 DEP-11 Metadata
Ign:28 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 DEP-11 64×64 Icons
Ign:16 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 amd64 Packages
Ign:17 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 all Packages
Ign:18 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 Translation-en_US
Ign:19 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 Translation-en
Ign:20 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 amd64 DEP-11 Metadata
Ign:21 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 DEP-11 64×64 Icons
Ign:22 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 amd64 Packages
Ign:24 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 all Packages
Ign:25 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 Translation-en_US
Ign:26 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 Translation-en
Ign:27 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 amd64 DEP-11 Metadata
Ign:28 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 DEP-11 64×64 Icons
Err:16 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 amd64 Packages
403 Forbidden
Ign:17 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 all Packages
Ign:18 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 Translation-en_US
Ign:19 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 Translation-en
Ign:20 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 amd64 DEP-11 Metadata
Ign:21 https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial/test-17.06 DEP-11 64×64 Icons
Err:22 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 amd64 Packages
403 Forbidden
Ign:24 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 all Packages
Ign:25 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 Translation-en_US
Ign:26 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 Translation-en
Ign:27 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 amd64 DEP-11 Metadata
Ign:28 https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial/test-17.06 DEP-11 64×64 Icons
Fetched 118 kB in 35s (3,328 B/s)
Reading package lists… Done
W: The repository ‘https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu xenial Release’ does not have a Release file.
N: Data from such a repository can’t be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: The repository ‘https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu xenial Release’ does not have a Release file.
N: Data from such a repository can’t be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: Failed to fetch https://storebits.docker.com/ee/ubuntu/<subscription-id>/ubuntu/dists/xenial/test-17.06/binary-amd64/Packages 403 Forbidden
E: Failed to fetch https://storebits.docker.com/ee/ubuntu/vskumardocker/ubuntu/dists/xenial/test-17.06/binary-amd64/Packages 403 Forbidden
E: Some index files failed to download. They have been ignored, or old ones used instead.
vskumar@ubuntu:~$
====================================>

Step2:
Now, We can get the install file of ant with the below command:
sudo apt-get install ant
==== Screen Display =====>
vskumar@ubuntu:~$
vskumar@ubuntu:~$ sudo apt-get install ant
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following additional packages will be installed:
ant-optional
Suggested packages:
ant-doc ant-gcj default-jdk | java-compiler | java-sdk ant-optional-gcj
antlr javacc jython libbcel-java libbsf-java libgnumail-java libjdepend-java
liboro-java libregexp-java
The following NEW packages will be installed:
ant ant-optional
0 upgraded, 2 newly installed, 0 to remove and 4 not upgraded.
Need to get 0 B/2,205 kB of archives.
After this operation, 3,108 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Selecting previously unselected package ant.
(Reading database … 236678 files and directories currently installed.)
Preparing to unpack …/ant_1.9.6-1ubuntu1_all.deb …
Unpacking ant (1.9.6-1ubuntu1) …
Selecting previously unselected package ant-optional.
Preparing to unpack …/ant-optional_1.9.6-1ubuntu1_all.deb …
Unpacking ant-optional (1.9.6-1ubuntu1) …
Processing triggers for man-db (2.7.5-1) …
Setting up ant (1.9.6-1ubuntu1) …
Setting up ant-optional (1.9.6-1ubuntu1) …
vskumar@ubuntu:~$
==========================>

Step3:
Now let me check its version.
===== Version check ===>
vskumar@ubuntu:~$ ant -v
Apache Ant(TM) version 1.9.6 compiled on July 8 2015
Trying the default build file: build.xml
Buildfile: build.xml does not exist!
Build failed
vskumar@ubuntu:~$
====================>

Step4:
We need to Install Apache Ant on Ubuntu 16.04 using SDKMan.
SDKMAN is a tool which can be usd to manage parallel versions of multiple
Software Development Kits on most Unix based systems.
The same way, we can leverage SDKMAN to install Apache Ant on Ubuntu 16.04.
Using the below command:
sdk install ant
Before doing this I need to install SDK in my ubuntu VM.

===== Screen display =====>
vskumar@ubuntu:~$
vskumar@ubuntu:~$ curl -s “https://get.sdkman.io&#8221; | bash

-+syyyyyyys:
`/yho:` -yd.
`/yh/` +m.
.oho. hy .`
.sh/` :N` `-/o` `+dyyo:.
.yh:` `M- `-/osysoym :hs` `-+sys: hhyssssssssy+
.sh:` `N: ms/-“ yy.yh- -hy. `.N-““““+N.
`od/` `N- -/oM- ddd+` `sd: hNNm -N:
:do` .M. dMMM- `ms. /d+` `NMMs `do
.yy- :N` “`mMMM. – -hy. /MMM: yh
`+d+` `:/oo/` `-/osyh/ossssssdNMM` .sh: yMMN` /m.
-dh- :ymNMMMMy `-/shmNm-`:N/-.“ `.sN /N- `NMMy .m/
`oNs` -hysosmMMMMydmNmds+-.:ohm : sd` :MMM/ yy
.hN+ /d: -MMMmhs/-.` .MMMh .ss+- `yy` sMMN` :N.
:mN/ `N/ `o/-` :MMMo +MMMN- .` `ds mMMh do
/NN/ `N+….–:/+oooosooo+:sMMM: hMMMM: `my .m+ -MMM+ :N.
/NMo -+ooooo+/:-….`…:+hNMN. `NMMMd` .MM/ -m: oMMN. hs
-NMd` :mm -MMMm- .s/ -MMm. /m- mMMd -N.
`mMM/ .- /MMh. -dMo -MMMy od. .MMMs..—yh
+MMM. sNo`.sNMM+ :MMMM/ sh`+MMMNmNm+++-
mMMM- /–ohmMMM+ :MMMMm. `hyymmmdddo
MMMMh. ““ `-+yy/`yMMM/ :MMMMMy -sm:.“..-:-.`
dMMMMmo-.“““..-:/osyhddddho. `+shdh+. hMMM: :MmMMMM/ ./yy/` `:sys+/+sh/
.dMMMMMMmdddddmmNMMMNNNNNMMMMMs sNdo- dMMM- `-/yd/MMMMm-:sy+. :hs- /N`
`/ymNNNNNNNmmdys+/::—-/dMMm: +m- mMMM+ohmo/.` sMMMMdo- .om: `sh
`.—–+/.` `.-+hh/` `od. NMMNmds/ `mmy:` +mMy `:yy.
/moyso+//+ossso:. .yy` `dy+:` .. :MMMN+—/oys:
/+m: `.-:::-` /d+ +MMMMMMMNh:`
+MN/ -yh. `+hddhy+.
/MM+ .sh:
:NMo -sh/
-NMs `/yy:
.NMy `:sh+.
`mMm` ./yds-
`dMMMmyo:-.““.-:oymNy:`
+NMMMMMMMMMMMMMMMMms:`
-+shmNMMMNmdy+:`

Now attempting installation…

Looking for a previous installation of SDKMAN…
Looking for unzip…
Looking for zip…
Looking for curl…
Looking for sed…
Installing SDKMAN scripts…
Create distribution directories…
Getting available candidates…
Prime the config file…
Download script archive…
######################################################################## 100.0%
Extract script archive…
Install scripts…
Set version to 5.6.3+299 …
Attempt update of interactive bash profile on regular UNIX…
Added sdkman init snippet to /home/vskumar/.bashrc
Attempt update of zsh profile…
Updated existing /home/vskumar/.zshrc

All done!

Please open a new terminal, or run the following in the existing one:

source “/home/vskumar/.sdkman/bin/sdkman-init.sh”

Then issue the following command:

sdk help

Enjoy!!!
vskumar@ubuntu:~$
== SDK installed =====>
We need to use the below command:
=====>
vskumar@ubuntu:~$ source “$HOME/.sdkman/bin/sdkman-init.sh”
vskumar@ubuntu:~$
======>

Now, let us check SDK Version.
===== SDK Version checking ====>
vskumar@ubuntu:~$ sdk version
==== BROADCAST =================================================================
* 09/05/18: sbt 1.1.5 released on SDKMAN! #scala
* 09/05/18: Springboot 2.0.2.RELEASE released on SDKMAN! #springboot
* 09/05/18: Springboot 1.5.13.RELEASE released on SDKMAN! #springboot
================================================================================

SDKMAN 5.6.3+299
vskumar@ubuntu:~$
==========================>

Step5:

Now, let us use the below command:
sdk install ant

=== Screen display ==>
vskumar@ubuntu:~$
vskumar@ubuntu:~$ sdk install ant

 

Downloading: ant 1.10.1

In progress…

######################################################################## 100.0%

Installing: ant 1.10.1
Done installing!

 

Setting ant 1.10.1 as default.
vskumar@ubuntu:~$
vskumar@ubuntu:~$
=================>

Step6:
Now, let us check the ant’s latest version:

== Screen display ===>
vskumar@ubuntu:~$ ant -v
Apache Ant(TM) version 1.10.1 compiled on February 2 2017
Trying the default build file: build.xml
Buildfile: build.xml does not exist!
Build failed
vskumar@ubuntu:~$
== Now version change you can see after SDK usage ===>

Step7:
How to Create ANT_HOME Environment Variables?:

Create an ant.sh file at /etc/profile.d folder (you can use vi with below command)

== Let us see the files===>
vskumar@ubuntu:~$ pwd
/home/vskumar
vskumar@ubuntu:~$ ls /etc/profile.d
appmenu-qt5.sh bash_completion.sh vte-2.91.sh
apps-bin-path.sh cedilla-portuguese.sh
vskumar@ubuntu:~$
==========================>
There is no ant.sh file.

sudo vi /etc/profile.d/ant.sh
Enter the follow content to the file:

export ANT_HOME=/usr/local/ant
export PATH=${ANT_HOME}/bin:${PATH}
Save the file.
====== ant.sh file creation ===>
vskumar@ubuntu:~$ sudo vim /etc/profile.d/ant.sh
vskumar@ubuntu:~$
vskumar@ubuntu:~$ sudo cat /etc/profile.d/ant.sh

export ANT_HOME=/usr/local/ant
export PATH=${ANT_HOME}/bin:${PATH}
vskumar@ubuntu:~$
vskumar@ubuntu:~$ ls /etc/profile.d
ant.sh apps-bin-path.sh cedilla-portuguese.sh
appmenu-qt5.sh bash_completion.sh vte-2.91.sh
vskumar@ubuntu:~$
============ Contents of ant.sh=====>

Step8:
We need to activate the above environment variables.
We can do that by log out and log in again or simply run below command:
source /etc/profile
==== Screen display ===>
vskumar@ubuntu:~$ source /etc/profile
vskumar@ubuntu:~$
=======================>

Now let us check the ant version after doing the above steps to observe the change:

==== Display ==>
vskumar@ubuntu:~$
vskumar@ubuntu:~$ ant -version
Apache Ant(TM) version 1.10.1 compiled on February 2 2017
vskumar@ubuntu:~$
== Now error now =====>

Finally, we have configured Apache Ant(TM) version 1.10.1 and compiled successfully.

For Ant installation on windows 10 visit my blog:

https://vskumar.blog/2018/05/12/24-devops-how-to-install-apache-ant-for-windows-10/

25.DevOps:How to install Apache-Maven for Windows 10 ?

Apache-Maven Logo

With reference to my previous blog for Maven installation on Ubuntu:
https://vskumar.blog/2018/05/05/21-devops-how-to-install-maven-3-3-9-on-ubuntu-linux/

In this blog, I have shown the steps for Maven installation on
Windows 10.

Step1:
Goto the site: http://maven.apache.org/download.cgi
You can find the file: apache-maven-3.5.3-bin.zip
Save it to your desired location.

Step2:
Unzip it and it show have created the folder as below:
E:\apache-maven-3.5.3-bin

Note: You can replace this folder path with your Maven path.

It should have the following files/folders:

E:\apache-maven-3.5.3-bin>dir/p
Volume in drive E is New Volume
Volume Serial Number is 1870-3E6A

Directory of E:\apache-maven-3.5.3-bin

05/12/2018 01:40 PM <DIR> .
05/12/2018 01:40 PM <DIR> ..
05/12/2018 01:40 PM <DIR> apache-maven-3.5.3
0 File(s) 0 bytes
3 Dir(s) 33,347,407,872 bytes free

E:\apache-maven-3.5.3-bin>
E:\apache-maven-3.5.3-bin>cd apache*
E:\apache-maven-3.5.3-bin\apache-maven-3.5.3>
E:\apache-maven-3.5.3-bin\apache-maven-3.5.3>dir/p
Volume in drive E is New Volume
Volume Serial Number is 1870-3E6A

Directory of E:\apache-maven-3.5.3-bin\apache-maven-3.5.3

05/12/2018 01:40 PM <DIR> .
05/12/2018 01:40 PM <DIR> ..
05/12/2018 01:40 PM <DIR> bin
05/12/2018 01:40 PM <DIR> boot
05/12/2018 01:40 PM <DIR> conf
05/12/2018 01:40 PM <DIR> lib
05/12/2018 01:40 PM 20,959 LICENSE
05/12/2018 01:40 PM 182 NOTICE
05/12/2018 01:40 PM 2,544 README.txt
3 File(s) 23,685 bytes
6 Dir(s) 33,347,407,872 bytes free

E:\apache-maven-3.5.3-bin\apache-maven-3.5.3>

Step3:
Let us update the windows system/environment variables:

Check for M2_HOME variable. If it is not there,
create a new one and add the below:
Variable Name : M2_HOME
Variable Value : E:\apache-maven-3.5.3-bin\apache-maven-3.5.3

In your system variables,
if you have MAVEN_HOME as avriable you need update its value also.
Now, append this path to your PATH variable also.

Step4:
Now, how to verify the installed Maven version ?:
Open a fresh windows command prompt.
Type mvn -version
You should see the screen output as below wuth its 3.5.3 version:
Microsoft Windows [Version 10.0.16299.431]
(c) 2017 Microsoft Corporation. All rights reserved.

C:\Users\Toshiba>mvn -version
Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-25T01:19:05+05:30)
Maven home: E:\apache-maven-3.5.3-bin\apache-maven-3.5.3
Java version: 9.0.1, vendor: Oracle Corporation
Java home: D:\Java\jdk-9.0.1
Default locale: en_US, platform encoding: Cp1252
OS name: “windows 10”, version: “10.0”, arch: “amd64”, family: “windows”

C:\Users\Toshiba>

If you are getting the above version display;

So it means you have the correct/latest Maven version in your machine.

 

24.DevOps: How to install Apache-Ant for Windows 10 ?

Ant-Logo

With reference to my previous blogs on DevOps CI Tools
installation/integration, in this blog you can learn on how to install ANT for Windows10.

Downloand windows 10 version of APACHE ANT from the below url:

http://redrockdigimark.com/apachemirror//ant/binaries/apache-ant-1.10.3-bin.zip

Assuming you have JDK and JAVA_Hoome are setup in windows variables environment.
If you need to install JDK in your windows machine, please go through my JENKINS
Instllation blog. It has JDK installation procedure also.
URL: https://vskumar.blog/2017/11/25/1-devops-jenkins2-9-installation-with-java-9-on-windows-10/

Unzip the file : apache-ant-1.10.3-bin.zip
Note this path. And go to Windows System variables and use new.
You can type the Variable name : ANT_HOME
Give your Ant software unzipped path, Variable value:
D:\Ant\apache-ant-1.10.3-bin\apache-ant-1.10.3\bin

Note: I gave my ANT path as example.

Goto System variables section and edit/add ANT_HOME variable and
give your current path:
D:\Ant\apache-ant-1.10.3-bin\apache-ant-1.10.3

And the variable can be named as %ANT_HOME%\bin

So you have updated the windows settings for ANT folder Location.

Now, open a fresh CMD window and check the ANT folder as below:
Microsoft Windows [Version 10.0.16299.431]
(c) 2017 Microsoft Corporation. All rights reserved.

C:\Users\Toshiba>echo %ANT_HOME%
D:\Ant\apache-ant-1.10.3-bin\apache-ant-1.10.3\bin

C:\Users\Toshiba>

How to cheeck your current ANT version?:
Now, In a fresh command window,
And apply as below:

C:\Users\Toshiba>echo %ANT_HOME%
D:\Ant\apache-ant-1.10.3-bin\apache-ant-1.10.3

C:\Users\Toshiba>ant -v
Apache Ant(TM) version 1.10.3 compiled on March 24 2018
Trying the default build file: build.xml
Buildfile: build.xml does not exist!
Build failed

C:\Users\Toshiba>

Now, it shows your ANT folder and its version also.
It means your ANT software can be used.

 

23.DevOps: How to install Ansible on Ubuntu [Linux] VM ?

 

ansible-logo.png

In this blog, I would like to demonstrate  “Installing Ansible on Ubuntu VM”.

At the End of this blog you can see the demonstrated Video.

Let us follow the below steps:

Step 1:
To get Ansible for Ubuntu is to add the project’s PPA (personal package archive) to ubuntu system.
We can add the Ansible PPA by typing the following command:

$sudo apt-add-repository ppa:ansible/ansible

=== Screen output ====>
vskumar@ubuntu:~$
vskumar@ubuntu:~$ sudo apt-add-repository ppa:ansible/ansible
[sudo] password for vskumar:
Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy.
Avoid writing scripts or custom code to deploy and update your applications— automate in a language that
approaches plain English, using SSH, with no agents to install on remote systems.

http://ansible.com/
More info: https://launchpad.net/~ansible/+archive/ubuntu/ansible
Press [ENTER] to continue or ctrl-c to cancel adding it

gpg: keyring `/tmp/tmpzhb6yoiy/secring.gpg’ created
gpg: keyring `/tmp/tmpzhb6yoiy/pubring.gpg’ created
gpg: requesting key 7BB9C367 from hkp server keyserver.ubuntu.com
gpg: /tmp/tmpzhb6yoiy/trustdb.gpg: trustdb created
gpg: key 7BB9C367: public key “Launchpad PPA for Ansible, Inc.” imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
OK
vskumar@ubuntu:~$
========= Added Ansible to PPA ===>
Step 2:
Now, let us refresh ubuntu [VM] system package index, so that it is aware of the packages available in the PPA.
Then, we can install the software.
We need to follow the below commands:
$sudo apt-get update
$sudo apt-get install ansible
==== Update package=======>
vskumar@ubuntu:~$ sudo apt-get update
Get:1 http://ppa.launchpad.net/ansible/ansible/ubuntu xenial InRelease [18.0 kB]
Hit:2 https://download.docker.com/linux/ubuntu xenial InRelease
Hit:3 http://archive.ubuntu.com/ubuntu xenial InRelease
Hit:4 http://ppa.launchpad.net/webupd8team/java/ubuntu xenial InRelease
Get:5 http://ppa.launchpad.net/ansible/ansible/ubuntu xenial/main amd64 Packages [540 B]
Ign:6 https://pkg.jenkins.io/debian-stable binary/ InRelease
Get:7 http://ppa.launchpad.net/ansible/ansible/ubuntu xenial/main i386 Packages [540 B]
Hit:8 https://pkg.jenkins.io/debian-stable binary/ Release
Get:10 http://ppa.launchpad.net/ansible/ansible/ubuntu xenial/main Translation-en [344 B]
Fetched 19.5 kB in 2s (7,857 B/s)
Reading package lists… Done
vskumar@ubuntu:~$
===== Updated =====>

Step 3:
Now, let us install Ansible as below:
==== Installing Ansible =====>
vskumar@ubuntu:~$ sudo apt-get install ansible
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following additional packages will be installed:
python-ecdsa python-httplib2 python-jinja2 python-markupsafe python-paramiko
sshpass
Suggested packages:
python-jinja2-doc
The following NEW packages will be installed:
ansible python-ecdsa python-httplib2 python-jinja2 python-markupsafe
python-paramiko sshpass
0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 3,001 kB of archives.
After this operation, 24.1 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu xenial/main amd64 python-markupsafe amd64 0.23-2build2 [15.5 kB]
Get:2 http://ppa.launchpad.net/ansible/ansible/ubuntu xenial/main amd64 ansible all 2.4.3.0-1ppa~xenial [2,690 kB]
Get:3 http://archive.ubuntu.com/ubuntu xenial/main amd64 python-jinja2 all 2.8-1 [109 kB]
Get:4 http://archive.ubuntu.com/ubuntu xenial/main amd64 python-ecdsa all 0.13-2 [34.0 kB]
Get:5 http://archive.ubuntu.com/ubuntu xenial/main amd64 python-paramiko all 1.16.0-1 [109 kB]
Get:6 http://archive.ubuntu.com/ubuntu xenial/main amd64 python-httplib2 all 0.9.1+dfsg-1 [34.2 kB]
Get:7 http://archive.ubuntu.com/ubuntu xenial/universe amd64 sshpass amd64 1.05-1 [10.5 kB]
Fetched 3,001 kB in 9s (306 kB/s)
Selecting previously unselected package python-markupsafe.
(Reading database … 218383 files and directories currently installed.)
Preparing to unpack …/python-markupsafe_0.23-2build2_amd64.deb …
Unpacking python-markupsafe (0.23-2build2) …
Selecting previously unselected package python-jinja2.
Preparing to unpack …/python-jinja2_2.8-1_all.deb …
Unpacking python-jinja2 (2.8-1) …
Selecting previously unselected package python-ecdsa.
Preparing to unpack …/python-ecdsa_0.13-2_all.deb …
Unpacking python-ecdsa (0.13-2) …
Selecting previously unselected package python-paramiko.
Preparing to unpack …/python-paramiko_1.16.0-1_all.deb …
Unpacking python-paramiko (1.16.0-1) …
Selecting previously unselected package python-httplib2.
Preparing to unpack …/python-httplib2_0.9.1+dfsg-1_all.deb …
Unpacking python-httplib2 (0.9.1+dfsg-1) …
Selecting previously unselected package sshpass.
Preparing to unpack …/sshpass_1.05-1_amd64.deb …
Unpacking sshpass (1.05-1) …
Selecting previously unselected package ansible.
Preparing to unpack …/ansible_2.4.3.0-1ppa~xenial_all.deb …
Unpacking ansible (2.4.3.0-1ppa~xenial) …
Processing triggers for man-db (2.7.5-1) …
Setting up python-markupsafe (0.23-2build2) …
Setting up python-jinja2 (2.8-1) …
Setting up python-ecdsa (0.13-2) …
Setting up python-paramiko (1.16.0-1) …
Setting up python-httplib2 (0.9.1+dfsg-1) …
Setting up sshpass (1.05-1) …
Setting up ansible (2.4.3.0-1ppa~xenial) …
vskumar@ubuntu:~$
=== Ansible installation is done! ====>

Step 4:
Let us add the below python properties  also:

sudo apt-get install python-software-properties
== Installing python properties =======>
vskumar@ubuntu:/etc/ansible$ sudo apt-get install python-software-properties
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following additional packages will be installed:
python-apt python-pycurl
Suggested packages:
python-apt-dbg python-apt-doc libcurl4-gnutls-dev python-pycurl-dbg
python-pycurl-doc
The following NEW packages will be installed:
python-apt python-pycurl python-software-properties
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 202 kB of archives.
After this operation, 927 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu xenial/main amd64 python-apt amd64 1.1.0~beta1build1 [139 kB]
Get:2 http://archive.ubuntu.com/ubuntu xenial/main amd64 python-pycurl amd64 7.43.0-1ubuntu1 [43.3 kB]
Get:3 http://archive.ubuntu.com/ubuntu xenial/universe amd64 python-software-properties all 0.96.20 [20.1 kB]
Fetched 202 kB in 1s (181 kB/s)
Selecting previously unselected package python-apt.
(Reading database … 220895 files and directories currently installed.)
Preparing to unpack …/python-apt_1.1.0~beta1build1_amd64.deb …
Unpacking python-apt (1.1.0~beta1build1) …
Selecting previously unselected package python-pycurl.
Preparing to unpack …/python-pycurl_7.43.0-1ubuntu1_amd64.deb …
Unpacking python-pycurl (7.43.0-1ubuntu1) …
Selecting previously unselected package python-software-properties.
Preparing to unpack …/python-software-properties_0.96.20_all.deb …
Unpacking python-software-properties (0.96.20) …
Setting up python-apt (1.1.0~beta1build1) …
Setting up python-pycurl (7.43.0-1ubuntu1) …
Setting up python-software-properties (0.96.20) …
vskumar@ubuntu:/etc/ansible$
===== Installed python properties ======>

Step 5:
Let us check the version:
=== Checking ANSIBLE Version ===>
vskumar@ubuntu:~$ ansible –version
ansible 2.4.3.0
config file = /etc/ansible/ansible.cfg
configured module search path = [u’/home/vskumar/.ansible/plugins/modules’, u’/usr/share/ansible/plugins/modules’]
ansible python module location = /usr/lib/python2.7/dist-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.12 (default, Dec 4 2017, 14:50:18) [GCC 5.4.0 20160609]
vskumar@ubuntu:~$
=============================>
It means from the above display it is confirmed ansible is available.

Step 6:
The ansible is on the below dir:

======= Check List of files ===>
vskumar@ubuntu:~$ ls -lha /etc/ansible
total 48K
drwxr-xr-x 4 root root 4.0K Mar 6 08:52 .
drwxr-xr-x 142 root root 12K Mar 6 05:59 ..
-rw-r–r– 1 root root 19K Jan 31 15:21 ansible.cfg
drwxr-xr-x 2 root root 4.0K Mar 6 08:59 group_vars
-rw-r–r– 1 root root 1.2K Mar 6 08:20 hosts
drwxr-xr-x 2 root root 4.0K Jan 31 19:46 roles
vskumar@ubuntu:~$
========================>

Step 7:
Always it is better we need to have backup of the above files in a folder.
Now let me copy all of them as below:
Make a backup of all the files as below :
== Making backup ====>

vskumar@ubuntu:~$ sudo cp -R /etc/ansible ansplatform1

vskumar@ubuntu:~$ cd ansplatform1
vskumar@ubuntu:~/ansplatform1$ ls
ansible.cfg group_vars hosts roles
vskumar@ubuntu:~/ansplatform1$
===== Backup files ====>

Step 8:
In the above dir, let us modify ansible.cfg
to have the below line uncommented:
inventory = hosts
====Modifying ansible.cfg ====>
vskumar@ubuntu:~/ansplatform1$ sudo vim ansible.cfg
vskumar@ubuntu:~/ansplatform1$
======>

You can see part of the file as below :
=== Part of config file to update ====>
vskumar@ubuntu:/etc/ansible$ ls
ansible.cfg group_vars hosts roles
vskumar@ubuntu:/etc/ansible$ vim ansible
vskumar@ubuntu:/etc/ansible$
vskumar@ubuntu:/etc/ansible$ vim ansible.cfg
vskumar@ubuntu:/etc/ansible$

Updated line:
inventory = /etc/ansible/hosts

== Updated area only ===>

Step 9:

Configuring Ansible Hosts:
Ansible keeps track of all of the servers.
It knows about them through a “hosts” file.
We need to set up this file first, before we can begin to
communicate with our other computers.
Now let us see the current content of hosts file:
Using : $sudo cat /etc/ansible/hosts

====== The default Contents of hosts file ===>
vskumar@ubuntu:~$ sudo cat /etc/ansible/hosts
# This is the default ansible ‘hosts’ file.
#
# It should live in /etc/ansible/hosts
#
# – Comments begin with the ‘#’ character
# – Blank lines are ignored
# – Groups of hosts are delimited by [header] elements
# – You can enter hostnames or ip addresses
# – A hostname/ip can be a member of multiple groups

# Ex 1: Ungrouped hosts, specify before any group headers.

## green.example.com
## blue.example.com
## 192.168.100.1
## 192.168.100.10

# Ex 2: A collection of hosts belonging to the ‘webservers’ group

## [webservers]
## alpha.example.org
## beta.example.org
## 192.168.1.100
## 192.168.1.110

# If you have multiple hosts following a pattern you can specify
# them like this:

## www[001:006].example.com

# Ex 3: A collection of database servers in the ‘dbservers’ group

## [dbservers]
##
## db01.intranet.mydomain.net
## db02.intranet.mydomain.net
## 10.25.1.56
## 10.25.1.57

# Here’s another example of host ranges, this time there are no
# leading 0s:

## db-[99:101]-node.example.com

vskumar@ubuntu:~$
==================>

We can see a file that has a lot of example configurations,
none of them will actually work for us since these hosts are made up.
So to start with, let’s make sure they all are commented out on the
lines in this file by adding a “#” before each line.

We will keep these examples in the file only as they were to help us with
configuration.

If we want to implement more complex scenarios in the future these can be reused.

After making sure all of these lines are commented,
we can start adding our hosts in the hosts file.
To do our lab exercise;
Now, we need to identify our local hosts.
You can check your laptop or desktop ip as one host.
Another host you consider your ubuntu VM, where the current Ansible is configured.
For now, let us work with two hosts only.
In my systems:
To identify my ubuntu host1:
====== ifconfig =====>

vskumar@ubuntu:~$ ifconfig
docker0 Link encap:Ethernet HWaddr 02:42:06:95:ca:2d
inet addr:172.17.0.1 Bcast:172.17.255.255 Mask:255.255.0.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

ens33 Link encap:Ethernet HWaddr 00:0c:29:f8:40:61
inet addr:192.168.116.129 Bcast:192.168.116.255 Mask:255.255.255.0
inet6 addr: fe80::2fed:4aa:a6:34ad/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3621 errors:0 dropped:0 overruns:0 frame:0
TX packets:1342 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5111534 (5.1 MB) TX bytes:112090 (112.0 KB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:530 errors:0 dropped:0 overruns:0 frame:0
TX packets:530 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:47656 (47.6 KB) TX bytes:47656 (47.6 KB)

vskumar@ubuntu:~$
=======================>
I need to consider  my base ubuntu VM is as ‘192.168.116.129’
Hence my host1=192.168.116.129 from ens33
You can also check your VM IP.

Now, let me check my local host [laptop] ip:

====== IPCONFIG info from Laptop CMD =====>
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::197c:6a85:f86:a3e4%20
IPv4 Address. . . . . . . . . . . : 192.168.137.1
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
======================>
Let me check the ip connection from my Ubuntu VM.
=== Testing laptop ip from VM ====>
vskumar@ubuntu:~$ ping 192.168.137.1
PING 192.168.137.1 (192.168.137.1) 56(84) bytes of data.
64 bytes from 192.168.137.1: icmp_seq=1 ttl=128 time=3.89 ms
64 bytes from 192.168.137.1: icmp_seq=2 ttl=128 time=1.15 ms
64 bytes from 192.168.137.1: icmp_seq=3 ttl=128 time=1.19 ms
64 bytes from 192.168.137.1: icmp_seq=4 ttl=128 time=1.38 ms
64 bytes from 192.168.137.1: icmp_seq=5 ttl=128 time=1.15 ms
64 bytes from 192.168.137.1: icmp_seq=6 ttl=128 time=1.26 ms
64 bytes from 192.168.137.1: icmp_seq=7 ttl=128 time=1.13 ms
64 bytes from 192.168.137.1: icmp_seq=8 ttl=128 time=1.13 ms
64 bytes from 192.168.137.1: icmp_seq=9 ttl=128 time=1.39 ms
64 bytes from 192.168.137.1: icmp_seq=10 ttl=128 time=1.29 ms
64 bytes from 192.168.137.1: icmp_seq=11 ttl=128 time=1.26 ms
64 bytes from 192.168.137.1: icmp_seq=12 ttl=128 time=1.14 ms
64 bytes from 192.168.137.1: icmp_seq=13 ttl=128 time=1.22 ms
64 bytes from 192.168.137.1: icmp_seq=14 ttl=128 time=1.37 ms
64 bytes from 192.168.137.1: icmp_seq=15 ttl=128 time=1.14 ms
^C
— 192.168.137.1 ping statistics —
15 packets transmitted, 15 received, 0% packet loss, time 14032ms
rtt min/avg/max/mdev = 1.134/1.411/3.899/0.672 ms
vskumar@ubuntu:~$
==========>
Now, I consider my host2 = 192.168.137.1

Let me ping my VM from Laptop CMD:
==== Pinging Ubuntu IP from CMD prompt =====>
C:\Users\Toshiba>ping 192.168.116.129

Pinging 192.168.116.129 with 32 bytes of data:
Reply from 192.168.116.129: bytes=32 time=2ms TTL=64
Reply from 192.168.116.129: bytes=32 time<1ms TTL=64
Reply from 192.168.116.129: bytes=32 time<1ms TTL=64
Reply from 192.168.116.129: bytes=32 time<1ms TTL=64

Ping statistics for 192.168.116.129:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 2ms, Average = 0ms

C:\Users\Toshiba>
====== Replied VM ====>

It means both hosts are working fine.
Now, below block we should add to our hosts file to connect them:

[servers]
host1 ansible_ssh_host=192.168.116.129
host2 ansible_ssh_host=192.168.137.1
We can consider two groups from these two hosts.
Let me check the files as below:
==== List the current files ====>

vskumar@ubuntu:/etc/ansible$ ls -l
total 28
-rw-r–r– 1 root root 19155 Jan 31 15:21 ansible.cfg
-rw-r–r– 1 root root 1016 Jan 31 15:21 hosts
drwxr-xr-x 2 root root 4096 Jan 31 19:46 roles
vskumar@ubuntu:/etc/ansible$
===============================>

Now, let me update the host file.
=== After adding the content of hosts file ===>
vskumar@ubuntu:/etc/ansible$ sudo vim hosts
[sudo] password for vskumar:
Sorry, try again.
[sudo] password for vskumar:
vskumar@ubuntu:/etc/ansible$
vskumar@ubuntu:/etc/ansible$ tail -10 hosts

# Here’s another example of host ranges, this time there are no
# leading 0s:

## db-[99:101]-node.example.com

[servers]
host1 ansible_ssh_host=192.168.116.129
host2 ansible_ssh_host=192.168.137.1
vskumar@ubuntu:/etc/ansible$
== You can see the lst 3 lines of the hosts file ===>

We also need to add the group name as below in the hosts file.

[group_name]
alias ansible_ssh_host=your_server_ip

Here, the group_name is an organizational tag that you will refer to any servers listed
under it with one word.
The alias is just a name to refer to that server.
Now let me add the above lines in hosts above the servers line as below.
[ansible_test1]
alias ansible_ssh_host=192.168.116.129
===== Hosts updated – latest ===>
vskumar@ubuntu:/etc/ansible$ sudo vim hosts
vskumar@ubuntu:/etc/ansible$
vskumar@ubuntu:/etc/ansible$ tail -10 hosts
# leading 0s:

## db-[99:101]-node.example.com
[ansible_test1]
alias ansible_ssh_host=192.168.116.129

[servers]
host1 ansible_ssh_host=192.168.116.129
host2 ansible_ssh_host=192.168.137.1

vskumar@ubuntu:/etc/ansible$
==============================>

Now let me goto ansible dir:
======>
vskumar@ubuntu:~$ cd /etc/ansible
vskumar@ubuntu:/etc/ansible$
======>

Assuming in our Ansible test scenario,
we are imagining that we have two servers we are going to control with Ansible.
These servers are accessible from the Ansible server by typing:
$ssh root@your_server_ip

Means as:
$ssh root@192.168.116.129

==============>
vskumar@ubuntu:/etc/ansible$ ssh root@192.168.116.129
ssh: connect to host 192.168.116.129 port 22: Connection refused
vskumar@ubuntu:/etc/ansible$
==============>
TROUBLE SHOOT THE HOSTS:
=== Trouble shoot ===>
vskumar@ubuntu:/etc/ansible$ ansible -m ping all
host1 | UNREACHABLE! => {
“changed”: false,
“msg”: “Failed to connect to the host via ssh: ssh: connect to host 192.168.116.129 port 22: Connection refused\r\n”,
“unreachable”: true
}
alias | UNREACHABLE! => {
“changed”: false,
“msg”: “Failed to connect to the host via ssh: ssh: connect to host 192.168.116.129 port 22: Connection refused\r\n”,
“unreachable”: true
}
host2 | UNREACHABLE! => {
“changed”: false,
“msg”: “Failed to connect to the host via ssh: \r\n ****USAGE WARNING****\r\n\r\nThis is a private computer system. This computer system, including all\r\nrelated equipment, networks, and network devices (specifically including\r\nInternet access) are provided only for authorized use. This computer system\r\nmay be monitored for all lawful purposes, including to ensure that its use\r\nis authorized, for management of the system, to facilitate protection against\r\nunauthorized access, and to verify security procedures, survivability, and\r\noperational security. Monitoring includes active attacks by authorized entities\r\nto test or verify the security of this system. During monitoring, information\r\nmay be examined, recorded, copied and used for authorized purposes. All\r\ninformation, including personal information, placed or sent over this system\r\nmay be monitored.\r\n\r\nUse of this computer system, authorized or unauthorized, constitutes consent\r\nto monitoring of this system. Unauthorized use may subject you to criminal\r\nprosecution. Evidence of unauthorized use collected during monitoring may be\r\nused for administrative, criminal, or other adverse action. Use of this system\r\nconstitutes consent to monitoring for these purposes.\r\n\r\n\r\nPermission denied (publickey,password,keyboard-interactive).\r\n”,
“unreachable”: true
}
vskumar@ubuntu:/etc/ansible$
===============>
The reason for the above error is;
With our current settings, we tried to connect to any of these hosts with Ansible,
the command failed.
This is because your SSH key is embedded for the root user on the remote systems
and Ansible will by default try to connect as your current user.
A connection attempt will get the above error.

To rectify it;
We can create a file that tells all of the servers in the “servers” group to connect
using the root user.

To do this, we will create a directory in the Ansible configuration structure called group_vars.
Let us use the below dir commands:
$sudo mkdir /etc/ansible/group_vars

========================>
vskumar@ubuntu:/etc/ansible$ sudo mkdir /etc/ansible/group_vars
vskumar@ubuntu:/etc/ansible$ ls -l
total 32
-rw-r–r– 1 root root 19155 Jan 31 15:21 ansible.cfg
drwxr-xr-x 2 root root 4096 Mar 6 08:52 group_vars
-rw-r–r– 1 root root 1158 Mar 6 08:20 hosts
drwxr-xr-x 2 root root 4096 Jan 31 19:46 roles
vskumar@ubuntu:/etc/ansible$
=================>
Within this folder, we can create YAML-formatted files for each group we want to configure.
By using below command:
$sudo vim /etc/ansible/group_vars/servers
We can put our configuration in here. YAML files start with “—“, so make sure you don’t forget that part.

Below Code:

ansible_ssh_user: root

==========>
udo vim /etc/ansible/group_vars/servers
vskumar@ubuntu:/etc/ansible$ cat /etc/ansible/group_vars/servers


ansible_ssh_user: root
vskumar@ubuntu:/etc/ansible$
=======================>

NOTE:
If you want to specify configuration details for every server, regardless of group association, you can put those details in a file at: 

/etc/ansible/group_vars/all.

Individual hosts can be configured by creating files under a directory at: /etc/ansible/host_vars.

Assuming this helped you to configure your Ansible.

Please leave your positive comment for others also to follow.

You can see next blog on ssh setup and usage from the below url:

https://vskumar.blog/2018/05/26/27-devopsworking-with-ssh-for-ansible-usage/

I have made a video for Ansible installation using Ubuntu 18.04 VM:

https://youtu.be/AGHJ5hL6Wv4

22. DevOps:How to Install Eclipse on Ubuntu 16.04 [Linux]?

Eclipse-Neon 3

In my previous blog you have seen on the installation of;

Maven 3.3.9 [https://vskumar.blog/2018/05/05/21-devops-how-to-install-maven-3-3-9-on-ubuntu-linux/]

In this blog, I would like to demonstrate on the installation of Eclipse. [Neon.3 Release (4.6.3)].

Note:

At the bottom of this blog, I have pasted a video which demonstrates the installation of Eclipse Photon 2018 installation for Windows 10.

For Ubuntu installation, Let us follow the below steps:

Pre-requisites:

1. You need to have Ubuntu 16.04 [Linux] OS on your machine [VM or Laptop or Desktop].

2. You need to have JDK.

Now let us follow the below steps:

Step1: First, You need to make sure your system and apt package lists are fully up-to-date by running the following commands:

apt-get update -y

apt-get upgrade -y

 I have done it in my VM sometime back[not captured the scree output], hence I am not redoing it. Hence there is no screen output copied here

Step2: We need to Install Java.

Eclipse needs Java to be available on your machine. So, you need to  install  Java

To install JDK 8, Please follow my previous blog:

16. DevOps: How to setup jenkins 2.9 on Ubuntu-16.04 with jdk8

URL: https://vskumar.blog/2018/02/26/15-devops-how-to-setup-jenkins-2-9-on-ubuntu-16-04-with-jdk8/

Step 3: Now, let us Install Eclipse.

To install Eclipse for Ubuntu, We need to use the below commands:

We need to download the  tar file.

sudo wget http://artfiles.org/eclipse.org//oomph/epp/neon/R2a/eclipse-inst-linux64.tar.gz

==== Screen output =====>

vskumar@ubuntu:~$ sudo wget http://artfiles.org/eclipse.org//oomph/epp/neon/R2a/eclipse-inst-linux64.tar.gz

[sudo] password for vskumar:

–2018-05-05 18:06:49–  http://artfiles.org/eclipse.org//oomph/epp/neon/R2a/eclipse-inst-linux64.tar.gz

Resolving artfiles.org (artfiles.org)… 80.252.110.38, 2a00:1f78:af:11::2

Connecting to artfiles.org (artfiles.org)|80.252.110.38|:80… connected.

HTTP request sent, awaiting response… 200 OK

Length: 47107171 (45M) [application/x-gzip]

Saving to: ‘eclipse-inst-linux64.tar.gz’

eclipse-inst-linux6 100%[===================>]  44.92M  3.19MB/s    in 6m 3s

2018-05-05 18:12:54 (127 KB/s) – ‘eclipse-inst-linux64.tar.gz’ saved [47107171/47107171]

vskumar@ubuntu:~$

==== Downloaded Eclipse tar file =====>

You can see the file in the local folder:

== Eclipse tar file ====>

vskumar@ubuntu:~$ ls

ansplatform          eclipse-inst-linux64.tar.gz     Pictures

ansplatform1         examples.desktop                Public

data-volume1         flask-test                      snap

ddagent-install.log  hosts                           Templates

Desktop              jdk-9.0.4_linux-x64_bin.tar.gz  test-git

dockerfile           master-test.txt                 Videos

Documents            Music                           VSKTestproject1

Downloads            nano

vskumar@ubuntu:~$

===============>

Now, we need to extract the files from it using the below command:

tar xf eclipse-inst-linux64.tar.gz

== After extract you find eclipse-installer folder ===>

vskumar@ubuntu:~$ ls

ansplatform          eclipse-installer               nano

ansplatform1         eclipse-inst-linux64.tar.gz     Pictures

data-volume1         examples.desktop                Public

ddagent-install.log  flask-test                      snap

Desktop              hosts                           Templates

dockerfile           jdk-9.0.4_linux-x64_bin.tar.gz  test-git

Documents            master-test.txt                 Videos

Downloads            Music                           VSKTestproject1

vskumar@ubuntu:~$

=========================>

Now, let us goto eclipse-installer folder.

cd eclipse-installer

==== List of files for Eclipse install ====>

vskumar@ubuntu:~$ cd eclipse-installer

vskumar@ubuntu:~/eclipse-installer$ ls

artifacts.xml  eclipse-inst      features  p2       readme

configuration  eclipse-inst.ini  icon.xpm  plugins

vskumar@ubuntu:~/eclipse-installer$

===============================>

Now we need to use the install procedure with the below command:

sudo ./eclipse-inst

==When you execute the above command you can see the below display===>

a) You can see one GUI screen appears on your Unbuntu machine for Installer.

You can select the options you want to install.

Example: “Eclipse IDE for Java developers” is one of the options it displays. You need to  select it. If you want other options also you can do.

I have selected to install “Eclipse IDE for Java developers”.

It installs the required components.

b) You also need to accept its certificates.

c) Once it is installed you can see the installer folders displays on your ubuntu machine desktop.

You will be asked to select the Eclipse workspace folder also.

Where your programs/projects will be placed in that folder.

============================>

d) Finally, you can see Eclipse GUI Project window.

It is ready for use.

Now, you can use it for your Eclipse/Maven projects.

 

The below  video demonstrates the installation of Eclipse Photon 2018 installation for Windows 10.

 

https://youtu.be/FentFw3W65E

 

 

 

21.DevOps: How to install Maven 3.3.9 on Ubuntu [Linux] ?

Apache-Maven Logo.png

Through this blog, I would like to demonstrate  on “How to install Maven 3.3.9 on Ubuntu [Linux] ?:

 Pre-requisites: You need to have Ubuntu OS on your system or Ubuntu on your VM.

Refer to the below url for latest Maven version to know on different OS Platforms:

https://maven.apache.org/download.cgi

Please note; Maven 3.3+ require JDK 1.7 or above.

If you have not installed JDK on your Ubuntu refer to my previous blog, which can guide you:

15. DevOps: How to setup jenkins 2.9 on Ubuntu-16.04 with jdk8

URL: https://vskumar.blog/2018/02/26/15-devops-how-to-setup-jenkins-2-9-on-ubuntu-16-04-with-jdk8/

 

There are two options for you to install maven:

A) You can download the .tar file[apache-maven-3.5.3-src.tar.gz] into your ubuntu local folder and unzip and install it.

B) You can use sudo apt-get install maven  command to install directly.

 

Please note; I have already JDK 8 version in my Ubuntu VM.

 ==== Checking JDK version ===>

vskumar@ubuntu:~$ java -version

java version “1.8.0_161”

Java(TM) SE Runtime Environment (build 1.8.0_161-b12)

Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

vskumar@ubuntu:~$

=========================>

 

I have opted Option: B),

For Ubuntu Use the below command:

sudo apt-get install maven

 

You can see the screen output, when I used it in my Ubuntu VM:

 

== Maven installation output ===>

 vskumar@ubuntu:~$ sudo apt-get install maven

[sudo] password for vskumar:

Reading package lists… Done

Building dependency tree       

Reading state information… Done

The following additional packages will be installed:

  ant ant-optional junit junit4 libaopalliance-java libapache-pom-java

  libasm4-java libatinject-jsr330-api-java libbsh-java libcdi-api-java

  libcglib3-java libclassworlds-java libcommons-cli-java libcommons-codec-java

  libcommons-httpclient-java libcommons-io-java libcommons-lang-java

  libcommons-lang3-java libcommons-logging-java libcommons-net-java

  libcommons-net2-java libcommons-parent-java libdom4j-java libdoxia-core-java

  libeasymock-java libeclipse-aether-java

  libgeronimo-interceptor-3.0-spec-java libguava-java libguice-java

  libhamcrest-java libhttpclient-java libhttpcore-java libjaxen-java

  libjaxp1.3-java libjdom1-java libjetty-java libjsch-java libjsoup-java

  libjsr305-java liblog4j1.2-java libmaven-parent-java libmaven2-core-java

  libmaven3-core-java libobjenesis-java libplexus-ant-factory-java

  libplexus-archiver-java libplexus-bsh-factory-java libplexus-cipher-java

  libplexus-classworlds-java libplexus-classworlds2-java libplexus-cli-java

  libplexus-component-annotations-java libplexus-component-metadata-java

  libplexus-container-default-java libplexus-container-default1.5-java

  libplexus-containers-java libplexus-containers1.5-java

  libplexus-interactivity-api-java libplexus-interpolation-java

  libplexus-io-java libplexus-sec-dispatcher-java libplexus-utils-java

  libplexus-utils2-java libqdox2-java libservlet2.5-java libservlet3.1-java

  libsisu-inject-java libsisu-plexus-java libslf4j-java libwagon-java

  libwagon2-java libxalan2-java libxbean-java libxerces2-java

  libxml-commons-external-java libxml-commons-resolver1.1-java libxom-java

  libxpp2-java libxpp3-java

Suggested packages:

  ant-doc ant-gcj default-jdk | java-compiler | java-sdk ant-optional-gcj

  antlr javacc jython libbcel-java libbsf-java libgnumail-java libjdepend-java

  liboro-java libregexp-java junit-doc libaopalliance-java-doc

  libatinject-jsr330-api-java-doc libclassworlds-java-doc

  libcommons-httpclient-java-doc libcommons-io-java-doc

  libcommons-lang-java-doc libcommons-lang3-java-doc libavalon-framework-java

  libcommons-logging-java-doc libexcalibur-logkit-java libcommons-net-java-doc

  libcommons-net2-java-doc libdom4j-java-doc libeasymock-java-doc

  libcglib-java libjaxp1.3-java-gcj libjdom1-java-doc jetty libjetty-java-doc

  libjsoup-java-doc libjsr305-java-doc liblog4j1.2-java-doc

  libobjenesis-java-doc libplexus-cipher-java-doc

  libplexus-classworlds-java-doc libplexus-classworlds2-java-doc

  libplexus-cli-java-doc libplexus-container-default-java-doc

  libplexus-interactivity-api-java-doc libplexus-interpolation-java-doc

  libplexus-sec-dispatcher-java-doc libplexus-utils-java-doc

  libplexus-utils2-java-doc libqdox2-java-doc testng libwagon-java-doc

  libxalan2-java-doc libxsltc-java groovy2 libequinox-osgi-java

  libosgi-compendium-java libosgi-core-java libqdox-java libspring-beans-java

  libspring-context-java libspring-core-java libspring-web-java

  libxerces2-java-doc libxerces2-java-gcj libxml-commons-resolver1.1-java-doc

  libxom-java-doc

The following NEW packages will be installed:

  ant ant-optional junit junit4 libaopalliance-java libapache-pom-java

  libasm4-java libatinject-jsr330-api-java libbsh-java libcdi-api-java

  libcglib3-java libclassworlds-java libcommons-cli-java libcommons-codec-java

  libcommons-httpclient-java libcommons-io-java libcommons-lang-java

  libcommons-lang3-java libcommons-logging-java libcommons-net-java

  libcommons-net2-java libcommons-parent-java libdom4j-java libdoxia-core-java

  libeasymock-java libeclipse-aether-java

  libgeronimo-interceptor-3.0-spec-java libguava-java libguice-java

  libhamcrest-java libhttpclient-java libhttpcore-java libjaxen-java

  libjaxp1.3-java libjdom1-java libjetty-java libjsch-java libjsoup-java

  libjsr305-java liblog4j1.2-java libmaven-parent-java libmaven2-core-java

  libmaven3-core-java libobjenesis-java libplexus-ant-factory-java

  libplexus-archiver-java libplexus-bsh-factory-java libplexus-cipher-java

  libplexus-classworlds-java libplexus-classworlds2-java libplexus-cli-java

  libplexus-component-annotations-java libplexus-component-metadata-java

  libplexus-container-default-java libplexus-container-default1.5-java

  libplexus-containers-java libplexus-containers1.5-java

  libplexus-interactivity-api-java libplexus-interpolation-java

  libplexus-io-java libplexus-sec-dispatcher-java libplexus-utils-java

  libplexus-utils2-java libqdox2-java libservlet2.5-java libservlet3.1-java

  libsisu-inject-java libsisu-plexus-java libslf4j-java libwagon-java

  libwagon2-java libxalan2-java libxbean-java libxerces2-java

  libxml-commons-external-java libxml-commons-resolver1.1-java libxom-java

  libxpp2-java libxpp3-java maven

0 upgraded, 80 newly installed, 0 to remove and 4 not upgraded.

Need to get 28.0 MB of archives.

After this operation, 39.7 MB of additional disk space will be used.

Do you want to continue? [Y/n] y

Get:1 http://archive.ubuntu.com/ubuntu xenial/universe amd64 ant all 1.9.6-1ubuntu1 [1,892 kB]

Get:2 http://archive.ubuntu.com/ubuntu xenial/universe amd64 ant-optional all 1.9.6-1ubuntu1 [313 kB]

Get:3 http://archive.ubuntu.com/ubuntu xenial/universe amd64 junit all 3.8.2-8build1 [106 kB]

Get:4 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libhamcrest-java all 1.3-5ubuntu1 [373 kB]

Get:5 http://archive.ubuntu.com/ubuntu xenial/universe amd64 junit4 all 4.12-4ubuntu1 [279 kB]

Get:6 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libapache-pom-java all 10-2build1 [4,022 B]

Get:7 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libasm4-java all 5.0.4-1 [252 kB]

Get:8 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libatinject-jsr330-api-java all 1.0+ds1-2 [22.7 kB]

Get:9 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libbsh-java all 2.0b4-17ubuntu1 [264 kB]

Get:10 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libgeronimo-interceptor-3.0-spec-java all 1.0.1-3fakesync1 [7,284 B]

Get:11 http://archive.ubuntu.com/ubuntu xenial/main amd64 libservlet3.1-java all 8.0.32-1ubuntu1 [389 kB]

Get:12 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libcdi-api-java all 1.0-2 [31.9 kB]

Get:13 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libcglib3-java all 3.1+dfsg-1 [726 kB]

Get:14 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libclassworlds-java all 1.1-final-5 [39.3 kB]

Get:15 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libcommons-cli-java all 1.3.1-3ubuntu1 [53.3 kB]

Get:16 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libcommons-codec-java all 1.10-1 [232 kB]

Get:17 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libcommons-parent-java all 39-3 [9,380 B]

Get:18 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libcommons-logging-java all 1.2-1+build1 [59.5 kB]

Get:19 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libcommons-httpclient-java all 3.1-12 [279 kB]

Get:20 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libcommons-io-java all 2.4-2 [176 kB]

Get:21 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libcommons-lang-java all 2.6-6ubuntu2 [267 kB]

Get:22 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libcommons-lang3-java all 3.4-1 [380 kB]

Get:23 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libcommons-net-java all 3.4-2ubuntu2 [334 kB]

Get:24 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libcommons-net2-java all 2.2-2 [194 kB]

Get:25 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libjaxen-java all 1.1.6-1ubuntu1 [206 kB]

Get:26 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libxpp2-java all 2.1.10-7build1 [162 kB]

Get:27 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libxpp3-java all 1.1.4c-2build1 [364 kB]

Get:28 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libdom4j-java all 1.6.1+dfsg.3-2ubuntu1 [323 kB]

Get:29 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libhttpcore-java all 4.4.4-1 [573 kB]

Get:30 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libhttpclient-java all 4.5.1-1 [694 kB]

Get:31 http://archive.ubuntu.com/ubuntu xenial/main amd64 libjaxp1.3-java all 1.3.05-2ubuntu3 [450 kB]

Get:32 http://archive.ubuntu.com/ubuntu xenial/main amd64 libxml-commons-resolver1.1-java all 1.2-7build1 [91.6 kB]

Get:33 http://archive.ubuntu.com/ubuntu xenial/main amd64 libxml-commons-external-java all 1.4.01-2build1 [245 kB]

Get:34 http://archive.ubuntu.com/ubuntu xenial/main amd64 libxerces2-java all 2.11.0-7 [1,362 kB]

Get:35 http://archive.ubuntu.com/ubuntu xenial/main amd64 libxalan2-java all 2.7.1-9 [3,166 kB]

Get:36 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libplexus-interpolation-java all 1.21-1 [61.3 kB]

Get:37 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libplexus-utils-java all 1:1.5.15-4 [210 kB]

Get:38 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libdoxia-core-java all 1.1.4-3ubuntu1 [148 kB]

Get:39 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libobjenesis-java all 2.2-1 [44.3 kB]

Get:40 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libeasymock-java all 3.3.1+ds-3 [88.3 kB]

Get:41 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libslf4j-java all 1.7.14-3 [124 kB]

Get:42 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libjsch-java all 0.1.53-1ubuntu1 [267 kB]

Get:43 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libjsoup-java all 1.8.3-1 [298 kB]

Get:44 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libjsr305-java all 0.1~+svn49-9 [26.4 kB]

Get:45 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libguava-java all 19.0-1 [2,028 kB]

Get:46 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libplexus-classworlds-java all 1.5.0-5 [49.2 kB]

Get:47 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libxbean-java all 4.5-1 [815 kB]

Get:48 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libplexus-containers-java all 1.0~beta3.0.7-8 [178 kB]

Get:49 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libplexus-interactivity-api-java all 1.0-alpha-6-7 [14.2 kB]

Get:50 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libwagon-java all 1.0.0-7 [133 kB]

Get:51 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libeclipse-aether-java all 1.0.2-1 [564 kB]

Get:52 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libaopalliance-java all 20070526-5 [9,214 B]

Get:53 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libguice-java all 4.0-2 [836 kB]

Get:54 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libjdom1-java all 1.1.3-1 [150 kB]

Get:55 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libservlet2.5-java all 6.0.45+dfsg-1 [212 kB]

Get:56 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libjetty-java all 6.1.26-5 [721 kB]

Get:57 http://archive.ubuntu.com/ubuntu xenial/universe amd64 liblog4j1.2-java all 1.2.17-7ubuntu1 [426 kB]

Get:58 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libmaven-parent-java all 21-2 [5,786 B]

Get:59 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libplexus-container-default-java all 1.0-alpha-9-stable-1-7 [153 kB]

Get:60 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libplexus-ant-factory-java all 1.0~alpha2.1-3 [11.2 kB]

Get:61 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libplexus-io-java all 1.0~alpha5-2 [44.7 kB]

Get:62 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libplexus-archiver-java all 2.2-1 [171 kB]

Get:63 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libplexus-bsh-factory-java all 1.0~alpha7-3.1 [7,708 B]

Get:64 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libplexus-cipher-java all 1.7-1 [14.5 kB]

Get:65 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libplexus-sec-dispatcher-java all 1.3.1-6 [27.1 kB]

Get:66 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libmaven2-core-java all 2.2.1-24 [710 kB]

Get:67 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libplexus-classworlds2-java all 2.5.2-1 [46.7 kB]

Get:68 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libplexus-utils2-java all 3.0.22-1 [235 kB]

Get:69 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libplexus-container-default1.5-java all 1.6-2 [186 kB]

Get:70 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libplexus-component-annotations-java all 1.6-2 [6,662 B]

Get:71 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libplexus-cli-java all 1.2-5 [9,700 B]

Get:72 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libqdox2-java all 2.0~M3-2 [257 kB]

Get:73 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libplexus-component-metadata-java all 1.6-2 [103 kB]

Get:74 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libplexus-containers1.5-java all 1.6-2 [2,410 B]

Get:75 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libsisu-inject-java all 0.3.2-1 [347 kB]

Get:76 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libsisu-plexus-java all 0.3.2-1 [182 kB]

Get:77 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libwagon2-java all 2.10-3 [2,144 kB]

Get:78 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libmaven3-core-java all 3.3.9-3 [1,446 kB]

Get:79 http://archive.ubuntu.com/ubuntu xenial/universe amd64 libxom-java all 1.2.10-1 [170 kB]

Get:80 http://archive.ubuntu.com/ubuntu xenial/universe amd64 maven all 3.3.9-3 [17.4 kB]

Fetched 28.0 MB in 1min 36s (291 kB/s)                                         

Extracting templates from packages: 100%

Selecting previously unselected package ant.

(Reading database … 234271 files and directories currently installed.)

Preparing to unpack …/ant_1.9.6-1ubuntu1_all.deb …

Unpacking ant (1.9.6-1ubuntu1) …

Selecting previously unselected package ant-optional.

Preparing to unpack …/ant-optional_1.9.6-1ubuntu1_all.deb …

Unpacking ant-optional (1.9.6-1ubuntu1) …

Selecting previously unselected package junit.

Preparing to unpack …/junit_3.8.2-8build1_all.deb …

Unpacking junit (3.8.2-8build1) …

Selecting previously unselected package libhamcrest-java.

Preparing to unpack …/libhamcrest-java_1.3-5ubuntu1_all.deb …

Unpacking libhamcrest-java (1.3-5ubuntu1) …

Selecting previously unselected package junit4.

Preparing to unpack …/junit4_4.12-4ubuntu1_all.deb …

Unpacking junit4 (4.12-4ubuntu1) …

Selecting previously unselected package libapache-pom-java.

Preparing to unpack …/libapache-pom-java_10-2build1_all.deb …

Unpacking libapache-pom-java (10-2build1) …

Selecting previously unselected package libasm4-java.

Preparing to unpack …/libasm4-java_5.0.4-1_all.deb …

Unpacking libasm4-java (5.0.4-1) …

Selecting previously unselected package libatinject-jsr330-api-java.

Preparing to unpack …/libatinject-jsr330-api-java_1.0+ds1-2_all.deb …

Unpacking libatinject-jsr330-api-java (1.0+ds1-2) …

Selecting previously unselected package libbsh-java.

Preparing to unpack …/libbsh-java_2.0b4-17ubuntu1_all.deb …

Unpacking libbsh-java (2.0b4-17ubuntu1) …

Selecting previously unselected package libgeronimo-interceptor-3.0-spec-java.

Preparing to unpack …/libgeronimo-interceptor-3.0-spec-java_1.0.1-3fakesync1_all.deb …

Unpacking libgeronimo-interceptor-3.0-spec-java (1.0.1-3fakesync1) …

Selecting previously unselected package libservlet3.1-java.

Preparing to unpack …/libservlet3.1-java_8.0.32-1ubuntu1_all.deb …

Unpacking libservlet3.1-java (8.0.32-1ubuntu1) …

Selecting previously unselected package libcdi-api-java.

Preparing to unpack …/libcdi-api-java_1.0-2_all.deb …

Unpacking libcdi-api-java (1.0-2) …

Selecting previously unselected package libcglib3-java.

Preparing to unpack …/libcglib3-java_3.1+dfsg-1_all.deb …

Unpacking libcglib3-java (3.1+dfsg-1) …

Selecting previously unselected package libclassworlds-java.

Preparing to unpack …/libclassworlds-java_1.1-final-5_all.deb …

Unpacking libclassworlds-java (1.1-final-5) …

Selecting previously unselected package libcommons-cli-java.

Preparing to unpack …/libcommons-cli-java_1.3.1-3ubuntu1_all.deb …

Unpacking libcommons-cli-java (1.3.1-3ubuntu1) …

Selecting previously unselected package libcommons-codec-java.

Preparing to unpack …/libcommons-codec-java_1.10-1_all.deb …

Unpacking libcommons-codec-java (1.10-1) …

Selecting previously unselected package libcommons-parent-java.

Preparing to unpack …/libcommons-parent-java_39-3_all.deb …

Unpacking libcommons-parent-java (39-3) …

Selecting previously unselected package libcommons-logging-java.

Preparing to unpack …/libcommons-logging-java_1.2-1+build1_all.deb …

Unpacking libcommons-logging-java (1.2-1+build1) …

Selecting previously unselected package libcommons-httpclient-java.

Preparing to unpack …/libcommons-httpclient-java_3.1-12_all.deb …

Unpacking libcommons-httpclient-java (3.1-12) …

Selecting previously unselected package libcommons-io-java.

Preparing to unpack …/libcommons-io-java_2.4-2_all.deb …

Unpacking libcommons-io-java (2.4-2) …

Selecting previously unselected package libcommons-lang-java.

Preparing to unpack …/libcommons-lang-java_2.6-6ubuntu2_all.deb …

Unpacking libcommons-lang-java (2.6-6ubuntu2) …

Selecting previously unselected package libcommons-lang3-java.

Preparing to unpack …/libcommons-lang3-java_3.4-1_all.deb …

Unpacking libcommons-lang3-java (3.4-1) …

Selecting previously unselected package libcommons-net-java.

Preparing to unpack …/libcommons-net-java_3.4-2ubuntu2_all.deb …

Unpacking libcommons-net-java (3.4-2ubuntu2) …

Selecting previously unselected package libcommons-net2-java.

Preparing to unpack …/libcommons-net2-java_2.2-2_all.deb …

Unpacking libcommons-net2-java (2.2-2) …

Selecting previously unselected package libjaxen-java.

Preparing to unpack …/libjaxen-java_1.1.6-1ubuntu1_all.deb …

Unpacking libjaxen-java (1.1.6-1ubuntu1) …

Selecting previously unselected package libxpp2-java.

Preparing to unpack …/libxpp2-java_2.1.10-7build1_all.deb …

Unpacking libxpp2-java (2.1.10-7build1) …

Selecting previously unselected package libxpp3-java.

Preparing to unpack …/libxpp3-java_1.1.4c-2build1_all.deb …

Unpacking libxpp3-java (1.1.4c-2build1) …

Selecting previously unselected package libdom4j-java.

Preparing to unpack …/libdom4j-java_1.6.1+dfsg.3-2ubuntu1_all.deb …

Unpacking libdom4j-java (1.6.1+dfsg.3-2ubuntu1) …

Selecting previously unselected package libhttpcore-java.

Preparing to unpack …/libhttpcore-java_4.4.4-1_all.deb …

Unpacking libhttpcore-java (4.4.4-1) …

Selecting previously unselected package libhttpclient-java.

Preparing to unpack …/libhttpclient-java_4.5.1-1_all.deb …

Unpacking libhttpclient-java (4.5.1-1) …

Selecting previously unselected package libjaxp1.3-java.

Preparing to unpack …/libjaxp1.3-java_1.3.05-2ubuntu3_all.deb …

Unpacking libjaxp1.3-java (1.3.05-2ubuntu3) …

Selecting previously unselected package libxml-commons-resolver1.1-java.

Preparing to unpack …/libxml-commons-resolver1.1-java_1.2-7build1_all.deb …

Unpacking libxml-commons-resolver1.1-java (1.2-7build1) …

Selecting previously unselected package libxml-commons-external-java.

Preparing to unpack …/libxml-commons-external-java_1.4.01-2build1_all.deb …

Unpacking libxml-commons-external-java (1.4.01-2build1) …

Selecting previously unselected package libxerces2-java.

Preparing to unpack …/libxerces2-java_2.11.0-7_all.deb …

Unpacking libxerces2-java (2.11.0-7) …

Selecting previously unselected package libxalan2-java.

Preparing to unpack …/libxalan2-java_2.7.1-9_all.deb …

Unpacking libxalan2-java (2.7.1-9) …

Selecting previously unselected package libplexus-interpolation-java.

Preparing to unpack …/libplexus-interpolation-java_1.21-1_all.deb …

Unpacking libplexus-interpolation-java (1.21-1) …

Selecting previously unselected package libplexus-utils-java.

Preparing to unpack …/libplexus-utils-java_1%3a1.5.15-4_all.deb …

Unpacking libplexus-utils-java (1:1.5.15-4) …

Selecting previously unselected package libdoxia-core-java.

Preparing to unpack …/libdoxia-core-java_1.1.4-3ubuntu1_all.deb …

Unpacking libdoxia-core-java (1.1.4-3ubuntu1) …

Selecting previously unselected package libobjenesis-java.

Preparing to unpack …/libobjenesis-java_2.2-1_all.deb …

Unpacking libobjenesis-java (2.2-1) …

Selecting previously unselected package libeasymock-java.

Preparing to unpack …/libeasymock-java_3.3.1+ds-3_all.deb …

Unpacking libeasymock-java (3.3.1+ds-3) …

Selecting previously unselected package libslf4j-java.

Preparing to unpack …/libslf4j-java_1.7.14-3_all.deb …

Unpacking libslf4j-java (1.7.14-3) …

Selecting previously unselected package libjsch-java.

Preparing to unpack …/libjsch-java_0.1.53-1ubuntu1_all.deb …

Unpacking libjsch-java (0.1.53-1ubuntu1) …

Selecting previously unselected package libjsoup-java.

Preparing to unpack …/libjsoup-java_1.8.3-1_all.deb …

Unpacking libjsoup-java (1.8.3-1) …

Selecting previously unselected package libjsr305-java.

Preparing to unpack …/libjsr305-java_0.1~+svn49-9_all.deb …

Unpacking libjsr305-java (0.1~+svn49-9) …

Selecting previously unselected package libguava-java.

Preparing to unpack …/libguava-java_19.0-1_all.deb …

Unpacking libguava-java (19.0-1) …

Selecting previously unselected package libplexus-classworlds-java.

Preparing to unpack …/libplexus-classworlds-java_1.5.0-5_all.deb …

Unpacking libplexus-classworlds-java (1.5.0-5) …

Selecting previously unselected package libxbean-java.

Preparing to unpack …/libxbean-java_4.5-1_all.deb …

Unpacking libxbean-java (4.5-1) …

Selecting previously unselected package libplexus-containers-java.

Preparing to unpack …/libplexus-containers-java_1.0~beta3.0.7-8_all.deb …

Unpacking libplexus-containers-java (1.0~beta3.0.7-8) …

Selecting previously unselected package libplexus-interactivity-api-java.

Preparing to unpack …/libplexus-interactivity-api-java_1.0-alpha-6-7_all.deb …

Unpacking libplexus-interactivity-api-java (1.0-alpha-6-7) …

Selecting previously unselected package libwagon-java.

Preparing to unpack …/libwagon-java_1.0.0-7_all.deb …

Unpacking libwagon-java (1.0.0-7) …

Selecting previously unselected package libeclipse-aether-java.

Preparing to unpack …/libeclipse-aether-java_1.0.2-1_all.deb …

Unpacking libeclipse-aether-java (1.0.2-1) …

Selecting previously unselected package libaopalliance-java.

Preparing to unpack …/libaopalliance-java_20070526-5_all.deb …

Unpacking libaopalliance-java (20070526-5) …

Selecting previously unselected package libguice-java.

Preparing to unpack …/libguice-java_4.0-2_all.deb …

Unpacking libguice-java (4.0-2) …

Selecting previously unselected package libjdom1-java.

Preparing to unpack …/libjdom1-java_1.1.3-1_all.deb …

Unpacking libjdom1-java (1.1.3-1) …

Selecting previously unselected package libservlet2.5-java.

Preparing to unpack …/libservlet2.5-java_6.0.45+dfsg-1_all.deb …

Unpacking libservlet2.5-java (6.0.45+dfsg-1) …

Selecting previously unselected package libjetty-java.

Preparing to unpack …/libjetty-java_6.1.26-5_all.deb …

Unpacking libjetty-java (6.1.26-5) …

Selecting previously unselected package liblog4j1.2-java.

Preparing to unpack …/liblog4j1.2-java_1.2.17-7ubuntu1_all.deb …

Unpacking liblog4j1.2-java (1.2.17-7ubuntu1) …

Selecting previously unselected package libmaven-parent-java.

Preparing to unpack …/libmaven-parent-java_21-2_all.deb …

Unpacking libmaven-parent-java (21-2) …

Selecting previously unselected package libplexus-container-default-java.

Preparing to unpack …/libplexus-container-default-java_1.0-alpha-9-stable-1-7_all.deb …

Unpacking libplexus-container-default-java (1.0-alpha-9-stable-1-7) …

Selecting previously unselected package libplexus-ant-factory-java.

Preparing to unpack …/libplexus-ant-factory-java_1.0~alpha2.1-3_all.deb …

Unpacking libplexus-ant-factory-java (1.0~alpha2.1-3) …

Selecting previously unselected package libplexus-io-java.

Preparing to unpack …/libplexus-io-java_1.0~alpha5-2_all.deb …

Unpacking libplexus-io-java (1.0~alpha5-2) …

Selecting previously unselected package libplexus-archiver-java.

Preparing to unpack …/libplexus-archiver-java_2.2-1_all.deb …

Unpacking libplexus-archiver-java (2.2-1) …

Selecting previously unselected package libplexus-bsh-factory-java.

Preparing to unpack …/libplexus-bsh-factory-java_1.0~alpha7-3.1_all.deb …

Unpacking libplexus-bsh-factory-java (1.0~alpha7-3.1) …

Selecting previously unselected package libplexus-cipher-java.

Preparing to unpack …/libplexus-cipher-java_1.7-1_all.deb …

Unpacking libplexus-cipher-java (1.7-1) …

Selecting previously unselected package libplexus-sec-dispatcher-java.

Preparing to unpack …/libplexus-sec-dispatcher-java_1.3.1-6_all.deb …

Unpacking libplexus-sec-dispatcher-java (1.3.1-6) …

Selecting previously unselected package libmaven2-core-java.

Preparing to unpack …/libmaven2-core-java_2.2.1-24_all.deb …

Unpacking libmaven2-core-java (2.2.1-24) …

Selecting previously unselected package libplexus-classworlds2-java.

Preparing to unpack …/libplexus-classworlds2-java_2.5.2-1_all.deb …

Unpacking libplexus-classworlds2-java (2.5.2-1) …

Selecting previously unselected package libplexus-utils2-java.

Preparing to unpack …/libplexus-utils2-java_3.0.22-1_all.deb …

Unpacking libplexus-utils2-java (3.0.22-1) …

Selecting previously unselected package libplexus-container-default1.5-java.

Preparing to unpack …/libplexus-container-default1.5-java_1.6-2_all.deb …

Unpacking libplexus-container-default1.5-java (1.6-2) …

Selecting previously unselected package libplexus-component-annotations-java.

Preparing to unpack …/libplexus-component-annotations-java_1.6-2_all.deb …

Unpacking libplexus-component-annotations-java (1.6-2) …

Selecting previously unselected package libplexus-cli-java.

Preparing to unpack …/libplexus-cli-java_1.2-5_all.deb …

Unpacking libplexus-cli-java (1.2-5) …

Selecting previously unselected package libqdox2-java.

Preparing to unpack …/libqdox2-java_2.0~M3-2_all.deb …

Unpacking libqdox2-java (2.0~M3-2) …

Selecting previously unselected package libplexus-component-metadata-java.

Preparing to unpack …/libplexus-component-metadata-java_1.6-2_all.deb …

Unpacking libplexus-component-metadata-java (1.6-2) …

Selecting previously unselected package libplexus-containers1.5-java.

Preparing to unpack …/libplexus-containers1.5-java_1.6-2_all.deb …

Unpacking libplexus-containers1.5-java (1.6-2) …

Selecting previously unselected package libsisu-inject-java.

Preparing to unpack …/libsisu-inject-java_0.3.2-1_all.deb …

Unpacking libsisu-inject-java (0.3.2-1) …

Selecting previously unselected package libsisu-plexus-java.

Preparing to unpack …/libsisu-plexus-java_0.3.2-1_all.deb …

Unpacking libsisu-plexus-java (0.3.2-1) …

Selecting previously unselected package libwagon2-java.

Preparing to unpack …/libwagon2-java_2.10-3_all.deb …

Unpacking libwagon2-java (2.10-3) …

Selecting previously unselected package libmaven3-core-java.

Preparing to unpack …/libmaven3-core-java_3.3.9-3_all.deb …

Unpacking libmaven3-core-java (3.3.9-3) …

Selecting previously unselected package libxom-java.

Preparing to unpack …/libxom-java_1.2.10-1_all.deb …

Unpacking libxom-java (1.2.10-1) …

Selecting previously unselected package maven.

Preparing to unpack …/archives/maven_3.3.9-3_all.deb …

Unpacking maven (3.3.9-3) …

Processing triggers for man-db (2.7.5-1) …

Processing triggers for doc-base (0.10.7) …

Processing 2 added doc-base files…

Setting up ant (1.9.6-1ubuntu1) …

Setting up ant-optional (1.9.6-1ubuntu1) …

Setting up junit (3.8.2-8build1) …

Setting up libhamcrest-java (1.3-5ubuntu1) …

Setting up junit4 (4.12-4ubuntu1) …

Setting up libapache-pom-java (10-2build1) …

Setting up libasm4-java (5.0.4-1) …

Setting up libatinject-jsr330-api-java (1.0+ds1-2) …

Setting up libbsh-java (2.0b4-17ubuntu1) …

Setting up libgeronimo-interceptor-3.0-spec-java (1.0.1-3fakesync1) …

Setting up libservlet3.1-java (8.0.32-1ubuntu1) …

Setting up libcdi-api-java (1.0-2) …

Setting up libcglib3-java (3.1+dfsg-1) …

Setting up libclassworlds-java (1.1-final-5) …

Setting up libcommons-cli-java (1.3.1-3ubuntu1) …

Setting up libcommons-codec-java (1.10-1) …

Setting up libcommons-parent-java (39-3) …

Setting up libcommons-logging-java (1.2-1+build1) …

Setting up libcommons-httpclient-java (3.1-12) …

Setting up libcommons-io-java (2.4-2) …

Setting up libcommons-lang-java (2.6-6ubuntu2) …

Setting up libcommons-lang3-java (3.4-1) …

Setting up libcommons-net-java (3.4-2ubuntu2) …

Setting up libcommons-net2-java (2.2-2) …

Setting up libjaxen-java (1.1.6-1ubuntu1) …

Setting up libxpp2-java (2.1.10-7build1) …

Setting up libxpp3-java (1.1.4c-2build1) …

Setting up libdom4j-java (1.6.1+dfsg.3-2ubuntu1) …

Setting up libhttpcore-java (4.4.4-1) …

Setting up libhttpclient-java (4.5.1-1) …

Setting up libjaxp1.3-java (1.3.05-2ubuntu3) …

Setting up libxml-commons-resolver1.1-java (1.2-7build1) …

Setting up libxml-commons-external-java (1.4.01-2build1) …

Setting up libxerces2-java (2.11.0-7) …

Setting up libxalan2-java (2.7.1-9) …

Setting up libplexus-interpolation-java (1.21-1) …

Setting up libplexus-utils-java (1:1.5.15-4) …

Setting up libdoxia-core-java (1.1.4-3ubuntu1) …

Setting up libobjenesis-java (2.2-1) …

Setting up libeasymock-java (3.3.1+ds-3) …

Setting up libslf4j-java (1.7.14-3) …

Setting up libjsch-java (0.1.53-1ubuntu1) …

Setting up libjsoup-java (1.8.3-1) …

Setting up libjsr305-java (0.1~+svn49-9) …

Setting up libguava-java (19.0-1) …

Setting up libplexus-classworlds-java (1.5.0-5) …

Setting up libxbean-java (4.5-1) …

Setting up libplexus-containers-java (1.0~beta3.0.7-8) …

Setting up libplexus-interactivity-api-java (1.0-alpha-6-7) …

Setting up libwagon-java (1.0.0-7) …

Setting up libeclipse-aether-java (1.0.2-1) …

Setting up libaopalliance-java (20070526-5) …

Setting up libguice-java (4.0-2) …

Setting up libjdom1-java (1.1.3-1) …

Setting up libservlet2.5-java (6.0.45+dfsg-1) …

Setting up libjetty-java (6.1.26-5) …

Setting up liblog4j1.2-java (1.2.17-7ubuntu1) …

Setting up libmaven-parent-java (21-2) …

Setting up libplexus-container-default-java (1.0-alpha-9-stable-1-7) …

Setting up libplexus-ant-factory-java (1.0~alpha2.1-3) …

Setting up libplexus-io-java (1.0~alpha5-2) …

Setting up libplexus-archiver-java (2.2-1) …

Setting up libplexus-bsh-factory-java (1.0~alpha7-3.1) …

Setting up libplexus-cipher-java (1.7-1) …

Setting up libplexus-sec-dispatcher-java (1.3.1-6) …

Setting up libmaven2-core-java (2.2.1-24) …

Setting up libplexus-classworlds2-java (2.5.2-1) …

Setting up libplexus-utils2-java (3.0.22-1) …

Setting up libplexus-container-default1.5-java (1.6-2) …

Setting up libplexus-component-annotations-java (1.6-2) …

Setting up libplexus-cli-java (1.2-5) …

Setting up libqdox2-java (2.0~M3-2) …

Setting up libplexus-component-metadata-java (1.6-2) …

Setting up libplexus-containers1.5-java (1.6-2) …

Setting up libsisu-inject-java (0.3.2-1) …

Setting up libsisu-plexus-java (0.3.2-1) …

Setting up libwagon2-java (2.10-3) …

Setting up libmaven3-core-java (3.3.9-3) …

Setting up libxom-java (1.2.10-1) …

Setting up maven (3.3.9-3) …

update-alternatives: using /usr/share/maven/bin/mvn to provide /usr/bin/mvn (mvn) in auto mode

vskumar@ubuntu:~$

==============

You can see maven version also:

== Checking Maven Version===>

vskumar@ubuntu:~$ mvn –version

Apache Maven 3.3.9

Maven home: /usr/share/maven

Java version: 1.8.0_161, vendor: Oracle Corporation

Java home: /usr/local/java/jdk1.8.0_161/jre

Default locale: en_US, platform encoding: UTF-8

OS name: “linux”, version: “4.10.0-40-generic”, arch: “amd64”, family: “unix”

vskumar@ubuntu:~$

============>

 

Please leave your feedback.

 

 

 

 

 

18. DevOps: How to create a MySQL docker container ?

Docker-logo

MySql DB docker container:

In this blog I would like to demonstrate the container creation for MYSQL DB.

The following dockerfile code can be used to create the mysqldb container:
I have made this as  group of commands to be executed from Ubuntu CLI.
=== Dockerfile code for MySql DB=====>
sudo docker container run \
–detach \
–name mysqldb \
-e MYSQL_ROOT_PASSWORD=my-secret-pw \
mysql:latest
=== To create mysqldb container ====>

=== Screen output ====>
vskumar@ubuntu:~$
vskumar@ubuntu:~$ sudo docker container run \
> –detach \
> –name mysqldb \
> -e MYSQL_ROOT_PASSWORD=my-secret-pw \
> mysql:latest
dcfc16b7fba9075c59035e29a0efed91b7872e5f5cf72c8656afade824651041
vskumar@ubuntu:~$
==== Created mysql =====>

Please note this time, I have not copied the complete display contents.

=== listed ====>
vskumar@ubuntu:~$ sudo docker image ls mysql
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest 5d4d51c57ea8 5 weeks ago 374MB
vskumar@ubuntu:~$

vskumar@ubuntu:~$ sudo docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dcfc16b7fba9 mysql:latest “docker-entrypoint.s…” 3 minutes ago Up 3 minutes 3306/tcp mysqldb
a5f1ce30c02d swarm “/swarm manage” 11 days ago Restarting (1) 28 seconds ago gracious_bhabha
vskumar@ubuntu:~$
=================>

So we can have the mysql container also running in background currently.

Let us understand the commands/options used for dockerfile syntax:

Using ‘–detach’ command it runs the container in background.
I have given the container name ‘mysqldb’ with ‘–name’ option.
MySql DB needs the root password.
It has been executed with ‘-e’ option.
Since the mysql db image is not available in my current images list,
it pulls it from dockerhub.

You can try to use the same container for your db usage.

17. DevOps: How to identify the docker container ip?

Docker-logo

Please note, every docker container can have an ip once it is activated.

How to get ip of a container ?

We can check the activated container ips through below exercise:
Initially, you need to activate the container using run command.
Then the ip will be assigned from the docker default gateway bridge.

As below you need to do the lab session:

Step-1: Activate the container

vskumar@ubuntu:~$ sudo docker run -i -t ubuntu /bin/bash
root@2f71a66eabae:/# ps
PID TTY TIME CMD
1 pts/0 00:00:00 bash
9 pts/0 00:00:00 ps
root@2f71a66eabae:/# exit
exit
^[[Avskumar@ubuntu:~$ sudo docker run -i -t ubuntu ^C
vskumar@ubuntu:~$ sudo docker run ubuntu /bin/bash

Step-2: Let is check the docker containers:
vskumar@ubuntu:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
vskumar@ubuntu:~$ sudo docker ps -aq
74943dfce61c
2f71a66eabae
680a896d2c74
a65d0abcfea5

Step-3:Following shows the current docker networks:

vskumar@ubuntu:~$ sudo docker ps -aq
74943dfce61c
2f71a66eabae
680a896d2c74
a65d0abcfea5

vskumar@ubuntu:~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
74943dfce61c ubuntu “/bin/bash” 34 minutes ago Exited (0) 34 minutes ago pedantic_haibt
2f71a66eabae ubuntu “/bin/bash” 34 minutes ago Exited (0) 34 minutes ago suspicious_kepler
680a896d2c74 ubuntu “/bin/bash” 8 hours ago Exited (0) 8 hours ago tender_ramanujan
a65d0abcfea5 ubuntu:16.04 “/bin/bash” 8 hours ago Exited (0) 8 hours ago competent_albattani

Step4: Making a container active:

The IP is assigned to a container with the below activation.
I named the container as container1.

vskumar@ubuntu:~$ sudo docker run -itd –name=container1 ubuntu:16.04
bfb319cdbfe366b369cb089731f614795677ab3ea4f614066596e9cccf17f57f

Step5: Now check the bridge status and the assigned ips of a default bridge to container1:

vskumar@ubuntu:~$ sudo docker network inspect bridge
[
{
“Name”: “bridge”,
“Id”: “c085bc6ae3691b9d8a43e9fc2a26bddc5809e51a4f3c16338143d4bae2d28151”,
“Created”: “2018-03-08T08:28:53.012490299-08:00”,
“Scope”: “local”,
“Driver”: “bridge”,
“EnableIPv6”: false,
“IPAM”: {
“Driver”: “default”,
“Options”: null,
“Config”: [
{
“Subnet”: “172.17.0.0/16”,
“Gateway”: “172.17.0.1”
}
]
},
“Internal”: false,
“Attachable”: false,
“Ingress”: false,
“ConfigFrom”: {
“Network”: “”
},
“ConfigOnly”: false,
“Containers”: {
“bfb319cdbfe366b369cb089731f614795677ab3ea4f614066596e9cccf17f57f”: {
“Name”: “container1”,
“EndpointID”: “9d5abe4df583946342ab36da0fc76a1d3d4c7a1fdaf2766d18b6dea7cd912eb7”,
“MacAddress”: “02:42:ac:11:00:02”,
“IPv4Address”: “172.17.0.2/16”,
“IPv6Address”: “”
}
},
“Options”: {
“com.docker.network.bridge.default_bridge”: “true”,
“com.docker.network.bridge.enable_icc”: “true”,
“com.docker.network.bridge.enable_ip_masquerade”: “true”,
“com.docker.network.bridge.host_binding_ipv4”: “0.0.0.0”,
“com.docker.network.bridge.name”: “docker0”,
“com.docker.network.driver.mtu”: “1500”
},
“Labels”: {}
}
]

vskumar@ubuntu:~$

Step6: Let us use another conatiner [testcontainer2] to active and get the ip:

sudo docker run -itd –name=testcontainer2 ubuntu:16.04

Step7: You can see the current container with the given names also:

vskumar@ubuntu:~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d9ad288448ca ubuntu “/bin/bash” 3 minutes ago Up 3 minutes testcontainer1
bfb319cdbfe3 ubuntu:16.04 “/bin/bash” 9 minutes ago Exited (137) 5 minutes ago container1
74943dfce61c ubuntu “/bin/bash” 45 minutes ago Exited (0) 45 minutes ago pedantic_haibt
2f71a66eabae ubuntu “/bin/bash” About an hour ago Exited (0) 45 minutes ago suspicious_kepler
680a896d2c74 ubuntu “/bin/bash” 8 hours ago Exited (0) 8 hours ago tender_ramanujan
a65d0abcfea5 ubuntu:16.04 “/bin/bash” 8 hours ago Exited (0) 8 hours ago competent_albattani
vskumar@ubuntu:~$ clear

vskumar@ubuntu:~$

Step8: Let us check the its ip for the activated container as below:

vskumar@ubuntu:~$ sudo docker inspect -f “{{ .NetworkSettings.IPAddress }}” d9ad288448ca
172.17.0.2

You can see the ip:172.17.0.2

vskumar@ubuntu:~$ sudo docker ps -a^C
vskumar@ubuntu:~$ sudo docker inspect -f “{{ .NetworkSettings.IPAddress }}” d9ad288448ca^C
vskumar@ubuntu:~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d9ad288448ca ubuntu “/bin/bash” 5 minutes ago Up 5 minutes testcontainer1
bfb319cdbfe3 ubuntu:16.04 “/bin/bash” 11 minutes ago Exited (137) 7 minutes ago container1
74943dfce61c ubuntu “/bin/bash” About an hour ago Exited (0) About an hour ago pedantic_haibt
2f71a66eabae ubuntu “/bin/bash” About an hour ago Exited (0) About an hour ago suspicious_kepler
680a896d2c74 ubuntu “/bin/bash” 8 hours ago Exited (0) 8 hours ago tender_ramanujan
a65d0abcfea5 ubuntu:16.04 “/bin/bash” 8 hours ago Exited (0) 8 hours ago competent_albattani

Step9: Now let us use a third container and verify the ip:

vskumar@ubuntu:~$ sudo docker run -itd –name=testcontainer2 ubuntu:16.04
ee5b7978894bc844ae97d7ea893f1c76b99049a4bb71bedfa01d6e9c55e57867

vskumar@ubuntu:~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ee5b7978894b ubuntu:16.04 “/bin/bash” 15 seconds ago Up 13 seconds testcontainer2
d9ad288448ca ubuntu “/bin/bash” 9 minutes ago Up 9 minutes testcontainer1
bfb319cdbfe3 ubuntu:16.04 “/bin/bash” 15 minutes ago Exited (137) 10 minutes ago container1
74943dfce61c ubuntu “/bin/bash” About an hour ago Exited (0) About an hour ago pedantic_haibt
2f71a66eabae ubuntu “/bin/bash” About an hour ago Exited (0) About an hour ago suspicious_kepler
680a896d2c74 ubuntu “/bin/bash” 8 hours ago Exited (0) 8 hours ago tender_ramanujan
a65d0abcfea5 ubuntu:16.04 “/bin/bash” 8 hours ago Exited (0) 8 hours ago competent_albattani

vskumar@ubuntu:~$ sudo docker inspect -f “{{ .NetworkSettings.IPAddress }}” ee5b7978894b
172.17.0.3
vskumar@ubuntu:~$

Step10: Now you can run the inspect command to check the ip for the latest activated container.

This way you will have the ips for the running container.
Please note as long as you keep running these conatiners these ips are valid.
Now if you want to use them for any micro services setup you can do after this procedure.
The docker network will have them shown through the VM browser also.

 

16. DevOps: Working with Git on Ubuntu 16.04/18.04 VMs

Git-logo

All the below commands were copied from the Ubuntu 16.04 VM.

You can see the below video on how to uninstall/install git from Ubuntu 18.04.

https://www.facebook.com/328906801086961/videos/720291215170115/%MCEPASTEBIN%

You can use all the below commands from 8.04 VM also.

In this GIT exercise, I would like to present the below lab sessions for git in an Ubuntu 16.04 VM for the people who attended my sessions so far.
1. How to install git in ubuntu [linux] ?:
2. How To Set Up Git ?:
3. How to check the config file content? :
4. How to clone a project from an url ?:
5. How to Create a test dir or folder for git project?:
6. How initiate the git for the current folder or dir in linux ?:
7. How to Create local files and check the status in the current git folder?:
8. How to commit the files into a local repository and check their status ?:
9. How to commit files into local repo with a message ?:
10. How to check the history of the local git repository ?:
11. How to identify the difference of two commit ids ?:
12. How to check and operate the staged files in local repository ?:
13. What are the ultimate format of the git log ?:
14. How to setup aliases for different git commands?:
15. How to use tags and operate for different versions in a repository?:
16. How to revert back the changes to older version ?:
17. How to cancel the committed changes? :
18. How to reset the reverted changes through commit from the branch? :

19. Working with git directory:

     20. Working with git branches and master :

     21. How to Merge latest objects into single branch ?:

1. How to install git in ubuntu [linux] ?:

$sudo apt-get update

$sudo apt-get install git

2. How To Set Up Git ?:
$git config –global user.name “Your Name”

$git config –global user.email “youremail@domain.com”

Ex:
git config –global user.kumar2018 “Vskumar”
git config –global user.email “vskumar35@gmail.com”

==== Screen output for the above commands==>
vskumar@ubuntu:~$ git config –global user.kumar2018 “Vskumar”
vskumar@ubuntu:~$ git config –global user.email “vskumar35@gmail.com”
vskumar@ubuntu:~$ git config –list
user.kumar2018=Vskumar
user.email=vskumar35@gmail.com
vskumar@ubuntu:~$
===========>
3. How to check the config file content? :

$cat ~/.gitconfig
==== Output of config file ===>
vskumar@ubuntu:~$ cat ~/.gitconfig
[user]
kumar2018 = Vskumar
email = vskumar35@gmail.com
vskumar@ubuntu:~$
=============>

4. How to clone a project from an url ?: Let us clone one project as below:
$git clone https://github.com/vskumar2017/VSKTestproject1

=== Screen outout ==>
vskumar@ubuntu:~$
vskumar@ubuntu:~$ sudo git clone https://github.com/vskumar2017/VSKTestproject1
Cloning into ‘VSKTestproject1’…
remote: Counting objects: 57, done.
remote: Total 57 (delta 0), reused 0 (delta 0), pack-reused 57
Unpacking objects: 100% (57/57), done.
Checking connectivity… done.
vskumar@ubuntu:~$
vskumar@ubuntu:~$ ls
data-volume1 examples.desktop Pictures VSKTestproject1
Desktop flask-test Public
Documents jdk-9.0.4_linux-x64_bin.tar.gz Templates
Downloads Music Videos
vskumar@ubuntu:~$
=====================>
5. How to Create a test dir or folder for git project?:

=============>
vskumar@ubuntu:~$ mkdir test-git
vskumar@ubuntu:~$ pwd
/home/vskumar
vskumar@ubuntu:~$ ls
data-volume1 examples.desktop Pictures Videos
Desktop flask-test Public VSKTestproject1
Documents jdk-9.0.4_linux-x64_bin.tar.gz Templates
Downloads Music test-git
vskumar@ubuntu:~$
vskumar@ubuntu:~$
vskumar@ubuntu:~$ cd test-git
vskumar@ubuntu:~/test-git$ ls
vskumar@ubuntu:~/test-git$
=======>
6. How initiate the git for the current folder or dir in linux ?:
== Initialize the current dir for git init===>
vskumar@ubuntu:~/test-git$ git init
Initialized empty Git repository in /home/vskumar/test-git/.git/
vskumar@ubuntu:~/test-git$
========>

7. How to Create local files and check the status in the current git folder?:
== Create a text file========>
vskumar@ubuntu:~/test-git$ echo “Testing line1 for git ..” >> test1.txt vskumar@ubuntu:~/test-git$ cat test1.txt Testing line1 for git .. vskumar@ubuntu:~/test-git$ ls -l
total 4
-rw-rw-r– 1 vskumar vskumar 25 Feb 24 04:03 test1.txt

vskumar@ubuntu:~/test-git$ git status On branch master Initial commit Untracked files: (use “git add <file>…” to include in what will be committed) test1.txt nothing added to commit but untracked files present (use “git add” to track) vskumar@ubuntu:~/test-git$
===== Add a new file====>
vskumar@ubuntu:~/test-git$ git add test1.txt
vskumar@ubuntu:~/test-git$ git status
On branch master
Initial commit

Changes to be committed:
(use “git rm –cached <file>…” to unstage)

new file: test1.txt

vskumar@ubuntu:~/test-git$

===========>

8. How to commit the files into a local repository and check their status ?:

Now, let us do simple commit the file to the local repo.

$git commit -m “First Commit”
=== Commite output ==>
vskumar@ubuntu:~/test-git$ git commit -m “First Commit”
[master (root-commit) 56ccc1e] First Commit
1 file changed, 1 insertion(+)
create mode 100644 test1.txt
vskumar@ubuntu:~/test-git$
======================>
We can check the current status:

=== status after commit ===>
vskumar@ubuntu:~/test-git$ git status
On branch master
nothing to commit, working directory clean
vskumar@ubuntu:~/test-git$
==========>

== Added a new message ===>
vskumar@ubuntu:~/test-git$ echo ‘Testing line2 for git—->’ >> test1.txt
vskumar@ubuntu:~/test-git$ cat test1.txt
Testing line1 for git ..
Testing line2 for git—->
vskumar@ubuntu:~/test-git$
===============>

=== Current status ===>
vskumar@ubuntu:~/test-git$ git status
On branch master
Changes not staged for commit:
(use “git add <file>…” to update what will be committed)
(use “git checkout — <file>…” to discard changes in working directory)

modified: test1.txt

no changes added to commit (use “git add” and/or “git commit -a”)
vskumar@ubuntu:~/test-git$
=====================>
Now, add these two files:
git add test1.txt
git add test2.txt

=== Add and check status for two files ==>
vskumar@ubuntu:~/test-git$ git add test1.txt
vskumar@ubuntu:~/test-git$ git add test2.txt
vskumar@ubuntu:~/test-git$ git status
On branch master
Changes to be committed:
(use “git reset HEAD <file>…” to unstage)

modified: test1.txt
new file: test2.txt

vskumar@ubuntu:~/test-git$
====================================>
9. How to commit files into local repo with a message ?:

Commit these two files:

git commit -m “Committed:Changes for test1.txt and test2.txt”

==== Committed changes and status ===>
vskumar@ubuntu:~/test-git$ git commit -m “Committed:Changes for test1.txt and test2.txt”
[master 2a7192d] Committed:Changes for test1.txt and test2.txt
2 files changed, 2 insertions(+)
create mode 100644 test2.txt
vskumar@ubuntu:~/test-git$ git status
On branch master
nothing to commit, working directory clean
vskumar@ubuntu:~/test-git$
======================================>

Now, let us test the add command . prompt by having 2 or more files.

=== Updated two files ==>
vskumar@ubuntu:~/test-git$ cat test1.txt
Testing line1 for git ..
Testing line2 for git—->
Testing test1.tx for add . function
vskumar@ubuntu:~/test-git$ cat test2.txt
File Test2: Testing for Git commit –>
Testing test2.tx for add . function
vskumar@ubuntu:~/test-git$
=============>
Let us check the status:
==== Status ==>

vskumar@ubuntu:~/test-git$ git status
On branch master
Changes not staged for commit:
(use “git add <file>…” to update what will be committed)
(use “git checkout — <file>…” to discard changes in working directory)

modified: test1.txt
modified: test2.txt

no changes added to commit (use “git add” and/or “git commit -a”)
vskumar@ubuntu:~/test-git$
===============>

Now to add these two file together we need to use ‘git addd .’
== Added all files ===>
vskumar@ubuntu:~/test-git$
vskumar@ubuntu:~/test-git$ git add .
vskumar@ubuntu:~/test-git$ git status
On branch master
Changes to be committed:
(use “git reset HEAD <file>…” to unstage)

modified: test1.txt
modified: test2.txt

vskumar@ubuntu:~/test-git$
============>
Now let us commit the changes of one file at a time.

=== test1.txt commitment===>
vskumar@ubuntu:~/test-git$ git commit test1.txt -m ‘Committed test1.txt 3rd change’
[master 6bfd9b0] Committed test1.txt 3rd change
1 file changed, 1 insertion(+)
vskumar@ubuntu:~/test-git$ ^C
============================>
Now, let us check the status:

=======>
vskumar@ubuntu:~/test-git$
vskumar@ubuntu:~/test-git$ git status
On branch master
Changes to be committed:
(use “git reset HEAD <file>…” to unstage)

modified: test2.txt

vskumar@ubuntu:~/test-git$
========>
In git we can check the history by using ‘git log’ command.

=== Histroy ====>
vskumar@ubuntu:~/test-git$ git log
commit 69282e8d8c07e7cbc68e93b16df1d943d3b518d5
Author: Vsk <vskumar35@gmail.com>
Date: Sat Feb 24 06:49:27 2018 -0800

Committed test2.txt 3rd change

commit 6bfd9b045c352f13c36d8f82f12567058a8bb468
Author: Vsk <vskumar35@gmail.com>
Date: Sat Feb 24 06:46:24 2018 -0800

Committed test1.txt 3rd change

commit 2a7192dcdd1a123b8164f0d48dd0631645cf0630
Author: Vsk <vskumar35@gmail.com>
Date: Sat Feb 24 06:32:03 2018 -0800

Committed:Changes for test1.txt and test2.txt

commit 56ccc1ec9ae7db9f97e3a08e5488a64b4f130f1b
Author: Vsk <vskumar35@gmail.com>
Date: Sat Feb 24 06:08:42 2018 -0800

First Commit
vskumar@ubuntu:~/test-git$
=====================>
10. How to check the history of the local git repository ?:

In git we can check the history by using ‘git log’ command. It can give entire committed history with the relevant comments. If we use ‘git log –pretty=oneline’ it gives only chekcsums for different times commited occasions with commit the messages.

If we use ‘git log –pretty=oneline’ it gives only chekcsums for different times commited occasions with commit the messages.

=== Output for pretty ===>
vskumar@ubuntu:~/test-git$ git log –pretty=oneline
69282e8d8c07e7cbc68e93b16df1d943d3b518d5 Committed test2.txt 3rd change
6bfd9b045c352f13c36d8f82f12567058a8bb468 Committed test1.txt 3rd change
2a7192dcdd1a123b8164f0d48dd0631645cf0630 Committed:Changes for test1.txt and test2.txt
56ccc1ec9ae7db9f97e3a08e5488a64b4f130f1b First Commit
vskumar@ubuntu:~/test-git$
==============>

We can also check the commitments by author also using
‘git log –pretty=oneline –author=<your name>’

git log –pretty=oneline –author=kumar

============>
vskumar@ubuntu:~/test-git$ git log –pretty=oneline –author=kumar
69282e8d8c07e7cbc68e93b16df1d943d3b518d5 Committed test2.txt 3rd change
6bfd9b045c352f13c36d8f82f12567058a8bb468 Committed test1.txt 3rd change
2a7192dcdd1a123b8164f0d48dd0631645cf0630 Committed:Changes for test1.txt and test2.txt
56ccc1ec9ae7db9f97e3a08e5488a64b4f130f1b First Commit
============>
Let me give wrong user name to test:
=== Wrong user name ====>
vskumar@ubuntu:~/test-git$ git log –pretty=oneline –author=kumar1
vskumar@ubuntu:~/test-git$ git log –pretty=oneline –author=kumar202
vskumar@ubuntu:~/test-git$
= No files committed for the above users ==>

We can see more detail about a particular commit through show command.
The command ‘git log’ yields a sequential history of the individual commits within the repository.
Then you need to collect the commit id.

=== git show =====>
vskumar@ubuntu:~/test-git$ git show 56ccc1ec9ae7db9f97e3a08e5488a64b4f130f1b
commit 56ccc1ec9ae7db9f97e3a08e5488a64b4f130f1b
Author: Vsk <vskumar35@gmail.com>
Date: Sat Feb 24 06:08:42 2018 -0800

First Commit

diff –git a/test1.txt b/test1.txt
new file mode 100644
index 0000000..73b0484
— /dev/null
+++ b/test1.txt
@@ -0,0 +1 @@
+Testing line1 for git ..
vskumar@ubuntu:~/test-git$
=============================>
11. How to identify the difference of two commit ids ?:
The diff command recalls both full commit ID names and run ‘git diff’

git diff 2a7192dcdd1a123b8164f0d48dd0631645cf0630 6bfd9b045c352f13c36d8f82f12567058a8bb468

== Output of two commit diffs ==>
vskumar@ubuntu:~/test-git$ git diff 2a7192dcdd1a123b8164f0d48dd0631645cf0630 6bfd9b045c352f13c36d8f82f12567058a8bb468
diff –git a/test1.txt b/test1.txt
index 931bb8b..b9132c1 100644
— a/test1.txt
+++ b/test1.txt
@@ -1,2 +1,3 @@
Testing line1 for git ..
Testing line2 for git—->
+Testing test1.tx for add . function
vskumar@ubuntu:~/test-git$
==============================>
12. How to check and operate the staged files in local repository ?:

We can use the below command:
git ls-files –stage

=== Stage of current files ===>
vskumar@ubuntu:~/test-git$
vskumar@ubuntu:~/test-git$ git ls-files –stage
100644 b9132c1dd4ac08fa9c1e3dea5d7100e33557ad20 0 test1.txt
100644 0866cfd2c7ac9bf17f0a0590551a3580359e7250 0 test2.txt
vskumar@ubuntu:~/test-git$
========================>
=== Rm and later files stage ==>
vskumar@ubuntu:~/test-git$ git rm –cached test1.txt
rm ‘test1.txt’
vskumar@ubuntu:~/test-git$ git ls-files –stage
100644 0866cfd2c7ac9bf17f0a0590551a3580359e7250 0 test2.txt
vskumar@ubuntu:~/test-git$
vskumar@ubuntu:~/test-git$ git rm –cached test1.txt
rm ‘test1.txt’
vskumar@ubuntu:~/test-git$ git ls-files –stage
100644 0866cfd2c7ac9bf17f0a0590551a3580359e7250 0 test2.txt
vskumar@ubuntu:~/test-git$
=====>
You can see the removed file is back into dir:
== Status of removed file ==>
vskumar@ubuntu:~/test-git$ git status
On branch master
Changes to be committed:
(use “git reset HEAD <file>…” to unstage)
deleted: test1.txt
Untracked files:
(use “git add <file>…” to include in what will be committed)

test1.txt
vskumar@ubuntu:~/test-git$
=== It need to be be added and committed ====>
vskumar@ubuntu:~/test-git$ git add .
vskumar@ubuntu:~/test-git$ git status
On branch master
nothing to commit, working directory clean
vskumar@ubuntu:~/test-git$
======= It need to be added only===.

====== list the stage files =>
vskumar@ubuntu:~/test-git$
vskumar@ubuntu:~/test-git$ git ls-files –stage
100644 b9132c1dd4ac08fa9c1e3dea5d7100e33557ad20 0 test1.txt
100644 0866cfd2c7ac9bf17f0a0590551a3580359e7250 0 test2.txt
vskumar@ubuntu:~/test-git$
=========================>
13. What are the ultimate format of the git log ?:
We can use the ultimate format of the log as: git log –pretty=format:”%h %ad | %s%d [%an]” –graph –date=short

===== Screen output ==========>
vskumar@ubuntu:~$ cd test-git vskumar@ubuntu:~/test-git$ pwd /home/vskumar/test-git vskumar@ubuntu:~/test-git$ git log –pretty=format:”%h %ad | %s%d [%an]” –graph –date=short * 69282e8 2018-02-24 | Committed test2.txt 3rd change (HEAD -> master) [Vsk] * 6bfd9b0 2018-02-24 | Committed test1.txt 3rd change [Vsk] * 2a7192d 2018-02-24 | Committed:Changes for test1.txt and test2.txt [Vsk] * 56ccc1e 2018-02-24 | First Commit [Vsk] vskumar@ubuntu:~/test-git$

==============================>

14. How to setup aliases for different git commands?:

If there is a common and complex the Git command you type frequently, consider setting up a simple Git alias for it.

We can use the below common aliases:

git config –global alias.ci commit

git config –global alias.st status

git config –global alias.br branch

git config –global alias.hist “log –pretty=format:’%h %ad | %s%d [%an]’ –graph –date=short”

Once you setup the above aliases for git commands you need to use them only, instead of commands.

Like; for command: ‘log –pretty=format:’%h %ad | %s%d [%an]’ –graph –date=short You need to use git hist, etc.

You also need to remember them well. Once you setup the above aliases for git commands you need to use them only instead of commands.

Like; for command: ‘log –pretty=format:”%h %ad | %s%d [%an]” –graph –date=short’

You need to use git hist, etc. You also need to remember them well.

Let us try one command for branch:

===== Screen output ==========>

vskumar@ubuntu:~$ cd test-git

vskumar@ubuntu:~/test-git$ pwd /home/vskumar/test-git

vskumar@ubuntu:~/test-git$ git log –pretty=format:”%h %ad | %s%d [%an]” –graph –date=short

* 69282e8 2018-02-24 | Committed test2.txt 3rd change (HEAD -> master) [Vsk]

*6bfd9b0 2018-02-24 | Committed test1.txt 3rd change [Vsk]

* 2a7192d 2018-02-24 | Committed:Changes for test1.txt and test2.txt [Vsk]

* 56ccc1e 2018-02-24 | First Commit [Vsk] vskumar@ubuntu:~/test-git$ ==========================>

=== History =======>

vskumar@ubuntu:~/test-git$ git log –pretty=format:”%h %ad | %s%d [%an]” –graph –date=short

* 69282e8 2018-02-24 | Committed test2.txt 3rd change (HEAD -> master) [Vsk]

* 6bfd9b0 2018-02-24 | Committed test1.txt 3rd change [Vsk]

* 2a7192d 2018-02-24 | Committed:Changes for test1.txt and test2.txt [Vsk]

* 56ccc1e 2018-02-24 | First Commit [Vsk]

vskumar@ubuntu:~/test-git$ git config –global alias.hist “log –pretty=format:’%h %ad | %s%d [%an]’ –grap h –date=short”

==== With alias hist ========>

vskumar@ubuntu:~/test-git$ git hist

* 69282e8 2018-02-24 | Committed test2.txt 3rd change (HEAD -> master) [Vsk]

* 6bfd9b0 2018-02-24 | Committed test1.txt 3rd change [Vsk]

* 2a7192d 2018-02-24 | Committed:Changes for test1.txt and test2.txt [Vsk]

* 56ccc1e 2018-02-24 | First Commit [Vsk]

vskumar@ubuntu:~/test-git$

==========================>

15. How to use tags and operate for different versions in a repository?:

Tags for previous versions of git: W

We can tag latest committed versions from a local repo to reuse them later stages. Let’s tag the version prior to the current version with the name v1.

First, we will checkout the previous version. Instead of looking up the hash, we are going to use the  notation indicating “the parent of v1”. git tag v1

=== You can see the tagging process for the latest commit ===>

vskumar@ubuntu:~/test-git$

vskumar@ubuntu:~/test-git$ git hist

* 69282e8 2018-02-24 | Committed test2.txt 3rd change (HEAD -> master) [Vsk]

* 6bfd9b0 2018-02-24 | Committed test1.txt 3rd change [Vsk]

* 2a7192d 2018-02-24 | Committed:Changes for test1.txt and test2.txt [Vsk]

* 56ccc1e 2018-02-24 | First Commit [Vsk]

vskumar@ubuntu:~/test-git$ git tag v1

vskumar@ubuntu:~/test-git$ git checkout v1

Note: checking out ‘v1’. You are in ‘detached HEAD’ state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b <new-branch-name> HEAD is now at 69282e8… Committed test2.txt 3rd change

vskumar@ubuntu:~/test-git$ git hist

* 69282e8 2018-02-24 | Committed test2.txt 3rd change (HEAD, tag: v1, master) [Vsk]

* 6bfd9b0 2018-02-24 | Committed test1.txt 3rd change [Vsk]

* 2a7192d 2018-02-24 | Committed:Changes for test1.txt and test2.txt [Vsk]

* 56ccc1e 2018-02-24 | First Commit [Vsk]

vskumar@ubuntu:~/test-git$ git status

HEAD detached at v1 nothing to commit, working directory clean vskumar@ubuntu:~/test-git$

================================>

Now, let us add a line to test1.txt and commit it.

===== Screen output ===>

vskumar@ubuntu:~/test-git$ ls -l total 8

-rw-rw-r– 1 vskumar vskumar 88 Feb 24 06:37 test1.txt

-rw-rw-r– 1 vskumar vskumar 75 Feb 24 06:37 test2.txt

vskumar@ubuntu:~/test-git$ git status

HEAD detached at v1 nothing to commit, working directory clean vskumar@ubuntu:~/test-git$

vskumar@ubuntu:~/test-git$ echo ‘Testing test1.txt for tagging v2’ >> test1.txt vskumar@ubuntu:~/test-git$ cat test1.txt

Testing line1 for git .. Testing line2 for git—->

Testing test1.tx for add . function

Testing test1.txt for tagging v2

vskumar@ubuntu:~/test-git$ git status

HEAD detached at v1 Changes not staged for commit: (use “git add <file>…” to update what will be committed) (use “git checkout — <file>…” to discard changes in working directory) modified: test1.txt no changes added to commit (use “git add” and/or “git commit -a”)

vskumar@ubuntu:~/test-git$

========================>

Now let me add and commit

=== Add and commit for tagging 2nd time ===>

vskumar@ubuntu:~/test-git$ git add .

vskumar@ubuntu:~/test-git$ git status

HEAD detached at v1 Changes to be committed: (use “git reset HEAD <file>…” to unstage) modified: test1.txt

vskumar@ubuntu:~/test-git$ git commit -m ‘Added for tagging 2nd time’

[detached HEAD 0bec7c0] Added for tagging 2nd time 1 file changed, 1 insertion(+) vskumar@ubuntu:~/test-git$ git status HEAD detached from v1 nothing to commit, working directory clean

vskumar@ubuntu:~/test-git$

===============>

Now, let us tag 2nd time :

== You can see two versions are tagged ===>

vskumar@ubuntu:~/test-git$

vskumar@ubuntu:~/test-git$ git hist

* 0bec7c0 2018-02-24 | Added for tagging 2nd time (HEAD) [Vsk]

* 69282e8 2018-02-24 | Committed test2.txt 3rd change (tag: v1, master) [Vsk]

* 6bfd9b0 2018-02-24 | Committed test1.txt 3rd change [Vsk]

* 2a7192d 2018-02-24 | Committed:Changes for test1.txt and test2.txt [Vsk]

* 56ccc1e 2018-02-24 | First Commit [Vsk]

vskumar@ubuntu:~/test-git$ git tag v2

vskumar@ubuntu:~/test-git$ git hist

* 0bec7c0 2018-02-24 | Added for tagging 2nd time (HEAD, tag: v2) [Vsk]

* 69282e8 2018-02-24 | Committed test2.txt 3rd change (tag: v1, master) [Vsk]

* 6bfd9b0 2018-02-24 | Committed test1.txt 3rd change [Vsk]

* 2a7192d 2018-02-24 | Committed:Changes for test1.txt and test2.txt [Vsk]

* 56ccc1e 2018-02-24 | First Commit [Vsk]

vskumar@ubuntu:~/test-git$

===========================>

Now let us check the latest version of test1.txt content.

=== Latest version test1.txt ===>

vskumar@ubuntu:~/test-git$ ls -l

total 8 -rw-rw-r– 1

vskumar vskumar 121 Feb 24 20:58 test1.txt -rw-rw-r– 1 vskumar vskumar 75 Feb 24 06:37 test2.txt

vskumar@ubuntu:~/test-git$ cat test1.txt

Testing line1 for git .. Testing line2 for git—-> Testing test1.tx for add . function Testing test1.txt for tagging v2

vskumar@ubuntu:~/test-git$

============>

Now, let us checkout the older version to test the content of test1.txt. using : git checkout v1

====== Chekout v1 to track changes ====>

vskumar@ubuntu:~/test-git$ git checkout v1

Previous HEAD position was 0bec7c0… Added for tagging 2nd time HEAD is now at 69282e8… Committed test2.txt 3rd change

vskumar@ubuntu:~/test-git$ cat test1.txt

Testing line1 for git .. Testing line2 for git—->

Testing test1.tx for add . function

vskumar@ubuntu:~/test-git$

vskumar@ubuntu:~/test-git$ git status

HEAD detached at v1 nothing to commit, working directory clean

vskumar@ubuntu:~/test-git$

=== We can see the older version content only===>

===== We can see the hist and make the current master checkout s v1 ===> vskumar@ubuntu:~/test-git$ git hist

* 69282e8 2018-02-24 | Committed test2.txt 3rd change (HEAD, tag: v1, master) [Vsk]

* 6bfd9b0 2018-02-24 | Committed test1.txt 3rd change [Vsk]

* 2a7192d 2018-02-24 | Committed:Changes for test1.txt and test2.txt [Vsk]

* 56ccc1e 2018-02-24 | First Commit [Vsk]

vskumar@ubuntu:~/test-git$

vskumar@ubuntu:~/test-git$ git checkout

master Switched to branch ‘master’

vskumar@ubuntu:~/test-git$ git hist

* 69282e8 2018-02-24 | Committed test2.txt 3rd change (HEAD -> master, tag: v1) [Vsk]

* 6bfd9b0 2018-02-24 | Committed test1.txt 3rd change [Vsk]

* 2a7192d 2018-02-24 | Committed:Changes for test1.txt and test2.txt [Vsk]

* 56ccc1e 2018-02-24 | First Commit [Vsk] vskumar@ubuntu:~/test-git$ vskumar@ubuntu:~/test-git$ git status On branch master nothing to commit, working directory clean

vskumar@ubuntu:~/test-git$

==============================>

16. How to revert back the changes to older version ?:

Now, let us understand on how to revertback the changes in a local file.

We can use reset command to bring back the previous version. If you have a modified object in the working dir and want to revertback to older version you can follow the below steps.

The reset command resets the buffer zone to HEAD. This clears the buffer zone from the changes that we have just staged. The reset command (default) does not change the working directory. Hence, the working directory still contains unwanted comments.

We can use the checkout command from the previous tutorial to remove unwanted changes from working directory.

===== to revertback Reset the modified file and checkout that file only =====> vskumar@ubuntu:~/test-git$ git status On branch master nothing to commit, working directory clean

vskumar@ubuntu:~/test-git$ echo ‘Testing for reset Head command’ >> test1.txt vskumar@ubuntu:~/test-git$ git status On branch master Changes not staged for commit: (use “git add <file>…” to update what will be committed) (use “git checkout — <file>…” to discard changes in working directory) modified: test1.txt no changes added to commit (use “git add” and/or “git commit -a”)

vskumar@ubuntu:~/test-git$ git reset HEAD test1.txt Unstaged changes after reset: M test1.txt

vskumar@ubuntu:~/test-git$ git status On branch master Changes not staged for commit: (use “git add <file>…” to update what will be committed) (use “git checkout — <file>…” to discard changes in working directory) modified: test1.txt no changes added to commit (use “git add” and/or “git commit -a”)

vskumar@ubuntu:~/test-git$

=== Finally, You can see the older version contents only ====>

17. How to cancel the committed changes? :

We have seen on how to cancel the modified files.

Now we can check on how to revert back the committed changes in the local git repo.

== Let us see the current hist ===>

vskumar@ubuntu:~/test-git$ git hist

* 69282e8 2018-02-24 | Committed test2.txt 3rd change (HEAD -> master, tag: v1) [Vsk]

* 6bfd9b0 2018-02-24 | Committed test1.txt 3rd change [Vsk]

* 2a7192d 2018-02-24 | Committed:Changes for test1.txt and test2.txt [Vsk]

* 56ccc1e 2018-02-24 | First Commit [Vsk]

vskumar@ubuntu:~/test-git$

=================>

Now let us consider v1 to revert back.

We need to use command:git revert HEAD. When we use this command it will open a editor by showing the details.

We can save it using ‘wq!’ like in vi/vim.

===== Output =======>

vskumar@ubuntu:~/test-git$ git revert HEAD

[master fdc40ac] Revert “Committed test2.txt 3rd change” 1 file changed, 1 deletion(-)

vskumar@ubuntu:~/test-git$

===================>

Now, let us check hist

=== git hist ====>

vskumar@ubuntu:~/test-git$ git hist

* fdc40ac 2018-02-24 | Revert “Committed test2.txt 3rd change” (HEAD -> master) [Vsk]

* 69282e8 2018-02-24 | Committed test2.txt 3rd change (tag: v1) [Vsk]

* 6bfd9b0 2018-02-24 | Committed test1.txt 3rd change [Vsk]

* 2a7192d 2018-02-24 | Committed:Changes for test1.txt and test2.txt [Vsk]

* 56ccc1e 2018-02-24 | First Commit [Vsk]

vskumar@ubuntu:~/test-git$

=================>

============ Exercise ====================>

If you want to can do an Exercise: You can checkout the committed version. You can add a test to text1 file and commit it. Again you can use the same lab practice.

============ You can revert back also =====>

18. How to reset the reverted changes through commit from the branch? :

Check the previous screen display for the usage of revert command.

Now, if we have decided to reset the changes we can use the command: ‘git reset –hard v1’

=== Screen output for resetting reverted commit=====>

vskumar@ubuntu:~/test-git$ git reset –hard v1

HEAD is now at 69282e8 Committed test2.txt 3rd change

vskumar@ubuntu:~/test-git$ git hist

* 69282e8 2018-02-24 | Committed test2.txt 3rd change (HEAD, tag: v1) [Vsk]

* 6bfd9b0 2018-02-24 | Committed test1.txt 3rd change [Vsk]

* 2a7192d 2018-02-24 | Committed:Changes for test1.txt and test2.txt [Vsk]

* 56ccc1e 2018-02-24 | First Commit [Vsk]

vskumar@ubuntu:~/test-git$

=====================>

We can check the committed history using the below command: git hist –all

==== Screen output git hist –all ===>

vskumar@ubuntu:~/test-git$ git hist –all

* fdc40ac 2018-02-24 | Revert “Committed test2.txt 3rd change” (master) [Vsk] |

* 0bec7c0 2018-02-24 | Added for tagging 2nd time (tag: v2) [Vsk] |

* 69282e8 2018-02-24 | Committed test2.txt 3rd change (HEAD, tag: v1) [Vsk]

* 6bfd9b0 2018-02-24 | Committed test1.txt 3rd change [Vsk]

* 2a7192d 2018-02-24 | Committed:Changes for test1.txt and test2.txt [Vsk]

* 56ccc1e 2018-02-24 | First Commit [Vsk]

vskumar@ubuntu:~/test-git$

=====================>

You can also observe the reverted information.

We can also drop the tags as below: git tag -d v1

===== Output for tag removal ====>

vskumar@ubuntu:~/test-git$ git tag -d v2

Deleted tag ‘v2’ (was 0bec7c0)

vskumar@ubuntu:~/test-git$ git hist –all

* fdc40ac 2018-02-24 | Revert “Committed test2.txt 3rd change” (master) [Vsk]

* 69282e8 2018-02-24 | Committed test2.txt 3rd change (HEAD, tag: v1) [Vsk]

* 6bfd9b0 2018-02-24 | Committed test1.txt 3rd change [Vsk]

* 2a7192d 2018-02-24 | Committed:Changes for test1.txt and test2.txt [Vsk]

* 56ccc1e 2018-02-24 | First Commit [Vsk]

vskumar@ubuntu:~/test-git$

==========So, now v2 tag is removed ========>

You can also see the config file as below:

=== Config file ====>

vskumar@ubuntu:~/test-git$ cat .git/config

[core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true vskumar@ubuntu:~/test-git$

=====This configuration file is created for each individual project.===============>

19. Working with git directory:

 

Every Git project will have directories and files.

We can see the git dir items:

==================== Git dir items ===>

vskumar@ubuntu:~/test-git$ ls -l -C .git

branches        config       HEAD   index  logs     ORIG_HEAD

COMMIT_EDITMSG  description  hooks  info   objects  refs

vskumar@ubuntu:~/test-git$

======Root folder of git project =====>

 

We can explore the objects dir to check the objects details.

using ls -l -C .git/objects

 

==== Output ====>

vskumar@ubuntu:~/test-git$ ls -l -C .git/objects

07  0b  44  4f  68  6b  92  b0  bd  fd    pack

08  2a  47  56  69  73  93  b9  e0  info

vskumar@ubuntu:~/test-git$

================>

 

We can see a lot of folders named with two characters.

The first two letters sha1 hash of the object stored in git are the directory names.

 

What is SHA1 ?:

The SHA-1 (Secure Hash Algorithm 1) is a cryptographic hash function.  

It takes an input and produces a 160-bit (20-byte) hash value known as a message digest to the object.

Typically it is rendered as a hexadecimal number, with 40 digits long.

 

Now, let us see it by inquiring our database objects from the above listed items:

Using the below command we can check the files in dir.

ls -C .git/objects/<dir>   — The dir is the two characters of the above shown values.

==== Checking one dir ====>

vskumar@ubuntu:~/test-git$ ls -l  -C .git/objects/07

5e722b3161a24fd5adcefb574b5360118abbef

vskumar@ubuntu:~/test-git$ ls -l  -C .git/objects/92

d62ee30d26c444d85b3d81a4e2b8b69e0f093f

vskumar@ubuntu:~/test-git$

==== You can see 40 digits size hexadecimal value of objects in 07 and 92 objects dir====>

 

Note, we have seen the config file from the previous exercises.

Now, We will check the branches and tags as below commands:

 

ls .git/refs

ls .git/refs/heads

ls .git/refs/tags

cat .git/refs/tags/v1

 

== Checking branches and tags ===>

vskumar@ubuntu:~/test-git$

vskumar@ubuntu:~/test-git$ ls .git/refs

heads  tags

vskumar@ubuntu:~/test-git$ ls .git/refs/heads

master

vskumar@ubuntu:~/test-git$ ls .git/refs/tags

v1

vskumar@ubuntu:~/test-git$ cat .git/refs/tags/v1

69282e8d8c07e7cbc68e93b16df1d943d3b518d5

vskumar@ubuntu:~/test-git$

=================================>

 

Let us note;  each file corresponds to the tag previously created using the git tag command.

Its content is a hash commit attached to the tag.

We have only one branch, and everything we see here in this folder is a master branch.

Now, let us check what the HEAD file contains?:

using :cat .git/HEAD

 

==============>

vskumar@ubuntu:~/test-git$ cat .git/HEAD

683ed74fda585e10f38111ebb4c84026d5678290

vskumar@ubuntu:~/test-git$

=============>

 

Let us search for the last committed items:

We can explore the structure of the database objects

using SHA1 hashes for searching the content in the repository.

 

The below command should find the last commit in the repository.

======= SHA hash of git hist ==>

vskumar@ubuntu:~/test-git$ git hist –max-count=1

* 683ed74 2018-02-24 | Added updated test1.txt (HEAD) [Vsk]

vskumar@ubuntu:~/test-git$

==============================>

SHA1 hash is probably different on our systems from this git format.

Now, let us check the last commit details.

Using the below commands:

git cat-file -t <hash>

git cat-file -p <hash>

 

==== SHA1 content and the tree details ===>

vskumar@ubuntu:~/test-git$ git cat-file -t 683ed74

commit

vskumar@ubuntu:~/test-git$ git cat-file -p 683ed74

tree 44298909c5e8873c5870f9f1ca77951ea4e028eb

parent 69282e8d8c07e7cbc68e93b16df1d943d3b518d5

author Vsk <vskumar35@gmail.com> 1519544092 -0800

committer Vsk <vskumar35@gmail.com> 1519544092 -0800

Added updated test1.txt

vskumar@ubuntu:~/test-git$

==========================================>

Now, we can display the tree referenced in the above commit.

Using :git cat-file -p <treehash>

From the couple of characters shown for tree.

====== We can see the real files stored under git blob ====>

vskumar@ubuntu:~/test-git$ git cat-file -p 44298909

100644 blob 075e722b3161a24fd5adcefb574b5360118abbef test1.txt

100644 blob 0866cfd2c7ac9bf17f0a0590551a3580359e7250 test2.txt

vskumar@ubuntu:~/test-git$

================================================>

 

== See the contents for text1.txt also ===>

vskumar@ubuntu:~/test-git$ git cat-file -p 075e722b

Testing line1 for git ..

Testing line2 for git—->

Testing test1.tx for add . function

Checking for changing commit comment

vskumar@ubuntu:~/test-git$

====================================>

 

So we have seen the main branch to till the object content level.

 

20. Working with git branches and master :

 

Now, let us see the branches operation. We can create different branches as each developer

can have his/her own branch while working with the same or different objects.

Let us see the current statusof git project:

=========>

vskumar@ubuntu:~/test-git$ pwd

/home/vskumar/test-git

vskumar@ubuntu:~/test-git$ git status

HEAD detached from v1

Changes not staged for commit:

  (use “git add <file>…” to update what will be committed)

  (use “git checkout — <file>…” to discard changes in working directory)

 

modified:   test1.txt

modified:   test2.txt

 

Untracked files:

  (use “git add <file>…” to include in what will be committed)

 

class

test1.class

test1.java

 

no changes added to commit (use “git add” and/or “git commit -a”)

vskumar@ubuntu:~/test-git$

======================>

 

Now, Let us create a new branch as below [using checkout] and test the operations.

 

git checkout -b testgitbr1

git status

 

====== We are just copied the same project as a branch ======>

vskumar@ubuntu:~/test-git$ git checkout -b testgitbr1

M test1.txt

M test2.txt

Switched to a new branch ‘testgitbr1’

vskumar@ubuntu:~/test-git$ git status

On branch testgitbr1

Changes not staged for commit:

  (use “git add <file>…” to update what will be committed)

  (use “git checkout — <file>…” to discard changes in working directory)

 

modified:   test1.txt

modified:   test2.txt

 

Untracked files:

  (use “git add <file>…” to include in what will be committed)

 

class

test1.class

test1.java

 

no changes added to commit (use “git add” and/or “git commit -a”)

vskumar@ubuntu:~/test-git$

==================>

Assume a developer want to add his own program.

Now, I would like to add the test1.java program into this new branch:

======= Adding new file ====>

vskumar@ubuntu:~/test-git$ git add test1.java

vskumar@ubuntu:~/test-git$ git status

On branch testgitbr1

Changes to be committed:

  (use “git reset HEAD <file>…” to unstage)

 

new file:   test1.java

 

Changes not staged for commit:

  (use “git add <file>…” to update what will be committed)

  (use “git checkout — <file>…” to discard changes in working directory)

 

modified:   test1.txt

modified:   test2.txt

 

Untracked files:

  (use “git add <file>…” to include in what will be committed)

 

class

test1.class

 

vskumar@ubuntu:~/test-git$

=== New branch has a java program also ===>

Now, let me commit this file with a message:

 

git commit -m “Added a java program [test1.java] to new branch”

 

========>

vskumar@ubuntu:~/test-git$ git commit -m “Added a java program [test1.java] to new branch”

[testgitbr1 4e7baf8] Added a java program [test1.java] to new branch

 1 file changed, 11 insertions(+)

 create mode 100644 test1.java

vskumar@ubuntu:~/test-git$

=============>

Let us see the status:

 

=== Current status ====>

vskumar@ubuntu:~/test-git$ git status

On branch testgitbr1

Changes not staged for commit:

  (use “git add <file>…” to update what will be committed)

  (use “git checkout — <file>…” to discard changes in working directory)

 

modified:   test1.txt

modified:   test2.txt

 

Untracked files:

  (use “git add <file>…” to include in what will be committed)

 

class

test1.class

 

no changes added to commit (use “git add” and/or “git commit -a”)

vskumar@ubuntu:~/test-git$

========================>

Now let me add all the modified files also with a commit:

 

=======>

vskumar@ubuntu:~/test-git$ git add .

vskumar@ubuntu:~/test-git$ git status

On branch testgitbr1

Changes to be committed:

  (use “git reset HEAD <file>…” to unstage)

 

new file:   class

new file:   test1.class

modified:   test1.txt

modified:   test2.txt

 

vskumar@ubuntu:~/test-git$

vskumar@ubuntu:~/test-git$

vskumar@ubuntu:~/test-git$ git commit -m “Added all 4 files [2-new and 2 modified]”

[testgitbr1 26b971b] Added all 4 files [2-new and 2 modified]

 4 files changed, 14 insertions(+), 4 deletions(-)

 create mode 100644 class

 create mode 100644 test1.class

 mode change 100644 => 100755 test1.txt

 mode change 100644 => 100755 test2.txt

vskumar@ubuntu:~/test-git$

vskumar@ubuntu:~/test-git$ git status

On branch testgitbr1

nothing to commit, working directory clean

vskumar@ubuntu:~/test-git$

== So, we have updated the new branch ====>

 

Now we need to navigate the available branches.

Let us apply git hist command and check the history as below:

== Checking the git project repo history ====>

vskumar@ubuntu:~/test-git$ git hist

* 26b971b 2018-03-05 | Added all 4 files [2-new and 2 modified] (HEAD -> testgitbr1) [Vsk]

* 4e7baf8 2018-03-05 | Added a java program [test1.java] to new branch [Vsk]

* 683ed74 2018-02-24 | Added updated test1.txt [Vsk]

* 69282e8 2018-02-24 | Committed test2.txt 3rd change (tag: v1) [Vsk]

* 6bfd9b0 2018-02-24 | Committed test1.txt 3rd change [Vsk]

* 2a7192d 2018-02-24 | Committed:Changes for test1.txt and test2.txt [Vsk]

* 56ccc1e 2018-02-24 | First Commit [Vsk]

vskumar@ubuntu:~/test-git$

== You can see the latest branch and commit messages===>

Now, let us toggle or do workaround between the branch and the master as below:

Please note so far we are with the testgitbr1 which is  branch.

Now let us use master as below:

git checkout master

==== Master ====>

vskumar@ubuntu:~/test-git$ git checkout master

Switched to branch ‘master’

vskumar@ubuntu:~/test-git$ git status

On branch master

nothing to commit, working directory clean

vskumar@ubuntu:~/test-git$

================>

 

Let us check some files and their content:

=== Checking master ===>

 vskumar@ubuntu:~/test-git$ cat test1.txt

Testing line1 for git ..

Testing line2 for git—->

Testing test1.tx for add . function

vskumar@ubuntu:~/test-git$ cat test1.java

cat: test1.java: No such file or directory

vskumar@ubuntu:~/test-git$

==========>

 

Now, let us switch to branch and check the files:

== You can see the difference from master ====>

vskumar@ubuntu:~/test-git$ git checkout testgitbr1

Switched to branch ‘testgitbr1’

vskumar@ubuntu:~/test-git$ git status

On branch testgitbr1

nothing to commit, working directory clean

vskumar@ubuntu:~/test-git$ cat test1.java

 

class test1{

  public static void main(String args[]){

    System.out.println(“Hello Welcome to DevOps course”);

System.out.println(“Hope you are practicing well Jenkins 2.9”);

System.out.println(“Now, create a java object file through javac compiler”);

System.out.println(“Using Jenkins job creation”);

System.out.println(“Once it is created, you run it by java runtime”);

System.out.println(“Now, compare the console output with your expectation!!”);

  }

}

vskumar@ubuntu:~/test-git$ cat test1.txt

echo ‘Testing line1 for git ..’

echo ‘Testing line2 for git—->’

echo ‘Testing test1.tx for add . function’

echo ‘Checking for changing commit comment’

echo ‘For removal of old comment’

vskumar@ubuntu:~/test-git$

==Note the test1.txt has different content from master =====>

 

Now, let us try to add one README file into master.

I want to create the README file as below:

 

== README file content ===>

vskumar@ubuntu:~/test-git$ pwd

/home/vskumar/test-git

vskumar@ubuntu:~/test-git$ git checkout master

Switched to branch ‘master’

vskumar@ubuntu:~/test-git$ git status

On branch master

nothing to commit, working directory clean

vskumar@ubuntu:~/test-git$

vskumar@ubuntu:~/test-git$ touch README

vskumar@ubuntu:~/test-git$ echo “Testing Master and branches” >> README

vskumar@ubuntu:~/test-git$ cat README

Testing Master and branches

vskumar@ubuntu:~/test-git$ echo “Added this README file into master only” >> README

vskumar@ubuntu:~/test-git$ cat README

Testing Master and branches

Added this README file into master only

vskumar@ubuntu:~/test-git$

===================================>

Let us commit this file into master.

 

=== Status ====>

 

vskumar@ubuntu:~/test-git$ git status

On branch master

Untracked files:

  (use “git add <file>…” to include in what will be committed)

 

README

 

nothing added to commit but untracked files present (use “git add” to track)

vskumar@ubuntu:~/test-git$

=======>

 

Add and  Commit it with message :

 

==== Commit master ===>

 

vskumar@ubuntu:~/test-git$ git add README

vskumar@ubuntu:~/test-git$ git status

On branch master

Changes to be committed:

  (use “git reset HEAD <file>…” to unstage)

 

new file:   README

 

vskumar@ubuntu:~/test-git$

===== Added README ====>

Now, Commit:

 

==== Commit master ===>

vskumar@ubuntu:~/test-git$ git commit -m “Added README file into mater”

[master 1fad32b] Added README file into mater

 1 file changed, 2 insertions(+)

 create mode 100644 README

vskumar@ubuntu:~/test-git$

======================>

Now, let us view the current hist of master and branch as below with git hist –all:

 

== Current history ===>

 vskumar@ubuntu:~/test-git$ git hist –all

* 1fad32b 2018-03-05 | Added README file into mater (HEAD -> master) [Vsk]

* fdc40ac 2018-02-24 | Revert “Committed test2.txt 3rd change” [Vsk]

| * 26b971b 2018-03-05 | Added all 4 files [2-new and 2 modified] (testgitbr1) [Vsk]

| * 4e7baf8 2018-03-05 | Added a java program [test1.java] to new branch [Vsk]

| * 683ed74 2018-02-24 | Added updated test1.txt [Vsk]

|/  

* 69282e8 2018-02-24 | Committed test2.txt 3rd change (tag: v1) [Vsk]

* 6bfd9b0 2018-02-24 | Committed test1.txt 3rd change [Vsk]

* 2a7192d 2018-02-24 | Committed:Changes for test1.txt and test2.txt [Vsk]

* 56ccc1e 2018-02-24 | First Commit [Vsk]

vskumar@ubuntu:~/test-git$

=== You can see on top last two commits of both master and branch =========>

 

21. How to Merge latest objects into single branch ?:

 

Now, we have two different branches. We can consolidate both branches versions and

merge them into a new branch for future developers to use them as one latest project.

Let us go back to the testgitbr1 branch and merge it with master by using the below commands.

git checkout testgitbr1

git merge master

================>

vskumar@ubuntu:~/test-git$ git checkout testgitbr1

Switched to branch ‘testgitbr1’

======>

When you use merge command a file opens in vi, just save it as it is.

==========================>

vskumar@ubuntu:~/test-git$ git merge master

Auto-merging test2.txt

Merge made by the ‘recursive’ strategy.

 README    | 2 ++

 test2.txt | 1 –

 2 files changed, 2 insertions(+), 1 deletion(-)

 create mode 100644 README

vskumar@ubuntu:~/test-git$

=================>

And let us see the current history:

git hist –all

 

===== History =====>

vskumar@ubuntu:~/test-git$ git hist –all

*   6b67f05 2018-03-05 | Merge branch ‘master’ into testgitbr1 (HEAD -> testgitbr1) [Vsk]

|\  

| * 1fad32b 2018-03-05 | Added README file into mater (master) [Vsk]

| * fdc40ac 2018-02-24 | Revert “Committed test2.txt 3rd change” [Vsk]

* | 26b971b 2018-03-05 | Added all 4 files [2-new and 2 modified] [Vsk]

* | 4e7baf8 2018-03-05 | Added a java program [test1.java] to new branch [Vsk]

* | 683ed74 2018-02-24 | Added updated test1.txt [Vsk]

|/  

* 69282e8 2018-02-24 | Committed test2.txt 3rd change (tag: v1) [Vsk]

* 6bfd9b0 2018-02-24 | Committed test1.txt 3rd change [Vsk]

* 2a7192d 2018-02-24 | Committed:Changes for test1.txt and test2.txt [Vsk]

* 56ccc1e 2018-02-24 | First Commit [Vsk]

vskumar@ubuntu:~/test-git$

== Let us check the above commit history also =============>

 

From the above exercise, we can conclude any developer can merge his/her current branch into master once they decide to release the code.

 

22. How to reset the earlier created branch from the local repository?:

 

We will see from this exercise, how a developer can reset the earlier branch.

We need to be on the branch now.

we should use ‘git checkout testgitbr1’

 

= Switching to testgitbr1 branch ==>

vskumar@ubuntu:~/test-git$ git checkout testgitbr1

Switched to branch ‘testgitbr1’

vskumar@ubuntu:~/test-git$

============>

Now. let us see the current history of the git local repo:

 

==== Git hist====>

 

vskumar@ubuntu:~/test-git$ git hist

*   6b67f05 2018-03-05 | Merge branch ‘master’ into testgitbr1 (HEAD -> testgitbr1) [Vsk]

|\  

| * 1fad32b 2018-03-05 | Added README file into mater (master) [Vsk]

| * fdc40ac 2018-02-24 | Revert “Committed test2.txt 3rd change” [Vsk]

* | 26b971b 2018-03-05 | Added all 4 files [2-new and 2 modified] [Vsk]

* | 4e7baf8 2018-03-05 | Added a java program [test1.java] to new branch [Vsk]

* | 683ed74 2018-02-24 | Added updated test1.txt [Vsk]

|/  

* 69282e8 2018-02-24 | Committed test2.txt 3rd change (tag: v1) [Vsk]

* 6bfd9b0 2018-02-24 | Committed test1.txt 3rd change [Vsk]

* 2a7192d 2018-02-24 | Committed:Changes for test1.txt and test2.txt [Vsk]

* 56ccc1e 2018-02-24 | First Commit [Vsk]

vskumar@ubuntu:~/test-git$

== Note, both branches info is available ===>

To remove the testgitbr1 branch we need to reset it.

git reset –hard <hash> —> Here the testgitbr1 branch 1st commit Hash is 4e7baf8.

So our command is; git reset –hard 4e7baf8

 

=== Resetting branch ===>

vskumar@ubuntu:~/test-git$ git reset –hard 4e7baf8

HEAD is now at 4e7baf8 Added a java program [test1.java] to new branch

==== Rsetting is done for branch ===>

Now let us check the hist all:

 

===== Hist all =====>

vskumar@ubuntu:~/test-git$ git hist –all

* 1fad32b 2018-03-05 | Added README file into mater (master) [Vsk]

* fdc40ac 2018-02-24 | Revert “Committed test2.txt 3rd change” [Vsk]

| * 4e7baf8 2018-03-05 | Added a java program [test1.java] to new branch (HEAD -> testgitbr1) [Vsk]

| * 683ed74 2018-02-24 | Added updated test1.txt [Vsk]

|/  

* 69282e8 2018-02-24 | Committed test2.txt 3rd change (tag: v1) [Vsk]

* 6bfd9b0 2018-02-24 | Committed test1.txt 3rd change [Vsk]

* 2a7192d 2018-02-24 | Committed:Changes for test1.txt and test2.txt [Vsk]

* 56ccc1e 2018-02-24 | First Commit [Vsk]

vskumar@ubuntu:~/test-git$

== Note;testgitbr1 branch is disappeared ====>

Now let us see the latest history.

So, this way any developer can create and merge a branch and later on it can be destroyed also.

 

23. How to add the current code to github?:

 

create a new repository or use the existing repo on the command line

Create your own github userid and a project in it.

Then you can create repository online. You will see set of commands display on the web page.

Follow them. Or follow as below:

 

Steps for Guthub access:

 

You need to set the project url as below:

========================>

vskumar@ubuntu:~/test-git$ git remote set-url origin https://github.com/vskumar2017/git-test1.git

vskumar@ubuntu:~/test-git$

========================>

Please see the below content, I have pushed the code to my account VSKUMAR2017 as below:

 

==== Pushed code to github account ====>

vskumar@ubuntu:~/test-git$ git push origin master –force

Username for ‘https://github.com&#8217;: VSKUMAR2017

Password for ‘https://VSKUMAR2017@github.com&#8217;:

Counting objects: 20, done.

Compressing objects: 100% (16/16), done.

Writing objects: 100% (20/20), 1.85 KiB | 0 bytes/s, done.

Total 20 (delta 2), reused 0 (delta 0)

remote: Resolving deltas: 100% (2/2), done.

To https://github.com/vskumar2017/git-test1.git

 * [new branch]      master -> master

vskumar@ubuntu:~/test-git$

====================>

 

I have gone throuhg my account and saw the below url:

https://github.com/vskumar2017/git-test1

 

=== As per the below hist it is stored ===>

vskumar@ubuntu:~/test-git$ git hist

* e3fab98 2018-03-05 | first commit (HEAD -> master) [Vsk]

* 1fad32b 2018-03-05 | Added README file into mater [Vsk]

* fdc40ac 2018-02-24 | Revert “Committed test2.txt 3rd change” [Vsk]

* 69282e8 2018-02-24 | Committed test2.txt 3rd change (tag: v1) [Vsk]

* 6bfd9b0 2018-02-24 | Committed test1.txt 3rd change [Vsk]

* 2a7192d 2018-02-24 | Committed:Changes for test1.txt and test2.txt [Vsk]

* 56ccc1e 2018-02-24 | First Commit [Vsk]

vskumar@ubuntu:~/test-git$

=====================>

I have done one more push:

 

==== One more push to github ===>

vskumar@ubuntu:~/test-git$ git checkout master

Switched to branch ‘master’

vskumar@ubuntu:~/test-git$ git add .

vskumar@ubuntu:~/test-git$ git commit -m “A shell sample added “

[master c61b3dd] A shell sample added

 1 file changed, 3 insertions(+)

 create mode 100644 sh1.sh

vskumar@ubuntu:~/test-git$ git push origin master –force

Username for ‘https://github.com&#8217;: VSKUMAR2017

Password for ‘https://VSKUMAR2017@github.com&#8217;:

Counting objects: 3, done.

Compressing objects: 100% (2/2), done.

Writing objects: 100% (3/3), 299 bytes | 0 bytes/s, done.

Total 3 (delta 1), reused 0 (delta 0)

remote: Resolving deltas: 100% (1/1), completed with 1 local object.

To https://github.com/vskumar2017/git-test1.git

   e3fab98..c61b3dd  master -> master

vskumar@ubuntu:~/test-git$

=========================>

 

I have see the below content on my guthub web page of url:https://github.com/vskumar2017/git-test1

===== Message ===>

sh1.sh  A shell sample added just now

======>

 Hope you enjoyed it technically!!

END OF LAB SESSION FOR Git

 

 Vcard-Shanthi Kumar V-v3

If you are keen practicing Mock interviews for a Job Description, Please read the below blog to contact:

https://vskumar.blog/2020/02/03/contact-for-aws-devops-sre-roles-mock-interview-prep-not-proxy-for-original-profile/

15. DevOps: How to setup jenkins 2.9 on Ubuntu-16.04 with jdk8 with a trouble shoot video guidance

jenkins

In continuation of blog related to Jenkins installation on Win10 url :https://vskumar.blog/2017/11/25/1-devops-jenkins2-9-installation-with-java-9-on-windows-10/

In this blog I would like to demonstrate on Jenkins 2.9 installation using Ubuntu 16.04 OS with JDK8. I used Ubuntu 16.04 VM.  You can use your standalone Ubuntu machine also.

At the end  a video link is given for this entire exercise…. with a job run…

[Note: If you are a student and in need of  Ubuntu 16.04 VM copy, I can share it. You need to send a request through linkedin with your identity please. At the bottom of this blog you can get my details.]

If you want to install Jenkins you need to have JDK in the Ubuntu machine.

You need to install JDK8 as 1st instance for Jenkins setup:

How to install JDK8?:

Step 1:-
Download JDK 8 tar.gz file from official website

Step 2:-
Extract contents using tar command

$tar -xzvf filename.tar.gz

Step 3 :-
Move Extracted file to /usr/local/java Directory
=====CLI Screen output ===>
vskumar@ubuntu:~$ pwd
/home/vskumar
vskumar@ubuntu:~$ cd /usr/local
vskumar@ubuntu:/usr/local$ ls
bin etc games include lib man sbin share src
vskumar@ubuntu:/usr/local$ mkdir java
mkdir: cannot create directory ‘java’: Permission denied
vskumar@ubuntu:/usr/local$ sudo mkdir java
[sudo] password for vskumar:
vskumar@ubuntu:/usr/local$ ls
bin etc games include java lib man sbin share src
vskumar@ubuntu:/usr/local$
vskumar@ubuntu:/usr/local$ cd java
vskumar@ubuntu:/usr/local/java$

vskumar@ubuntu:~$
vskumar@ubuntu:~$ ls
data-volume1 Downloads jdk-9.0.4_linux-x64_bin.tar.gz Public
Desktop examples.desktop Music Templates
Documents flask-test Pictures Videos
vskumar@ubuntu:~$ pwd
/home/vskumar
vskumar@ubuntu:~$

vskumar@ubuntu:~/Downloads$ ls
firefox-57.0.tar.bz2 jdk1.8.0_161 jdk-8u161-linux-x64.tar.gz

vskumar@ubuntu:~/Downloads$ sudo mv jdk1.8.0_161 /usr/local/java
[sudo] password for vskumar:
vskumar@ubuntu:~/Downloads$ ls
firefox-57.0.tar.bz2 jdk-8u161-linux-x64.tar.gz
vskumar@ubuntu:~/Downloads$
vskumar@ubuntu:/usr/local/java$ pwd
/usr/local/java
vskumar@ubuntu:/usr/local/java$ ls -l
total 4
drwxr-xr-x 8 vskumar vskumar 4096 Dec 19 16:24 jdk1.8.0_161
vskumar@ubuntu:/usr/local/java$

==jdk8 unzipped files are moved into /usr/local/java ===>

Step 4: – Now,
Update Alternatives

$sudo update-alternatives –install “/usr/bin/java” “java” “/usr/local/java/jdk1.8.0_161/bin/java” 1

$sudo update-alternatives –install “/usr/bin/javac” “javac” “/usr/local/java/jdk1.8.0_161/bin/javac” 1

$sudo update-alternatives –install “/usr/bin/javaws” “javaws” “/usr/local/java/jdk1.8.0_161/bin/javaws” 1

=== Output===>

vskumar@ubuntu:/usr/local/java/jdk1.8.0_161$
vskumar@ubuntu:/usr/local/java/jdk1.8.0_161$ pwd
/usr/local/java/jdk1.8.0_161
vskumar@ubuntu:/usr/local/java/jdk1.8.0_161$ sudo update-alternatives –install “/usr/bin/java” “java” “/usr/local/java/jdk1.8.0_161/bin/java” 1
vskumar@ubuntu:/usr/local/java/jdk1.8.0_161$ sudo update-alternatives –install “/usr/bin/javac” “javac” “/usr/local/java/jdk1.8.0_161/bin/javac” 1
update-alternatives: using /usr/local/java/jdk1.8.0_161/bin/javac to provide /usr/bin/javac (javac) in auto mode
vskumar@ubuntu:/usr/local/java/jdk1.8.0_161$ sudo update-alternatives –install “/usr/bin/javaws” “javaws” “/usr/local/java/jdk1.8.0_161/bin/javaws” 1
update-alternatives: using /usr/local/java/jdk1.8.0_161/bin/javaws to provide /usr/bin/javaws (javaws) in auto mode
vskumar@ubuntu:/usr/local/java/jdk1.8.0_161$
==============>

Step 5 :-
Check Java version
$ java -version

======>
vskumar@ubuntu:/usr/local/java/jdk1.8.0_161$ java -version
java version “1.8.0_161”
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
vskumar@ubuntu:/usr/local/java/jdk1.8.0_161$
====We have done JDKsetup ===>

Now, You can see “How to install Jenkins on Ubuntu 16.04?”:

For details Visit: https://wiki.jenkins.io/display/JENKINS/Installing+Jenkins+on+Ubuntu

Step1:
First, we need to add the jenkins repository key to the ubuntu system.

$ sudo wget -q -O – https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add –

When the key is added, the system will return ‘OK’

Step2:
Now, we need to append the Debian package repository
address to the server’s sources.list:

$echo deb https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list

The screen ouput for the above steps:
=== Screen output of Step1 and Step2====>
vskumar@ubuntu:~$ sudo wget -q -O – https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add –
OK
vskumar@ubuntu:~$ echo deb https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list
deb https://pkg.jenkins.io/debian-stable binary/
vskumar@ubuntu:~$ sudo apt-get update
===============>

When both of the above steps are executed, we’ll run update so that apt-get will use
the new repository:

Step3:
$sudo apt-get update

==== You will see the below screen output ===>
vskumar@ubuntu:~$ echo deb https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list
deb https://pkg.jenkins.io/debian-stable binary/
vskumar@ubuntu:~$ sudo apt-get update
Hit:1 https://download.docker.com/linux/ubuntu xenial InRelease
Ign:2 https://pkg.jenkins.io/debian-stable binary/ InRelease
Hit:3 https://pkg.jenkins.io/debian-stable binary/ Release
Reading package lists… Done
vskumar@ubuntu:~$
========================>

========>
vskumar@ubuntu:~$ sudo find . / jenkins | grep ‘jenkins’
find: ‘/run/user/1000/gvfs’: Permission denied
/var/lib/apt/lists/pkg.jenkins.io_debian-stable_binary_Packages
/var/lib/apt/lists/pkg.jenkins.io_debian-stable_binary_Release.gpg
/var/lib/apt/lists/pkg.jenkins.io_debian-stable_binary_Release
find: ‘jenkins’: No such file or directory
vskumar@ubuntu:~$
==============>

Step4:
Include JAVA_HOME = /usr/local/java/jdk1.8.0_161
in .shrc file.

Now, we will install Jenkins and its dependencies:

$sudo apt-get install jenkins
Whenyou run this command your might get the below error:
=== Dependecy issues ======>
vskumar@ubuntu:~$ sudo apt-get install jenkins
Reading package lists… Done
Building dependency tree
Reading state information… Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
jenkins : Depends: daemon but it is not installable
Depends: default-jre-headless (>= 2:1.8) or
java8-runtime-headless
E: Unable to correct problems, you have held broken packages.
vskumar@ubuntu:~$
======================>

To resolve this issued, Under Ubuntu Software tab, enable all the repositories.
The system updates all the packages/libs.

Visit for details:
https://askubuntu.com/questions/140246/how-do-i-resolve-unmet-dependencies-after-adding-a-ppa

After doing the repositories updates as mentioned above, I have re-executed the install command:

==== Screen Output of Jenkins installation ====
vskumar@ubuntu:~$ sudo apt-get install jenkins
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following additional packages will be installed:
ca-certificates-java daemon default-jre-headless java-common
openjdk-8-jre-headless
Suggested packages:
default-jre openjdk-8-jre-jamvm fonts-dejavu-extra fonts-ipafont-gothic
fonts-ipafont-mincho ttf-wqy-microhei | ttf-wqy-zenhei fonts-indic
The following NEW packages will be installed:
ca-certificates-java daemon default-jre-headless java-common jenkins
openjdk-8-jre-headless
0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded.
Need to get 101 MB of archives.
After this operation, 174 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu xenial/main amd64 java-common all 0.56ubuntu2 [7,742 B]
Get:2 http://archive.ubuntu.com/ubuntu xenial/main amd64 default-jre-headless amd64 2:1.8-56ubuntu2 [4,380 B]
Get:3 http://archive.ubuntu.com/ubuntu xenial/main amd64 ca-certificates-java all 20160321 [12.9 kB]
Get:4 http://archive.ubuntu.com/ubuntu xenial/main amd64 openjdk-8-jre-headless amd64 8u77-b03-3ubuntu3 [26.9 MB]
Get:5 https://pkg.jenkins.io/debian-stable binary/ jenkins 2.89.4 [73.7 MB]
Get:6 http://archive.ubuntu.com/ubuntu xenial/universe amd64 daemon amd64 0.6.4-1 [98.2 kB]
Fetched 101 MB in 2min 9s (775 kB/s)
Selecting previously unselected package java-common.
(Reading database … 217445 files and directories currently installed.)
Preparing to unpack …/java-common_0.56ubuntu2_all.deb …
Unpacking java-common (0.56ubuntu2) …
Selecting previously unselected package default-jre-headless.
Preparing to unpack …/default-jre-headless_2%3a1.8-56ubuntu2_amd64.deb …
Unpacking default-jre-headless (2:1.8-56ubuntu2) …
Selecting previously unselected package ca-certificates-java.
Preparing to unpack …/ca-certificates-java_20160321_all.deb …
Unpacking ca-certificates-java (20160321) …
Selecting previously unselected package openjdk-8-jre-headless:amd64.
Preparing to unpack …/openjdk-8-jre-headless_8u77-b03-3ubuntu3_amd64.deb …
Unpacking openjdk-8-jre-headless:amd64 (8u77-b03-3ubuntu3) …
Selecting previously unselected package daemon.
Preparing to unpack …/daemon_0.6.4-1_amd64.deb …
Unpacking daemon (0.6.4-1) …
Selecting previously unselected package jenkins.
Preparing to unpack …/jenkins_2.89.4_all.deb …
Unpacking jenkins (2.89.4) …
Processing triggers for man-db (2.7.5-1) …
Processing triggers for ca-certificates (20170717~16.04.1) …
Updating certificates in /etc/ssl/certs…
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d…
done.
Processing triggers for systemd (229-4ubuntu21.1) …
Processing triggers for ureadahead (0.100.0-19) …
Setting up java-common (0.56ubuntu2) …
Setting up daemon (0.6.4-1) …
Setting up openjdk-8-jre-headless:amd64 (8u77-b03-3ubuntu3) …
update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/rmid to provide /usr/bin/rmid (rmid) in auto mode
update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java to provide /usr/bin/java (java) in auto mode
update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/keytool to provide /usr/bin/keytool (keytool) in auto mode
update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/jjs to provide /usr/bin/jjs (jjs) in auto mode
update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/pack200 to provide /usr/bin/pack200 (pack200) in auto mode
update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/rmiregistry to provide /usr/bin/rmiregistry (rmiregistry) in auto mode
update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/unpack200 to provide /usr/bin/unpack200 (unpack200) in auto mode
update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/orbd to provide /usr/bin/orbd (orbd) in auto mode
update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/servertool to provide /usr/bin/servertool (servertool) in auto mode
update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/tnameserv to provide /usr/bin/tnameserv (tnameserv) in auto mode
update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jexec to provide /usr/bin/jexec (jexec) in auto mode
Setting up ca-certificates-java (20160321) …
Adding debian:Chambers_of_Commerce_Root_-_2008.pem
Adding debian:GeoTrust_Primary_Certification_Authority_-_G3.pem
Adding debian:OISTE_WISeKey_Global_Root_GA_CA.pem
Adding debian:Deutsche_Telekom_Root_CA_2.pem
Adding debian:Izenpe.com.pem
Adding debian:Microsec_e-Szigno_Root_CA_2009.pem
Adding debian:EC-ACC.pem
Adding debian:DigiCert_Global_Root_G2.pem
Adding debian:QuoVadis_Root_CA_3.pem
Adding debian:ePKI_Root_Certification_Authority.pem
Adding debian:GeoTrust_Primary_Certification_Authority_-_G2.pem
Adding debian:Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem
Adding debian:ACCVRAIZ1.pem
Adding debian:Cybertrust_Global_Root.pem
Adding debian:COMODO_ECC_Certification_Authority.pem
Adding debian:GeoTrust_Universal_CA_2.pem
Adding debian:Entrust_Root_Certification_Authority_-_EC1.pem
Adding debian:Sonera_Class_2_Root_CA.pem
Adding debian:Comodo_AAA_Services_root.pem
Adding debian:Security_Communication_EV_RootCA1.pem
Adding debian:AddTrust_Low-Value_Services_Root.pem
Adding debian:Amazon_Root_CA_1.pem
Adding debian:DST_Root_CA_X3.pem
Adding debian:OpenTrust_Root_CA_G1.pem
Adding debian:T-TeleSec_GlobalRoot_Class_3.pem
Adding debian:Camerfirma_Chambers_of_Commerce_Root.pem
Adding debian:Atos_TrustedRoot_2011.pem
Adding debian:Starfield_Class_2_CA.pem
Adding debian:Certigna.pem
Adding debian:Buypass_Class_3_Root_CA.pem
Adding debian:COMODO_Certification_Authority.pem
Adding debian:thawte_Primary_Root_CA_-_G3.pem
Adding debian:Swisscom_Root_EV_CA_2.pem
Adding debian:Go_Daddy_Class_2_CA.pem
Adding debian:VeriSign_Universal_Root_Certification_Authority.pem
Adding debian:Global_Chambersign_Root_-_2008.pem
Adding debian:CNNIC_ROOT.pem
Adding debian:AddTrust_External_Root.pem
Adding debian:SwissSign_Gold_CA_-_G2.pem
Adding debian:QuoVadis_Root_CA_1_G3.pem
Adding debian:GeoTrust_Primary_Certification_Authority.pem
Adding debian:Hongkong_Post_Root_CA_1.pem
Adding debian:TWCA_Global_Root_CA.pem
Adding debian:ACEDICOM_Root.pem
Adding debian:Go_Daddy_Root_Certificate_Authority_-_G2.pem
Adding debian:Staat_der_Nederlanden_EV_Root_CA.pem
Adding debian:GlobalSign_ECC_Root_CA_-_R4.pem
Adding debian:Entrust_Root_Certification_Authority_-_G2.pem
Adding debian:Taiwan_GRCA.pem
Adding debian:Verisign_Class_3_Public_Primary_Certification_Authority_-_G3.pem
Adding debian:COMODO_RSA_Certification_Authority.pem
Adding debian:ssl-cert-snakeoil.pem
Adding debian:DigiCert_High_Assurance_EV_Root_CA.pem
Adding debian:GeoTrust_Global_CA.pem
Adding debian:Security_Communication_RootCA2.pem
Adding debian:QuoVadis_Root_CA.pem
Adding debian:D-TRUST_Root_Class_3_CA_2_2009.pem
Adding debian:D-TRUST_Root_Class_3_CA_2_EV_2009.pem
Adding debian:UTN_USERFirst_Hardware_Root_CA.pem
Adding debian:DST_ACES_CA_X6.pem
Adding debian:Visa_eCommerce_Root.pem
Adding debian:Certinomis_-_Autorité_Racine.pem
Adding debian:thawte_Primary_Root_CA_-_G2.pem
Adding debian:Staat_der_Nederlanden_Root_CA_-_G2.pem
Adding debian:E-Tugra_Certification_Authority.pem
Adding debian:QuoVadis_Root_CA_2_G3.pem
Adding debian:Entrust.net_Premium_2048_Secure_Server_CA.pem
Adding debian:TURKTRUST_Certificate_Services_Provider_Root_2007.pem
Adding debian:SwissSign_Silver_CA_-_G2.pem
Adding debian:TWCA_Root_Certification_Authority.pem
Adding debian:Certum_Trusted_Network_CA_2.pem
Adding debian:T-TeleSec_GlobalRoot_Class_2.pem
Adding debian:GlobalSign_Root_CA_-_R2.pem
Adding debian:LuxTrust_Global_Root_2.pem
Adding debian:AddTrust_Public_Services_Root.pem
Adding debian:Staat_der_Nederlanden_Root_CA_-_G3.pem
Adding debian:USERTrust_ECC_Certification_Authority.pem
Adding debian:AffirmTrust_Networking.pem
Adding debian:Amazon_Root_CA_4.pem
Adding debian:Starfield_Services_Root_Certificate_Authority_-_G2.pem
Adding debian:TÜRKTRUST_Elektronik_Sertifika_Hizmet_Saglayicisi_H5.pem
Adding debian:ISRG_Root_X1.pem
Adding debian:AC_RAIZ_FNMT-RCM.pem
Adding debian:Swisscom_Root_CA_2.pem
Adding debian:DigiCert_Trusted_Root_G4.pem
Adding debian:GlobalSign_Root_CA.pem
Adding debian:CA_Disig_Root_R2.pem
Adding debian:OISTE_WISeKey_Global_Root_GB_CA.pem
Adding debian:TeliaSonera_Root_CA_v1.pem
Adding debian:Comodo_Trusted_Services_root.pem
Adding debian:Certum_Trusted_Network_CA.pem
Adding debian:NetLock_Arany_=Class_Gold=_Fotanúsítvány.pem
Adding debian:AffirmTrust_Premium.pem
Adding debian:AffirmTrust_Premium_ECC.pem
Adding debian:VeriSign_Class_3_Public_Primary_Certification_Authority_-_G5.pem
Adding debian:Secure_Global_CA.pem
Adding debian:Certinomis_-_Root_CA.pem
Adding debian:AddTrust_Qualified_Certificates_Root.pem
Adding debian:Certplus_Root_CA_G2.pem
Adding debian:Amazon_Root_CA_2.pem
Adding debian:Security_Communication_Root_CA.pem
Adding debian:GeoTrust_Global_CA_2.pem
Adding debian:DigiCert_Global_Root_CA.pem
Adding debian:Starfield_Root_Certificate_Authority_-_G2.pem
Adding debian:IdenTrust_Public_Sector_Root_CA_1.pem
Adding debian:VeriSign_Class_3_Public_Primary_Certification_Authority_-_G4.pem
Adding debian:SZAFIR_ROOT_CA2.pem
Adding debian:PSCProcert.pem
Adding debian:AffirmTrust_Commercial.pem
Adding debian:certSIGN_ROOT_CA.pem
Adding debian:Swisscom_Root_CA_1.pem
Adding debian:Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem
Adding debian:Certplus_Class_2_Primary_CA.pem
Adding debian:XRamp_Global_CA_Root.pem
Adding debian:GeoTrust_Universal_CA.pem
Adding debian:QuoVadis_Root_CA_3_G3.pem
Adding debian:QuoVadis_Root_CA_2.pem
Adding debian:China_Internet_Network_Information_Center_EV_Certificates_Root.pem
Adding debian:CFCA_EV_ROOT.pem
Adding debian:OpenTrust_Root_CA_G2.pem
Adding debian:Network_Solutions_Certificate_Authority.pem
Adding debian:Amazon_Root_CA_3.pem
Adding debian:Certum_Root_CA.pem
Adding debian:EE_Certification_Centre_Root_CA.pem
Adding debian:Actalis_Authentication_Root_CA.pem
Adding debian:Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem
Adding debian:DigiCert_Assured_ID_Root_G3.pem
Adding debian:SecureTrust_CA.pem
Adding debian:Entrust_Root_Certification_Authority.pem
Adding debian:DigiCert_Assured_ID_Root_G2.pem
Adding debian:Certplus_Root_CA_G1.pem
Adding debian:TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem
Adding debian:TÜBITAK_UEKAE_Kök_Sertifika_Hizmet_Saglayicisi_-_Sürüm_3.pem
Adding debian:GlobalSign_Root_CA_-_R3.pem
Adding debian:IdenTrust_Commercial_Root_CA_1.pem
Adding debian:OpenTrust_Root_CA_G3.pem
Adding debian:thawte_Primary_Root_CA.pem
Adding debian:USERTrust_RSA_Certification_Authority.pem
Adding debian:DigiCert_Assured_ID_Root_CA.pem
Adding debian:Buypass_Class_2_Root_CA.pem
Adding debian:CA_Disig_Root_R1.pem
Adding debian:Trustis_FPS_Root_CA.pem
Adding debian:Baltimore_CyberTrust_Root.pem
Adding debian:GlobalSign_ECC_Root_CA_-_R5.pem
Adding debian:Comodo_Secure_Services_root.pem
Adding debian:DigiCert_Global_Root_G3.pem
Adding debian:Hellenic_Academic_and_Research_Institutions_RootCA_2011.pem
Adding debian:Camerfirma_Global_Chambersign_Root.pem
Adding debian:SecureSign_RootCA11.pem
done.
Setting up default-jre-headless (2:1.8-56ubuntu2) …
Setting up jenkins (2.89.4) …
Processing triggers for ca-certificates (20170717~16.04.1) …
Updating certificates in /etc/ssl/certs…
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d…

done.
done.
Processing triggers for systemd (229-4ubuntu21.1) …
Processing triggers for ureadahead (0.100.0-19) …
vskumar@ubuntu:~$
== End of Jenkins intallation ========>

==== Updates ====>

vskumar@ubuntu:~$
vskumar@ubuntu:~$ sudo apt-get update
Hit:1 http://ppa.launchpad.net/webupd8team/java/ubuntu xenial InRelease
Hit:2 http://archive.ubuntu.com/ubuntu xenial InRelease
Hit:3 https://download.docker.com/linux/ubuntu xenial InRelease
Ign:4 https://pkg.jenkins.io/debian-stable binary/ InRelease
Hit:5 https://pkg.jenkins.io/debian-stable binary/ Release
Reading package lists… Done
vskumar@ubuntu:~$
=============>

Step5:

How to install apache2?:
If we need to use jenkins apache2 is required.
Now let us install apache2

=== Output for apache installation ===>
vskumar@ubuntu:~$
vskumar@ubuntu:~$ sudo apt install apache2
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following additional packages will be installed:
apache2-bin apache2-data apache2-utils libapr1 libaprutil1
libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0
Suggested packages:
apache2-doc apache2-suexec-pristine | apache2-suexec-custom
The following NEW packages will be installed:
apache2 apache2-bin apache2-data apache2-utils libapr1 libaprutil1
libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0
0 upgraded, 9 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,532 kB of archives.
After this operation, 6,350 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu xenial/main amd64 libapr1 amd64 1.5.2-3 [86.0 kB]
Get:2 http://archive.ubuntu.com/ubuntu xenial/main amd64 libaprutil1 amd64 1.5.4-1build1 [77.1 kB]
Get:3 http://archive.ubuntu.com/ubuntu xenial/main amd64 libaprutil1-dbd-sqlite3 amd64 1.5.4-1build1 [10.6 kB]
Get:4 http://archive.ubuntu.com/ubuntu xenial/main amd64 libaprutil1-ldap amd64 1.5.4-1build1 [8,720 B]
Get:5 http://archive.ubuntu.com/ubuntu xenial/main amd64 liblua5.1-0 amd64 5.1.5-8ubuntu1 [102 kB]
Get:6 http://archive.ubuntu.com/ubuntu xenial/main amd64 apache2-bin amd64 2.4.18-2ubuntu3 [918 kB]
Get:7 http://archive.ubuntu.com/ubuntu xenial/main amd64 apache2-utils amd64 2.4.18-2ubuntu3 [81.1 kB]
Get:8 http://archive.ubuntu.com/ubuntu xenial/main amd64 apache2-data all 2.4.18-2ubuntu3 [162 kB]
Get:9 http://archive.ubuntu.com/ubuntu xenial/main amd64 apache2 amd64 2.4.18-2ubuntu3 [86.6 kB]
Fetched 1,532 kB in 5s (270 kB/s)
Selecting previously unselected package libapr1:amd64.
(Reading database … 217703 files and directories currently installed.)
Preparing to unpack …/libapr1_1.5.2-3_amd64.deb …
Unpacking libapr1:amd64 (1.5.2-3) …
Selecting previously unselected package libaprutil1:amd64.
Preparing to unpack …/libaprutil1_1.5.4-1build1_amd64.deb …
Unpacking libaprutil1:amd64 (1.5.4-1build1) …
Selecting previously unselected package libaprutil1-dbd-sqlite3:amd64.
Preparing to unpack …/libaprutil1-dbd-sqlite3_1.5.4-1build1_amd64.deb …
Unpacking libaprutil1-dbd-sqlite3:amd64 (1.5.4-1build1) …
Selecting previously unselected package libaprutil1-ldap:amd64.
Preparing to unpack …/libaprutil1-ldap_1.5.4-1build1_amd64.deb …
Unpacking libaprutil1-ldap:amd64 (1.5.4-1build1) …
Selecting previously unselected package liblua5.1-0:amd64.
Preparing to unpack …/liblua5.1-0_5.1.5-8ubuntu1_amd64.deb …
Unpacking liblua5.1-0:amd64 (5.1.5-8ubuntu1) …
Selecting previously unselected package apache2-bin.
Preparing to unpack …/apache2-bin_2.4.18-2ubuntu3_amd64.deb …
Unpacking apache2-bin (2.4.18-2ubuntu3) …
Selecting previously unselected package apache2-utils.
Preparing to unpack …/apache2-utils_2.4.18-2ubuntu3_amd64.deb …
Unpacking apache2-utils (2.4.18-2ubuntu3) …
Selecting previously unselected package apache2-data.
Preparing to unpack …/apache2-data_2.4.18-2ubuntu3_all.deb …
Unpacking apache2-data (2.4.18-2ubuntu3) …
Selecting previously unselected package apache2.
Preparing to unpack …/apache2_2.4.18-2ubuntu3_amd64.deb …
Unpacking apache2 (2.4.18-2ubuntu3) …
Processing triggers for libc-bin (2.23-0ubuntu10) …
Processing triggers for man-db (2.7.5-1) …
Processing triggers for systemd (229-4ubuntu21.1) …
Processing triggers for ureadahead (0.100.0-19) …
Processing triggers for ufw (0.35-0ubuntu2) …
Setting up libapr1:amd64 (1.5.2-3) …
Setting up libaprutil1:amd64 (1.5.4-1build1) …
Setting up libaprutil1-dbd-sqlite3:amd64 (1.5.4-1build1) …
Setting up libaprutil1-ldap:amd64 (1.5.4-1build1) …
Setting up liblua5.1-0:amd64 (5.1.5-8ubuntu1) …
Setting up apache2-bin (2.4.18-2ubuntu3) …
Setting up apache2-utils (2.4.18-2ubuntu3) …
Setting up apache2-data (2.4.18-2ubuntu3) …
Setting up apache2 (2.4.18-2ubuntu3) …
Enabling module mpm_event.
Enabling module authz_core.
Enabling module authz_host.
Enabling module authn_core.
Enabling module auth_basic.
Enabling module access_compat.
Enabling module authn_file.
Enabling module authz_user.
Enabling module alias.
Enabling module dir.
Enabling module autoindex.
Enabling module env.
Enabling module mime.
Enabling module negotiation.
Enabling module setenvif.
Enabling module filter.
Enabling module deflate.
Enabling module status.
Enabling conf charset.
Enabling conf localized-error-pages.
Enabling conf other-vhosts-access-log.
Enabling conf security.
Enabling conf serve-cgi-bin.
Enabling site 000-default.
Processing triggers for libc-bin (2.23-0ubuntu10) …
Processing triggers for systemd (229-4ubuntu21.1) …
Processing triggers for ureadahead (0.100.0-19) …
Processing triggers for ufw (0.35-0ubuntu2) …
vskumar@ubuntu:~$
=== Apaches is installed ===>

Let us check its status:

== Status of apache2 ===>
vskumar@ubuntu:~$
vskumar@ubuntu:~$ service status apache2
status: unrecognized service
vskumar@ubuntu:~$ service apache2 status
? apache2.service – LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
+-apache2-systemd.conf
Active: active (running) since Thu 2018-02-22 02:30:24 PST; 1min 6s ago
Docs: man:systemd-sysv-generator(8)
CGroup: /system.slice/apache2.service
+-12680 /usr/sbin/apache2 -k start
+-12683 /usr/sbin/apache2 -k start
+-12684 /usr/sbin/apache2 -k start

Feb 22 02:30:22 ubuntu systemd[1]: Starting LSB: Apache2 web server…
Feb 22 02:30:22 ubuntu apache2[12651]: * Starting Apache httpd web server apach
Feb 22 02:30:23 ubuntu apache2[12651]: AH00558: apache2: Could not reliably dete
Feb 22 02:30:24 ubuntu apache2[12651]: *
Feb 22 02:30:24 ubuntu systemd[1]: Started LSB: Apache2 web server.
lines 1-16/16 (END)
================>

Now, let us check the status for Jenkins:

===== Jenkins status ===>

vskumar@ubuntu:~$ service jenkins status
? jenkins.service – LSB: Start Jenkins at boot time
Loaded: loaded (/etc/init.d/jenkins; bad; vendor preset: enabled)
Active: active (exited) since Thu 2018-02-22 02:13:57 PST; 23min ago
Docs: man:systemd-sysv-generator(8)

Feb 22 02:13:51 ubuntu systemd[1]: Starting LSB: Start Jenkins at boot time…
Feb 22 02:13:51 ubuntu jenkins[10140]: * Starting Jenkins Automation Server jen
Feb 22 02:13:52 ubuntu su[10168]: Successful su for jenkins by root
Feb 22 02:13:52 ubuntu su[10168]: + ??? root:jenkins
Feb 22 02:13:52 ubuntu su[10168]: pam_unix(su:session): session opened for user
Feb 22 02:13:57 ubuntu jenkins[10140]: …done.
Feb 22 02:13:57 ubuntu systemd[1]: Started LSB: Start Jenkins at boot time.
lines 1-12/12 (END)
==== Jenkins is running ======>

How to check on browser in Ubuntu for Jenkins web page ?:

You can also check the ubuntu browser with the below
url:http://localhost:8080/login?from=%2F
There should be a web page displayed with the message:
“Unlock Jenkins”.

It means Jenkins is available to use.

Step6:
Now, we need to setup the admin password.
Read the content on the web page.
You are advised to use the initial password from:
/var/lib/jenkins/secrets/initialAdminPassword

Let us go to that directory to get copy and paste it on
web page.

In my case I got the below:
==== PWD display ===>
vskumar@ubuntu:~$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword
711a4d7d01244651a490cfd4a61439e2
vskumar@ubuntu:~$
========>

I have pasted it on web page.
Till you change the pwd, this will be the default one.

==== List of the files in jenkins dir ===>
vskumar@ubuntu:/var/lib/jenkins$ ls -l
total 60
-rw-r–r– 1 jenkins jenkins 1820 Feb 22 02:17 config.xml
-rw-r–r– 1 jenkins jenkins 156 Feb 22 02:15 hudson.model.UpdateCenter.xml
-rw——- 1 jenkins jenkins 1712 Feb 22 02:15 identity.key.enc
-rw-r–r– 1 jenkins jenkins 94 Feb 22 02:16 jenkins.CLI.xml
-rw-r–r– 1 jenkins jenkins 6 Feb 22 02:16 jenkins.install.UpgradeWizard.state
drwxr-xr-x 2 jenkins jenkins 4096 Feb 22 02:15 jobs
drwxr-xr-x 3 jenkins jenkins 4096 Feb 22 02:16 logs
-rw-r–r– 1 jenkins jenkins 907 Feb 22 02:16 nodeMonitors.xml
drwxr-xr-x 2 jenkins jenkins 4096 Feb 22 02:15 nodes
drwxr-xr-x 2 jenkins jenkins 4096 Feb 22 02:15 plugins
-rw-r–r– 1 jenkins jenkins 64 Feb 22 02:15 secret.key
-rw-r–r– 1 jenkins jenkins 0 Feb 22 02:15 secret.key.not-so-secret
drwx—— 4 jenkins jenkins 4096 Feb 22 02:16 secrets
drwxr-xr-x 2 jenkins jenkins 4096 Feb 22 02:18 updates
drwxr-xr-x 2 jenkins jenkins 4096 Feb 22 02:16 userContent
drwxr-xr-x 3 jenkins jenkins 4096 Feb 22 02:16 users
vskumar@ubuntu:/var/lib/jenkins$ cd jobs
vskumar@ubuntu:/var/lib/jenkins/jobs$ ls
vskumar@ubuntu:/var/lib/jenkins/jobs$ pwd
/var/lib/jenkins/jobs
vskumar@ubuntu:/var/lib/jenkins/jobs$
==================>
We need to remember the above directories.

By default we can install ‘suggested plugins’ for now.
It shows the plugins updates.
Once they are installed, you will be prompted for a uid/pwd/name/e-mail.
You can fill them, and start using jenkins.

That is all the installation of Jenkins 2.9.

This video is made to motivate the new DevOps engineers to learn and do a kind of trouble shooting, while doing Jenkins installation on a Virtual machine of Ubuntu.

To try one job build you can go through my another blog:

https://vskumar.blog/2017/11/26/2-devops-jenkins2-9-how-to-create-and-build-the-job/

Good luck!! and you can start practicing Jenkins. 

Please leave your feedback!!

Vcard-Shanthi Kumar V-v3

14. DevOps: Docker-Creating a data volume with couchdb

Docker-logo

How to create Data Volumes using docker containers?:

In this exercise I would like to create couchdb data volume as below under docker container
Use the below command to make a couchdb volume

Step1:
Make directory data-volume1
===== Commands output =====>
vskumar@ubuntu:~$
vskumar@ubuntu:~$ pwd
/home/vskumar
vskumar@ubuntu:~$ ls
Desktop Downloads Music Public Videos
Documents examples.desktop Pictures Templates
vskumar@ubuntu:~$ mkdir data-volume1
vskumar@ubuntu:~$ ls
data-volume1 Documents examples.desktop Pictures Templates
Desktop Downloads Music Public Videos
vskumar@ubuntu:~$ cd data-volume1
vskumar@ubuntu:~/data-volume1$
=======================================>

Step2: I need to pull the couchdb latest image from the docker hub as below:

docker pull couchdb Using default tag:latest

=== Output =======>
vskumar@ubuntu:~/data-volume1$ sudo docker pull couchdb
Using default tag: latest
latest: Pulling from library/couchdb
4176fe04cefe: Pull complete
9f0a7c716711: Pull complete
796517a7b990: Pull complete
003491b79092: Pull complete
1502aa8b5925: Pull complete
d4017d9fa68f: Pull complete
30bc291a9bfe: Pull complete
4018e1354d8f: Pull complete
ebef40645ea4: Pull complete
f11931e5cbae: Pull complete
Digest: sha256:b95dce63ab64991640e5c9d4cc1597055690b1c1bb79ab30829d498f5f2301fcStatus: Downloaded newer image for couchdb:latest
vskumar@ubuntu:~/data-volume1$
=============================>

Step3:

Now, use the below command to create the data instance
==================>
vskumar@ubuntu:~/data-volume1$ sudo docker run -d –name my-couchdb couchdb
f84f95c5c9d2bdcabfb0ef796cb3e9b3bef0cec64ef4349d46f250a9065aa399
vskumar@ubuntu:~/data-volume1$
===================>
The above image includes EXPOSE 5984 (the CouchDB port),
so standard container linking will make it automatically available to the
linked containers.

Now, let me check the running containers:

====== List of containers along with couchdb ===>
vskumar@ubuntu:~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b7cba170d39a couchdb “tini — /docker-ent…” 5 minutes ago Up 5 minutes 4369/tcp, 5984/tcp, 9100/tcp my-couchdb-app
f84f95c5c9d2 couchdb “tini — /docker-ent…” 6 minutes ago Up 6 minutes 4369/tcp, 5984/tcp, 9100/tcp my-couchdb
10ffea6140f9 ubuntu “bash” 2 months ago Exited (0) 2 months ago quizzical_lalande
b2a79f8d2fe6 ubuntu “/bin/bash -c ‘while…” 2 months ago Exited (255) 2 months ago goofy_borg
155f4b0764b1 ubuntu:16.04 “/bin/bash” 2 months ago Exited (0) 2 months ago zen_volhard
vskumar@ubuntu:~$

vskumar@ubuntu:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b7cba170d39a couchdb “tini — /docker-ent…” 6 minutes ago Up 6 minutes 4369/tcp, 5984/tcp, 9100/tcp my-couchdb-app
f84f95c5c9d2 couchdb “tini — /docker-ent…” 8 minutes ago Up 8 minutes 4369/tcp, 5984/tcp, 9100/tcp my-couchdb
vskumar@ubuntu:~$
==============================>

Step4:

Now, we need to use the couchdb instance:
sudo docker run –name my-couchdb-app –link my-couchdb:couch couchdb

============>
Please note when I executed the above command in CLI, it started the DB server and
working as a dedicated terminal with its continuous display.
Now, we can not use the same terminal.
Hence I opened another terminal

===============>

From another terminal:
======= Current status ====>
vskumar@ubuntu:~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b7cba170d39a couchdb “tini — /docker-ent…” 10 minutes ago Up 9 minutes 4369/tcp, 5984/tcp, 9100/tcp my-couchdb-app
f84f95c5c9d2 couchdb “tini — /docker-ent…” 11 minutes ago Up 11 minutes 4369/tcp, 5984/tcp, 9100/tcp my-couchdb
10ffea6140f9 ubuntu “bash” 2 months ago Exited (0) 2 months ago quizzical_lalande
b2a79f8d2fe6 ubuntu “/bin/bash -c ‘while…” 2 months ago Exited (255) 2 months ago goofy_borg
155f4b0764b1 ubuntu:16.04 “/bin/bash” 2 months ago Exited (0) 2 months ago zen_volhard
vskumar@ubuntu:~$

zen_volhard
vskumar@ubuntu:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b7cba170d39a couchdb “tini — /docker-ent…” 10 minutes ago Up 10 minutes 4369/tcp, 5984/tcp, 9100/tcp my-couchdb-app
f84f95c5c9d2 couchdb “tini — /docker-ent…” 12 minutes ago Up 12 minutes 4369/tcp, 5984/tcp, 9100/tcp my-couchdb
vskumar@ubuntu:~$
===========================>

Step5:

Now, we need to attach this couchdb volumes to a local directory:

sudo docker run -d -v $(pwd):/opt/couchdb/data –name my-couchdb couchdb
To execute the above command, I need to remove the existing container and re-execute.

======= Removing the container forcedly ====>
vskumar@ubuntu:~$ sudo docker rm -f b7cba170d39a
b7cba170d39a
vskumar@ubuntu:~$
vskumar@ubuntu:~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f84f95c5c9d2 couchdb “tini — /docker-ent…” 19 minutes ago Up 19 minutes 4369/tcp, 5984/tcp, 9100/tcp my-couchdb
10ffea6140f9 ubuntu “bash” 2 months ago Exited (0) 2 months ago quizzical_lalande
b2a79f8d2fe6 ubuntu “/bin/bash -c ‘while…” 2 months ago Exited (255) 2 months ago goofy_borg
155f4b0764b1 ubuntu:16.04 “/bin/bash” 2 months ago Exited (0) 2 months ago zen_volhard
vskumar@ubuntu:~$ sudo docker rm -f f84f95c5c9d2
f84f95c5c9d2
vskumar@ubuntu:~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
10ffea6140f9 ubuntu “bash” 2 months ago Exited (0) 2 months ago quizzical_lalande
b2a79f8d2fe6 ubuntu “/bin/bash -c ‘while…” 2 months ago Exited (255) 2 months ago goofy_borg
155f4b0764b1 ubuntu:16.04 “/bin/bash” 2 months ago Exited (0) 2 months ago zen_volhard
vskumar@ubuntu:~$
============ You can see there are no couchdb containers now=====>
Let us recreate it with the below command:
sudo docker run -d -v $(pwd):/opt/couchdb/data –name mytest-couchdb couchdb

=== re-creating a couchdb instance ===================>

vskumar@ubuntu:~/data-volume1$ sudo docker run -d -v $(pwd):/opt/couchdb/data –name mytest-couchdb couchdb
[sudo] password for vskumar:
ac849b4905d712740b7f5972e13836552914e7fdfd37e06dc2ecb6697a22c7dc
vskumar@ubuntu:~/data-volume1$

vskumar@ubuntu:~/data-volume1$ ls
_dbs.couch _nodes.couch _replicator.couch _users.couch
vskumar@ubuntu:~/data-volume1$ ls -l
total 44
-rw-r–r– 1 vskumar 999 4240 Feb 17 06:10 _dbs.couch
-rw-r–r– 1 vskumar 999 8368 Feb 17 06:10 _nodes.couch
-rw-r–r– 1 vskumar 999 8374 Feb 17 06:10 _replicator.couch
-rw-r–r– 1 vskumar 999 8374 Feb 17 06:10 _users.couch
vskumar@ubuntu:~/data-volume1$
=================================?

Step5:

Now we need to Specify the admin user in the DB environment:

We can use the two environment variables COUCHDB_USER and COUCHDB_PASSWORD to
set up the admin user.

$ sudo docker run -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password -d couchdb

===== Creating User and PWD =========>
vskumar@ubuntu:~/data-volume1$ sudo docker run -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password -d couchdb
4af58b1eed0e71ec11e0ea4cdf918ff657c36d312cfbf32ea0e2a7d7e9e23ee5
vskumar@ubuntu:~/data-volume1$
================================>

Step6:

Now let us create the below files:

======== .ini file ====>
vskumar@ubuntu:~/data-volume1$
vskumar@ubuntu:~/data-volume1$ ls -l
total 52
-rw-r–r– 1 vskumar 999 4240 Feb 17 06:10 _dbs.couch
-rw-rw-r– 1 vskumar vskumar 49 Feb 17 06:32 dockerfile
-rw-rw-r– 1 vskumar vskumar 49 Feb 17 06:29 local.ini
-rw-r–r– 1 vskumar 999 8368 Feb 17 06:10 _nodes.couch
-rw-r–r– 1 vskumar 999 8374 Feb 17 06:10 _replicator.couch
-rw-r–r– 1 vskumar 999 8374 Feb 17 06:10 _users.couch
vskumar@ubuntu:~/data-volume1$ cat local.ini

writer = file
file = /opt/couchdb/log/couch.log
=========== Creating a dockerfile in the current dir =====>
vskumar@ubuntu:~/data-volume1$ cat dockerfile

FROM couchdb

COPY local.ini /opt/couchdb/etc/

vskumar@ubuntu:~/data-volume1$
========================>
Now, we need to tag the db as below:

=====================>
vskumar@ubuntu:~/data-volume1$ sudo docker build -t mytest-couchdb .
Sending build context to Docker daemon 40.45kB
Step 1/2 : FROM couchdb
—> af415fd5efda
Step 2/2 : COPY local.ini /opt/couchdb/etc/
—> b88156204d48
Successfully built b88156204d48
Successfully tagged mytest-couchdb:latest
vskumar@ubuntu:~/data-volume1$
=========================>

Now, let us map the port as below:
The default port of couchdb is 5984.
$ sudo docker run -d -p 5984:5984 mytest-couchdb

=================================>
vskumar@ubuntu:~/data-volume1$
vskumar@ubuntu:~/data-volume1$ sudo docker run -d -p 5984:5984 mytest-couchdb
a9e5e6e6abc30c32830a0d3b70e7fe203d63dbd2de974d0dd02d1ccf0b53232e
vskumar@ubuntu:~/data-volume1$
==============>
My current docker host ip is 172.17.0.1
I would like to curl to the cocuchdb port 5984 as below to test its availability:

sudo curl -X PUT http://172.17.0.1:5984/db
=========================>
vskumar@ubuntu:~/data-volume1$ sudo curl -X PUT http://172.17.0.1:5984/db
{“ok”:true}
vskumar@ubuntu:~/data-volume1$
===== The couchdb data volume is available to use =================>

Step7:

Now, let me test this db by adding a document as below:

sudo curl -H ‘Content-Type: application/json’ -X POST http://172.17.0.1:5984/db -d ‘{“value”: “Hello I am Shanthi Kumar V, Testing my couchdb instance in a docker container”}’

============== Adding document into couchdb =======>
vskumar@ubuntu:~/data-volume1$ ls -l
total 52
-rw-r–r– 1 vskumar 999 4240 Feb 17 06:10 _dbs.couch
-rw-rw-r– 1 vskumar vskumar 49 Feb 17 06:32 dockerfile
-rw-rw-r– 1 vskumar vskumar 49 Feb 17 06:29 local.ini
-rw-r–r– 1 vskumar 999 8368 Feb 17 06:10 _nodes.couch
-rw-r–r– 1 vskumar 999 8374 Feb 17 06:10 _replicator.couch
-rw-r–r– 1 vskumar 999 8374 Feb 17 06:10 _users.couch
vskumar@ubuntu:~/data-volume1$ date
Sat Feb 17 06:52:48 PST 2018
vskumar@ubuntu:~/data-volume1$ sudo curl -H ‘Content-Type: application/json’ -X POST http://172.17.0.1:5984/db -d ‘{“value”: “Hello I am Shanthi Kumar V, Testing my couchdb instance in a docker container”}’
{“ok”:true,”id”:”4c3e6b9ece5a89445768618cad000ebc”,”rev”:”1-3514063c0977a3ab2a955a8498db6460″}
vskumar@ubuntu:~/data-volume1$
==================================>
Please note
“id”:”4c3e6b9ece5a89445768618cad000ebc” is the document id in couchdb.
Now let us check in the db as below:
I am using the document id:4c3e6b9ece5a89445768618cad000ebc

sudo curl http://172.17.0.1:5984/db/4c3e6b9ece5a89445768618cad000ebc

You can see the db output:
============= couch db ouput =====>
vskumar@ubuntu:~/data-volume1$
vskumar@ubuntu:~/data-volume1$ sudo curl http://172.17.0.1:5984/db/4c3e6b9ece5a89445768618cad000ebc
{“_id”:”4c3e6b9ece5a89445768618cad000ebc”,”_rev”:”1-3514063c0977a3ab2a955a8498db6460″,”value”:”Hello I am Shanthi Kumar V, Testing my couchdb instance in a docker container”}
vskumar@ubuntu:~/data-volume1$
===================================>

Step8:

Let us experiment it with one more new container:

===== Current containers =====>
vskumar@ubuntu:~/data-volume1$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a9e5e6e6abc3 mytest-couchdb “tini — /docker-ent…” 21 minutes ago Up 21 minutes 4369/tcp, 9100/tcp, 0.0.0.0:5984->5984/tcp compassionate_goldwasser
4af58b1eed0e couchdb “tini — /docker-ent…” About an hour ago Up About an hour 4369/tcp, 5984/tcp, 9100/tcp cocky_lamarr
ac849b4905d7 couchdb “tini — /docker-ent…” About an hour ago Up About an hour 4369/tcp, 5984/tcp, 9100/tcp mytest-couchdb
vskumar@ubuntu:~/data-volume1$
================================>
Now, let us try to kill the above containers one by one and check the status:

======= Kill all couchdb containers ====>
vskumar@ubuntu:~/data-volume1$ sudo docker kill a9e5e6e6abc3
a9e5e6e6abc3
vskumar@ubuntu:~/data-volume1$ sudo docker kill 4af58b1eed0e
4af58b1eed0e
vskumar@ubuntu:~/data-volume1$ sudo docker kill ac849b4905d7
ac849b4905d7
vskumar@ubuntu:~/data-volume1$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
vskumar@ubuntu:~/data-volume1$

============No active containers ===========>

sudo docker build -t vskumar-couchdb .

=========== Tagging to new container ======>
vskumar@ubuntu:~/data-volume1$ sudo docker build -t vskumar-couchdb .
Sending build context to Docker daemon 40.45kB
Step 1/2 : FROM couchdb
—> af415fd5efda
Step 2/2 : COPY local.ini /opt/couchdb/etc/
—> Using cache
—> b88156204d48
Successfully built b88156204d48
Successfully tagged vskumar-couchdb:latest
vskumar@ubuntu:~/data-volume1$
===========================>

sudo docker run -d -p 5984:5984 vskumar-couchdb

====== We can see the current active container as vskumar-couchdb =====>
vskumar@ubuntu:~/data-volume1$ sudo docker run -d -p 5984:5984 vskumar-couchdb
0f53e91f24950966ad03f2d9c0cefa97119e3a7321e947e53ed1f6a245e4e9a7
vskumar@ubuntu:~/data-volume1$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0f53e91f2495 vskumar-couchdb “tini — /docker-ent…” 11 seconds ago Up 8 seconds 4369/tcp, 9100/tcp, 0.0.0.0:5984->5984/tcp nervous_spence
vskumar@ubuntu:~/data-volume1$
========================>

Now we can insert a new document as below into this new container:
==================>
vskumar@ubuntu:~/data-volume1$
vskumar@ubuntu:~/data-volume1$ sudo curl -H ‘Content-Type: application/json’ -X POST http://172.17.0.1:5984/db -d ‘{“value”: “Hello I am Shanthi Kumar V, Testing my couchdb 2nd—>instance in a new docker container”}’
{“ok”:true,”id”:”c683de9d91bb7628c5428e521e00047a”,”rev”:”1-beade1bc7636c3b41126b9c867a47028″}
vskumar@ubuntu:~/data-volume1$
=================>
The document “id”:”c683de9d91bb7628c5428e521e00047a”.
Let us check in db:

sudo curl http://172.17.0.1:5984/db/c683de9d91bb7628c5428e521e00047a
============= Results ====>
vskumar@ubuntu:~/data-volume1$ sudo curl http://172.17.0.1:5984/db/c683de9d91bb7628c5428e521e00047a
{“_id”:”c683de9d91bb7628c5428e521e00047a”,”_rev”:”1-beade1bc7636c3b41126b9c867a47028″,”value”:”Hello I am Shanthi Kumar V, Testing my couchdb 2nd—>instance in a new docker container”}
vskumar@ubuntu:~/data-volume1$
===========================>
So, we found the inserted record.

At this point I want to stop this couchdb container exercise.

Vcard-Shanthi Kumar V-v3

How to setup Ubuntu 16.x Virtual machine [VM] for Vmware on Windows

ubuntu-16-04-lts-810x623.png

For most of the lab practices you need Linux virtual machine.
Ubuntu is one of the famous OS under Linux flavors.
I have created a VM of Ubuntu 16.04 LTS on VMware.
This has GUI also. So you can also use web browser, etc.
You can use the same for your lab practice.

For Ubuntu cloud Virtual machine download these 9 files into a separate directory.

https://drive.google.com/open?id=11uEf9rPbH1a0EE-dfUMOK8qNvJxmYLQ_

And copy them into another  safe  directory.

Once you complete the above  I will guide you further.
Please note you need to have atleast 60GB space to practice.

Once you have copied them into a separate folder, Use the below link to setup Vmware Player for Windows:

Once the VMware player is opened, you can open the Virtual Machine from the above folder.
It shows one VMDK file. Just click on it.
You will be logging as:
user id:VSK  and
its Pwd is : kumar123
Now you can see like your linux ubuntu machine. with GUI.
You can start playing with your linux commands and start browsing web also.
If you are done with the above test run, then we can start your real labs session with Linux OS.
For docker labs, start following the below link and its series:

Some useful docker Commands for handling images and containers

Docker-logo

With reference to the past lab sessions let us recap the below docker commands for reference.

Commands for images and containers handling:

1. How to list docker images:

$ sudo docker images

2. How to check the images status:

$ sudo docker ps -a

3. How to tag a docker image:

$ sudo docker tag <image id> < image name >

Ex: sudo docker tag 8de083612fef ubuntu-testbox1

4. How to list the container ids:

$ sudo docker pa -aq

5. How to remove all containers:

$ sudo docker containers prune

It removes all the containers on the current docker host machine

6. How to remove a docker image:

$sudo docker rmi image <image id>

Example:

sudo docker rmi image 6ad733544a63

7. How to run a dockerfile from the current directory:

$ sudo docker build -t ubuntu-vmbox .

Note: You need to make sure there is a dockerfile in the pwd.

8. How to run a container as interactive in a terminal mode:

$ sudo docker run -i -t ubuntu-vmbox /bin/bash

Note: Ubuntu-vmcbox is your image repository name.

9. How to see a history of a docker image:

$ sudo docker history hello-world

Note: hello-world is a docker image.

10. How to see the docker information:

$ sudo docker info

11. How to check the docker services status:

$ sudo service docker status

12. How to start a container :

$ sudo docker start  d10ad2bd62f7

13. How to stop a container :

$ sudo docker stop d10ad2bd62f7

14. How to attach  a container  into interactive terminal mode:
$ sudo docker attach d10ad2bd62f7

Note: The container comes into terminal interactive mode.

15. How to pause a container:
$ sudo docker pause 155f4b0764b1

16. How to unpause a container:
$ sudo docker unpause 155f4b0764b1

17. How to remove a single container:

$ sudo docker rm <container id>

Example: sudo docker rm 1dd55efde43f

Note: You can use prune command to remove all the containers as mentioned in the above questions.

 

12. DevOps: How to build docker images using dockerfile ? -1

 

Docker-logo

In continuation of my  previous session on :”11. DevOps: How to Launch a container as a daemon ?”, in this session I would like to demonstrate the exercises on:

“How to build docker images using dockerfile ?:”

These images are basic operating environments, such as ubuntu.
We found these while doing the other lab exercises.
The docker images can craft advanced application stacks for the enterprise and cloud IT environments.
Currently let us craft an image manually by launching a container from a base image.
A best practices is, we can build an automated approach of crafting the images using Dockerfile.
The dockerfile is a a text-based build script which contains special instructions in a sequence for building the correct and the relevant images from the base images.

Please note; we will explore all these combinations in different sessions.

Now, let us understand this automated approach from the below steps:
1. The sequential instructions inside Dockerfile can include selecting the base image as 1st statement.
2. And in the later statements; installing the required application, adding the configuration and the data files, and automatically running the services as well as exposing those services to the external world.

This way the dockerfile based automated build approach has simplified the image building process.

It also offers a great deal of flexibility in organizing the build instructions and in visualizing the complete build process, while running the script instructions.

The Docker Engine tightly integrates this build process with the help of the docker ‘build’ subcommand.

This process involes the below steps:
1. Let us imagine; in the client server scenario of Docker, the Docker server (or daemon) is responsible towards complete build process.
2. And the Docker command-line interface is responsible for transferring the build context, including transferring Dockerfile to the daemon.
Now, let us list our existing images as below, in continuation of previous exercise:
=============>
vskumar@ubuntu:~$
vskumar@ubuntu:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker-exercise/ubuntu-wgetinstall latest e34304119838 7 days ago 169MB
<none> <none> fc7e4564eb92 7 days ago 169MB
hello-world latest f2a91732366c 12 days ago 1.85kB
ubuntu 16.04 20c44cd7596f 2 weeks ago 123MB
ubuntu latest 20c44cd7596f 2 weeks ago 123MB
busybox latest 6ad733544a63 4 weeks ago 1.13MB
busybox 1.24 47bcc53f74dc 20 months ago 1.11MB
vskumar@ubuntu:~$
====================>
Now,  let us create a simple container from the ubuntu base image.
To create it, we can create ‘dockerfile’ without extension using vi in the current pwd.

Please note we do not have vim utility in this Ubuntu base image.
=================>
vskumar@ubuntu:~$ pwd
/home/vskumar
vskumar@ubuntu:~$ vi dockerfile
============>
Now, let us cat the dockerfile as below:
=============>
vskumar@ubuntu:~$ ls -l
total 48
drwxr-xr-x 3 vskumar vskumar 4096 Nov 24 23:32 Desktop
-rw-rw-r– 1 vskumar vskumar 86 Dec 3 04:29 dockerfile
drwxr-xr-x 2 vskumar vskumar 4096 Nov 22 21:23 Documents
drwxr-xr-x 2 vskumar vskumar 4096 Nov 25 06:33 Downloads
-rw-r–r– 1 vskumar vskumar 8980 Nov 22 21:03 examples.desktop
drwxr-xr-x 2 vskumar vskumar 4096 Nov 22 21:23 Music
drwxr-xr-x 2 vskumar vskumar 4096 Nov 25 06:02 Pictures
drwxr-xr-x 2 vskumar vskumar 4096 Nov 22 21:23 Public
drwxr-xr-x 2 vskumar vskumar 4096 Nov 22 21:23 Templates
drwxr-xr-x 2 vskumar vskumar 4096 Nov 22 21:23 Videos
vskumar@ubuntu:~$
vskumar@ubuntu:~$ cat dockerfile
FROM ubuntu
CMD [“echo”, “This is done by vskumar for a lab practice of dockerfile”]
vskumar@ubuntu:~$
================>
From the above dockerfile contents:
1st line FROM ubuntu – denotes it is using the buntu as the base image to create the container.
2nd line: CMD [“echo”, “This is done by vskumar for a lab practice of dockerfile”]
denotes using CMD echo command is executed to print the message “This is done by vskumar for a lab practice of dockerfile”.
Now let us run this file through the below command:
$ sudo docker build .
We can see the output as below:
===============>
vskumar@ubuntu:~$ sudo docker build .
Sending build context to Docker daemon 112MB
Step 1/2 : FROM ubuntu
—> 20c44cd7596f
Step 2/2 : CMD [“echo”, “This is done by vskumar for a lab practice of dockerfile”]
—> Running in 1de59a4799fa
Removing intermediate container 1de59a4799fa
—> 8de083612fef
Successfully built 8de083612fef
vskumar@ubuntu:~$
===================>
Now, let us list the images:
==================>
vskumar@ubuntu:~$
vskumar@ubuntu:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 8de083612fef About a minute ago 123MB
docker-exercise/ubuntu-wgetinstall latest e34304119838 7 days ago 169MB
<none> <none> fc7e4564eb92 7 days ago 169MB
hello-world latest f2a91732366c 12 days ago 1.85kB
ubuntu 16.04 20c44cd7596f 2 weeks ago 123MB
ubuntu latest 20c44cd7596f 2 weeks ago 123MB
busybox latest 6ad733544a63 4 weeks ago 1.13MB
busybox 1.24 47bcc53f74dc 20 months ago 1.11MB
vskumar@ubuntu:~$
==========================>
We can see Imgae id: 8de083612fef is created just now.
Look into that line there is no tag given.
Now let us tag it as below:
$ sudo docker tag 8de083612fef ubuntu-testbox1
================>
vskumar@ubuntu:~$
vskumar@ubuntu:~$ sudo docker tag 8de083612fef ubuntu-testbox1
vskumar@ubuntu:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu-testbox1 latest 8de083612fef 4 minutes ago 123MB
docker-exercise/ubuntu-wgetinstall latest e34304119838 7 days ago 169MB
<none> <none> fc7e4564eb92 7 days ago 169MB
hello-world latest f2a91732366c 12 days ago 1.85kB
ubuntu 16.04 20c44cd7596f 2 weeks ago 123MB
ubuntu latest 20c44cd7596f 2 weeks ago 123MB
busybox latest 6ad733544a63 4 weeks ago 1.13MB
busybox 1.24 47bcc53f74dc 20 months ago 1.11MB
vskumar@ubuntu:~$
====================>
Now, let us do some housekeeping on these containers.
Let us list the containers using ps -a command
====================>
vskumar@ubuntu:~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0fe495fc93ed ubuntu “/bin/bash -c ‘while…” 8 hours ago Exited (137) 4 hours ago hungry_engelbart
10ffea6140f9 ubuntu “bash” 7 days ago Exited (0) 7 days ago quizzical_lalande
b2a79f8d2fe6 ubuntu “/bin/bash -c ‘while…” 7 days ago Exited (255) 7 days ago goofy_borg
155f4b0764b1 ubuntu:16.04 “/bin/bash” 7 days ago Exited (0) 7 days ago zen_volhard
vskumar@ubuntu:~$
=====================>
I want to remove all of them. We can recreate with the dockerfile as an exercise.
$ Sudo docker containers prune
=======================================>
vskumar@ubuntu:~$ sudo docker ps -aq
0fe495fc93ed
10ffea6140f9
b2a79f8d2fe6
155f4b0764b1
vskumar@ubuntu:~$ sudo docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Deleted Containers:
0fe495fc93edee3aaadc7fc0fbf21997f0ca3cde4d7e563aa8c61352a43957dd
10ffea6140f9c93b37bad2f9d159ad53aa121c0de69a9d145f07cc12f9591324
b2a79f8d2fe65453fce19f00d7adf03ed6dcced69ae68fba94ad0c416545263e
155f4b0764b16f1c8776a101cced6ea95c55eeabe69aeab8520cbe925bedc456

Total reclaimed space: 186B
vskumar@ubuntu:~$ sudo docker ps -aq
vskumar@ubuntu:~$
============== so now there are no containers =========>
Let us build the container.
Before building let us check the available images:
==================>
vskumar@ubuntu:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu-testbox1 latest 8de083612fef 24 minutes ago 123MB
docker-exercise/ubuntu-wgetinstall latest e34304119838 7 days ago 169MB
<none> <none> fc7e4564eb92 7 days ago 169MB
hello-world latest f2a91732366c 12 days ago 1.85kB
ubuntu 16.04 20c44cd7596f 2 weeks ago 123MB
ubuntu latest 20c44cd7596f 2 weeks ago 123MB
busybox latest 6ad733544a63 4 weeks ago 1.13MB
busybox 1.24 47bcc53f74dc 20 months ago 1.11MB
vskumar@ubuntu:~$
====================>
Let us remove some more images also.
We need to use the below commands:
=========== Let us try one image removal =========>
vskumar@ubuntu:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu-testbox1 latest 8de083612fef 33 minutes ago 123MB
docker-exercise/ubuntu-wgetinstall latest e34304119838 7 days ago 169MB
<none> <none> fc7e4564eb92 7 days ago 169MB
hello-world latest f2a91732366c 12 days ago 1.85kB
ubuntu 16.04 20c44cd7596f 2 weeks ago 123MB
ubuntu latest 20c44cd7596f 2 weeks ago 123MB
busybox latest 6ad733544a63 4 weeks ago 1.13MB
busybox 1.24 47bcc53f74dc 20 months ago 1.11MB
vskumar@ubuntu:~$ sudo docker rmi image 47bcc53f74dc
Untagged: busybox:1.24
Untagged: busybox@sha256:8ea3273d79b47a8b6d018be398c17590a4b5ec604515f416c5b797db9dde3ad8
Deleted: sha256:47bcc53f74dc94b1920f0b34f6036096526296767650f223433fe65c35f149eb
Deleted: sha256:f6075681a244e9df4ab126bce921292673c9f37f71b20f6be1dd3bb99b4fdd72
Deleted: sha256:1834950e52ce4d5a88a1bbd131c537f4d0e56d10ff0dd69e66be3b7dfa9df7e6
Error: No such image: image
vskumar@ubuntu:~$
=================================>
So, by using :
sudo docker rmi image [image id], we can remove the image.

Now, further continuation of our dockerfile exercise;
We can create a container from ubuntu base image and install vim package on it with the help of dockerfile.
To do this we need to have following dockerfile script.
——————>
FROM ubuntu
RUN apt-get update
RUN apt-get -y install vim
CMD [“echo”, “This is done by vskumar for a lab demo on dockerfile”]
—————–>
Before doing it, let me do some housekeeping.
I have removed the below image:
==================>
vskumar@ubuntu:~$
vskumar@ubuntu:~$ sudo docker rmi image 6ad733544a63
Untagged: busybox:latest
Untagged: busybox@sha256:bbc3a03235220b170ba48a157dd097dd1379299370e1ed99ce976df0355d24f0
Deleted: sha256:6ad733544a6317992a6fac4eb19fe1df577d4dec7529efec28a5bd0edad0fd30
Deleted: sha256:0271b8eebde3fa9a6126b1f2335e170f902731ab4942f9f1914e77016540c7bb
Error: No such image: image
=====================>
See the current status:
===================>
vskumar@ubuntu:~$ ls
Desktop dockerfile Documents Downloads examples.desktop Music Pictures Public Templates Videos
vskumar@ubuntu:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu-testbox1 latest 8de083612fef About an hour ago 123MB
docker-exercise/ubuntu-wgetinstall latest e34304119838 7 days ago 169MB
<none> <none> fc7e4564eb92 7 days ago 169MB
hello-world latest f2a91732366c 12 days ago 1.85kB
ubuntu 16.04 20c44cd7596f 2 weeks ago 123MB
vskumar@ubuntu:~$
======================>
Now let me update the dockerfile through vi and cat that file:
====================>
vskumar@ubuntu:~$
vskumar@ubuntu:~$ pwd
/home/vskumar
vskumar@ubuntu:~$ vi dockerfile
vskumar@ubuntu:~$ cat dockerfile
FROM ubuntu
RUN apt-get update
RUN apt-get -y install vim
CMD [“echo”, “This is done by vskumar for a lab practice of dockerfile”]
vskumar@ubuntu:~$
====================>
Now let me run the below command:
$ sudo docker build -t ubuntu-vmbox .
This time; I have added the tag name as ‘ ubuntu-vmbox’.
We need to understand; there are below tasks it involves:
1. Updating the ubuntu libraries – it takes some time by displaying lot of output.
2. Installing vim utility. — This also takes some time.
3. Displaying the message.
We can see this large size output:
=========== Update the packages and install the vim in a conatiner ==========>
vskumar@ubuntu:~$ pwd
/home/vskumar
vskumar@ubuntu:~$ sudo docker build -t ubuntu-vmbox .
Sending build context to Docker daemon 112MB
Step 1/4 : FROM ubuntu
latest: Pulling from library/ubuntu
Digest: sha256:7c67a2206d3c04703e5c23518707bdd4916c057562dd51c74b99b2ba26af0f79
Status: Downloaded newer image for ubuntu:latest
—> 20c44cd7596f
Step 2/4 : RUN apt-get update
—> Running in df81eaef9437
Get:1 http://archive.ubuntu.com/ubuntu xenial InRelease [247 kB]
Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]
Get:3 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB]
Get:4 http://archive.ubuntu.com/ubuntu xenial-backports InRelease [102 kB]
Get:5 http://archive.ubuntu.com/ubuntu xenial/universe Sources [9802 kB]
Get:6 http://security.ubuntu.com/ubuntu xenial-security/universe Sources [53.1 kB]
Get:7 http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages [1558 kB]
Get:8 http://archive.ubuntu.com/ubuntu xenial/restricted amd64 Packages [14.1 kB]
Get:9 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages [9827 kB]
Get:10 http://archive.ubuntu.com/ubuntu xenial/multiverse amd64 Packages [176 kB]
Get:11 http://archive.ubuntu.com/ubuntu xenial-updates/universe Sources [231 kB]
Get:12 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [866 kB]
Get:13 http://archive.ubuntu.com/ubuntu xenial-updates/restricted amd64 Packages [13.7 kB]
Get:14 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [719 kB]
Get:15 http://archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 Packages [18.5 kB]
Get:16 http://archive.ubuntu.com/ubuntu xenial-backports/main amd64 Packages [5174 B]
Get:17 http://archive.ubuntu.com/ubuntu xenial-backports/universe amd64 Packages [7150 B]
Get:18 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages [505 kB]
Get:19 http://security.ubuntu.com/ubuntu xenial-security/restricted amd64 Packages [12.9 kB]
Get:20 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages [229 kB]
Get:21 http://security.ubuntu.com/ubuntu xenial-security/multiverse amd64 Packages [3479 B]
Fetched 24.6 MB in 2min 5s (196 kB/s)
Reading package lists…
Removing intermediate container df81eaef9437
—> 13cd766374bc
Step 3/4 : RUN apt-get -y install vim
—> Running in d37783a8cb7d
Reading package lists…
Building dependency tree…
Reading state information…
The following additional packages will be installed:
file libexpat1 libgpm2 libmagic1 libmpdec2 libpython3.5 libpython3.5-minimal
libpython3.5-stdlib libsqlite3-0 libssl1.0.0 mime-support vim-common
vim-runtime
Suggested packages:
gpm ctags vim-doc vim-scripts vim-gnome-py2 | vim-gtk-py2 | vim-gtk3-py2
| vim-athena-py2 | vim-nox-py2
The following NEW packages will be installed:
file libexpat1 libgpm2 libmagic1 libmpdec2 libpython3.5 libpython3.5-minimal
libpython3.5-stdlib libsqlite3-0 libssl1.0.0 mime-support vim vim-common
vim-runtime
0 upgraded, 14 newly installed, 0 to remove and 2 not upgraded.
Need to get 12.2 MB of archives.
After this operation, 58.3 MB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu xenial/main amd64 libgpm2 amd64 1.20.4-6.1 [16.5 kB]
Get:2 http://archive.ubuntu.com/ubuntu xenial/main amd64 libmagic1 amd64 1:5.25-2ubuntu1 [216 kB]
Get:3 http://archive.ubuntu.com/ubuntu xenial/main amd64 file amd64 1:5.25-2ubuntu1 [21.2 kB]
Get:4 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libexpat1 amd64 2.1.0-7ubuntu0.16.04.3 [71.2 kB]
Get:5 http://archive.ubuntu.com/ubuntu xenial/main amd64 libmpdec2 amd64 2.4.2-1 [82.6 kB]
Get:6 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libssl1.0.0 amd64 1.0.2g-1ubuntu4.9 [1085 kB]
Get:7 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython3.5-minimal amd64 3.5.2-2ubuntu0~16.04.4 [523 kB]
Get:8 http://archive.ubuntu.com/ubuntu xenial/main amd64 mime-support all 3.59ubuntu1 [31.0 kB]
Get:9 http://archive.ubuntu.com/ubuntu xenial/main amd64 libsqlite3-0 amd64 3.11.0-1ubuntu1 [396 kB]
Get:10 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython3.5-stdlib amd64 3.5.2-2ubuntu0~16.04.4 [2132 kB]
Get:11 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 vim-common amd64 2:7.4.1689-3ubuntu1.2 [103 kB]
Get:12 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython3.5 amd64 3.5.2-2ubuntu0~16.04.4 [1360 kB]
Get:13 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 vim-runtime all 2:7.4.1689-3ubuntu1.2 [5164 kB]
Get:14 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 vim amd64 2:7.4.1689-3ubuntu1.2 [1036 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 12.2 MB in 12s (949 kB/s)
Selecting previously unselected package libgpm2:amd64.
(Reading database … 4768 files and directories currently installed.)
Preparing to unpack …/libgpm2_1.20.4-6.1_amd64.deb …
Unpacking libgpm2:amd64 (1.20.4-6.1) …
Selecting previously unselected package libmagic1:amd64.
Preparing to unpack …/libmagic1_1%3a5.25-2ubuntu1_amd64.deb …
Unpacking libmagic1:amd64 (1:5.25-2ubuntu1) …
Selecting previously unselected package file.
Preparing to unpack …/file_1%3a5.25-2ubuntu1_amd64.deb …
Unpacking file (1:5.25-2ubuntu1) …
Selecting previously unselected package libexpat1:amd64.
Preparing to unpack …/libexpat1_2.1.0-7ubuntu0.16.04.3_amd64.deb …
Unpacking libexpat1:amd64 (2.1.0-7ubuntu0.16.04.3) …
Selecting previously unselected package libmpdec2:amd64.
Preparing to unpack …/libmpdec2_2.4.2-1_amd64.deb …
Unpacking libmpdec2:amd64 (2.4.2-1) …
Selecting previously unselected package libssl1.0.0:amd64.
Preparing to unpack …/libssl1.0.0_1.0.2g-1ubuntu4.9_amd64.deb …
Unpacking libssl1.0.0:amd64 (1.0.2g-1ubuntu4.9) …
Selecting previously unselected package libpython3.5-minimal:amd64.
Preparing to unpack …/libpython3.5-minimal_3.5.2-2ubuntu0~16.04.4_amd64.deb …
Unpacking libpython3.5-minimal:amd64 (3.5.2-2ubuntu0~16.04.4) …
Selecting previously unselected package mime-support.
Preparing to unpack …/mime-support_3.59ubuntu1_all.deb …
Unpacking mime-support (3.59ubuntu1) …
Selecting previously unselected package libsqlite3-0:amd64.
Preparing to unpack …/libsqlite3-0_3.11.0-1ubuntu1_amd64.deb …
Unpacking libsqlite3-0:amd64 (3.11.0-1ubuntu1) …
Selecting previously unselected package libpython3.5-stdlib:amd64.
Preparing to unpack …/libpython3.5-stdlib_3.5.2-2ubuntu0~16.04.4_amd64.deb …
Unpacking libpython3.5-stdlib:amd64 (3.5.2-2ubuntu0~16.04.4) …
Selecting previously unselected package vim-common.
Preparing to unpack …/vim-common_2%3a7.4.1689-3ubuntu1.2_amd64.deb …
Unpacking vim-common (2:7.4.1689-3ubuntu1.2) …
Selecting previously unselected package libpython3.5:amd64.
Preparing to unpack …/libpython3.5_3.5.2-2ubuntu0~16.04.4_amd64.deb …
Unpacking libpython3.5:amd64 (3.5.2-2ubuntu0~16.04.4) …
Selecting previously unselected package vim-runtime.
Preparing to unpack …/vim-runtime_2%3a7.4.1689-3ubuntu1.2_all.deb …
Adding ‘diversion of /usr/share/vim/vim74/doc/help.txt to /usr/share/vim/vim74/doc/help.txt.vim-tiny by vim-runtime’
Adding ‘diversion of /usr/share/vim/vim74/doc/tags to /usr/share/vim/vim74/doc/tags.vim-tiny by vim-runtime’
Unpacking vim-runtime (2:7.4.1689-3ubuntu1.2) …
Selecting previously unselected package vim.
Preparing to unpack …/vim_2%3a7.4.1689-3ubuntu1.2_amd64.deb …
Unpacking vim (2:7.4.1689-3ubuntu1.2) …
Processing triggers for libc-bin (2.23-0ubuntu9) …
Setting up libgpm2:amd64 (1.20.4-6.1) …
Setting up libmagic1:amd64 (1:5.25-2ubuntu1) …
Setting up file (1:5.25-2ubuntu1) …
Setting up libexpat1:amd64 (2.1.0-7ubuntu0.16.04.3) …
Setting up libmpdec2:amd64 (2.4.2-1) …
Setting up libssl1.0.0:amd64 (1.0.2g-1ubuntu4.9) …
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (Can’t locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.22.1 /usr/local/share/perl/5.22.1 /usr/lib/x86_64-linux-gnu/perl5/5.22 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22 /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base .) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 7.)
debconf: falling back to frontend: Teletype
Setting up libpython3.5-minimal:amd64 (3.5.2-2ubuntu0~16.04.4) …
Setting up mime-support (3.59ubuntu1) …
Setting up libsqlite3-0:amd64 (3.11.0-1ubuntu1) …
Setting up libpython3.5-stdlib:amd64 (3.5.2-2ubuntu0~16.04.4) …
Setting up vim-common (2:7.4.1689-3ubuntu1.2) …
Setting up libpython3.5:amd64 (3.5.2-2ubuntu0~16.04.4) …
Setting up vim-runtime (2:7.4.1689-3ubuntu1.2) …
Setting up vim (2:7.4.1689-3ubuntu1.2) …
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vim (vim) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vimdiff (vimdiff) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rvim (rvim) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rview (rview) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vi (vi) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/view (view) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/ex (ex) in auto mode
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in auto mode
Processing triggers for libc-bin (2.23-0ubuntu9) …
Removing intermediate container d37783a8cb7d
—> c07c6f2d2c65
Step 4/4 : CMD [“echo”, “This is done by vskumar for a lab practice of dockerfile”]
—> Running in f7e85f87b578
Removing intermediate container f7e85f87b578
—> f6675f4738b7
Successfully built f6675f4738b7
Successfully tagged ubuntu-vmbox:latest
vskumar@ubuntu:~$
=== Finally you can see the ‘ubuntu-vmbox’ tagged conatiner ======>
We can see the latest image from the below images:
===== Current images list =====>
vskumar@ubuntu:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu-vmbox latest f6675f4738b7 3 minutes ago 220MB
ubuntu-testbox1 latest 8de083612fef About an hour ago 123MB
docker-exercise/ubuntu-wgetinstall latest e34304119838 7 days ago 169MB
<none> <none> fc7e4564eb92 7 days ago 169MB
hello-world latest f2a91732366c 12 days ago 1.85kB
ubuntu 16.04 20c44cd7596f 2 weeks ago 123MB
ubuntu latest 20c44cd7596f 2 weeks ago 123MB
vskumar@ubuntu:~$
=======================>
Now, I want to work with this newly created container. Please recollect my blog “https://vskumar.blog/2017/11/29/6-devops-how-to-work-with-interactive-docker-containers/”.
As we did practice in it; we can use the below command to work with this new container:

sudo docker run -i -t ubuntu-vmbox /bin/bash
I want to test the vim is working on it. See the below output:
==================>
vskumar@ubuntu:~$ sudo docker run -i -t ubuntu-vmbox /bin/bash

root@1169bb1285cf:/#
root@1169bb1285cf:/# pwd
/
root@1169bb1285cf:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@1169bb1285cf:/# vim test1
===== I have created the file with vim successfully ====>
Now let me use cat command and see its output:

================>
root@1169bb1285cf:/#
root@1169bb1285cf:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys test1 tmp usr var
root@1169bb1285cf:/# cat test1
testing this vim box……
root@1169bb1285cf:/#
=================>

So, in this exercise we have updated the ubuntu libraries and installed vim utility.
And tested the container for vim usage by using interactive mode.

=========== Now let me exit and check the list of images =====>
root@1169bb1285cf:/#
root@1169bb1285cf:/# exit
exit
vskumar@ubuntu:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu-vmbox latest f6675f4738b7 13 minutes ago 220MB
ubuntu-testbox1 latest 8de083612fef About an hour ago 123MB
docker-exercise/ubuntu-wgetinstall latest e34304119838 7 days ago 169MB
<none> <none> fc7e4564eb92 7 days ago 169MB
hello-world latest f2a91732366c 12 days ago 1.85kB
ubuntu 16.04 20c44cd7596f 2 weeks ago 123MB
ubuntu latest 20c44cd7596f 2 weeks ago 123MB
vskumar@ubuntu:~$
=============================>
So, the new container ‘ubuntu-vmbox’ is existing.

Now, I want to remove some images:
sudo docker rmi 20c44cd7596f
================>
vskumar@ubuntu:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu-vmbox latest f6675f4738b7 18 minutes ago 220MB
ubuntu-testbox1 latest 8de083612fef About an hour ago 123MB
docker-exercise/ubuntu-wgetinstall latest e34304119838 7 days ago 169MB
<none> <none> fc7e4564eb92 7 days ago 169MB
hello-world latest f2a91732366c 12 days ago 1.85kB
ubuntu 16.04 20c44cd7596f 2 weeks ago 123MB
ubuntu latest 20c44cd7596f 2 weeks ago 123MB
vskumar@ubuntu:~$ sudo docker rmi 20c44cd7596f
Error response from daemon: conflict: unable to delete 20c44cd7596f (cannot be forced) – image has dependent child images
vskumar@ubuntu:~$
== Please note the last image was the base to build the top tow containers ===>
Hence it has the child and parent relationship.
First we need to remove the child images and later the parent need to be removed.
=== You can see the removal of child one and one more image=====>
vskumar@ubuntu:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu-vmbox latest f6675f4738b7 20 minutes ago 220MB
ubuntu-testbox1 latest 8de083612fef 2 hours ago 123MB
docker-exercise/ubuntu-wgetinstall latest e34304119838 7 days ago 169MB
<none> <none> fc7e4564eb92 7 days ago 169MB
hello-world latest f2a91732366c 12 days ago 1.85kB
ubuntu 16.04 20c44cd7596f 2 weeks ago 123MB
ubuntu latest 20c44cd7596f 2 weeks ago 123MB
vskumar@ubuntu:~$ sudo docker rmi 8de083612fef
Untagged: ubuntu-testbox1:latest
Deleted: sha256:8de083612fefbf9723913748f7db4aba4154b17adc500d011f44df356736f06c
vskumar@ubuntu:~$ sudo docker rmi e34304119838
Untagged: docker-exercise/ubuntu-wgetinstall:latest
Deleted: sha256:e34304119838d79da60e12776529106c350b1972cd517648e8ab90311fad7b1a
vskumar@ubuntu:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu-vmbox latest f6675f4738b7 21 minutes ago 220MB
<none> <none> fc7e4564eb92 7 days ago 169MB
hello-world latest f2a91732366c 12 days ago 1.85kB
ubuntu 16.04 20c44cd7596f 2 weeks ago 123MB
ubuntu latest 20c44cd7596f 2 weeks ago 123MB
vskumar@ubuntu:~$
=================>
Let me do some more exercises on housekeeping.
I would like to present some more dependency issues for the above images. You can clearly see the output:
========= Dependencies =======>
vskumar@ubuntu:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu-vmbox latest f6675f4738b7 22 minutes ago 220MB
<none> <none> fc7e4564eb92 7 days ago 169MB
hello-world latest f2a91732366c 12 days ago 1.85kB
ubuntu 16.04 20c44cd7596f 2 weeks ago 123MB
ubuntu latest 20c44cd7596f 2 weeks ago 123MB
vskumar@ubuntu:~$ sudo docker rmi fc7e4564eb92
Deleted: sha256:fc7e4564eb928ccfe068c789f0d650967e8d5dc42d4e8d92409aab6614364075
Deleted: sha256:b16d78406b12e6dbc174f4e71bedb7b9edc0593cad10458ddf042738694c06db
vskumar@ubuntu:~$ sudo docker rmi 20c44cd7596f
Error response from daemon: conflict: unable to delete 20c44cd7596f (cannot be forced) – image has dependent child images
vskumar@ubuntu:~$ sudo docker rmi f6675f4738b7
Error response from daemon: conflict: unable to delete f6675f4738b7 (must be forced) – image is being used by stopped container 1169bb1285cf
vskumar@ubuntu:~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1169bb1285cf ubuntu-vmbox “/bin/bash” 15 minutes ago Exited (0) 11 minutes ago heuristic_mayer
vskumar@ubuntu:~$
====================>
It means the container “1169bb1285cf ubuntu-vmbox” is the child to image id:f6675f4738b7.
===========>
vskumar@ubuntu:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu-vmbox latest f6675f4738b7 27 minutes ago 220MB
hello-world latest f2a91732366c 12 days ago 1.85kB
ubuntu 16.04 20c44cd7596f 2 weeks ago 123MB
ubuntu latest 20c44cd7596f 2 weeks ago 123MB
vskumar@ubuntu:~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1169bb1285cf ubuntu-vmbox “/bin/bash” 19 minutes ago Exited (0) 14 minutes ago heuristic_mayer
vskumar@ubuntu:~$
==============>
So if I want to remove Image id: f6675f4738b7, I need to remove the container id:1169bb1285cf , and later I need to remove this image.
$ sudo docker rm container 1169bb1285cf
And later image removal command need to be used as below.
======================>
vskumar@ubuntu:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu-vmbox latest f6675f4738b7 31 minutes ago 220MB
hello-world latest f2a91732366c 12 days ago 1.85kB
ubuntu 16.04 20c44cd7596f 2 weeks ago 123MB
ubuntu latest 20c44cd7596f 2 weeks ago 123MB
vskumar@ubuntu:~$ sudo docker rmi f6675f4738b7
Untagged: ubuntu-vmbox:latest
Deleted: sha256:f6675f4738b721780721f345906a0c78c13a67ee8239a16f071504b217f41658
Deleted: sha256:c07c6f2d2c651dd406977d42d5504c941d7f975a84c8547abaf3869b50942820
Deleted: sha256:4855cfb7ae6f84279bbbfe87e7691377531a541785c613014f64909e6e0f4528
Deleted: sha256:13cd766374bcb31cc0e8cac971e82754bb8e1bc66780abaff264f847e00a94b2
Deleted: sha256:dc6fab8a33a18a8c840e19612253657c4610ab865a26de5a31260f71bcef5f76
vskumar@ubuntu:~$
========================>
So we have the below images only now:
==== Current images ======>
vskumar@ubuntu:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest f2a91732366c 12 days ago 1.85kB
ubuntu 16.04 20c44cd7596f 2 weeks ago 123MB
ubuntu latest 20c44cd7596f 2 weeks ago 123MB
vskumar@ubuntu:~$
==========================>
We can try to remove the above images:
========= See it is declined due to it is base image ===========>
vskumar@ubuntu:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest f2a91732366c 12 days ago 1.85kB
ubuntu 16.04 20c44cd7596f 2 weeks ago 123MB
ubuntu latest 20c44cd7596f 2 weeks ago 123MB
vskumar@ubuntu:~$ sudo docker rmi 20c44cd7596f
Error response from daemon: conflict: unable to delete 20c44cd7596f (must be forced) – image is referenced in multiple repositories
vskumar@ubuntu:~$
=========================>
Both ubuntu images are interlinked and they can not be removed as the base docker engine is working on top of their OS.

We will stop this session at this time.

We will continue some more sessions on “dockerfile”.

 

Vcard-Shanthi Kumar V-v3

13. DevOps: Working with dockerfile to build apache2 container

Docker-logo

In continuation of my previous session on :”12. DevOps: How to build docker images using dockerfile ? ”, in this session I would like to demonstrate the exercises on:

Working with dockerfile to build apache2 container:

In this exercise, I would like to build a container with apache2 web server setup.

Finally, at the end of this exercise; you will see Apache2 web page running from firefox browser in a docker container.

Note: If you want to recollect the docker commands to be used during your current lab practice, visit my blog link:

https://vskumarblogs.wordpress.com/2017/12/13/some-useful-docker-commands-for-handling-images-and-containers/
Now, I want to create a separate directory as below:

====================>

vskumar@ubuntu:~$ pwd

/home/vskumar

vskumar@ubuntu:~$

vskumar@ubuntu:~$ mkdir apache1

vskumar@ubuntu:~$ cd apache1

vskumar@ubuntu:~/apache1$ pwd

/home/vskumar/apache1

vskumar@ubuntu:~/apache1$

====================>

To install apache2 on ubuntu16.04, let us analyze the steps as below:

Step 1: Install Apache

To install appache2 on unbuntu we can use the following commands:

sudo apt-get update sudo apt-get install apache2

We need to include the above commands in dockerfile.

Let me use the overall commands in the dockerfile as below:

======== You can see the current dockerfile, which will be used ====>

vskumar@ubuntu:~/apache1$ pwd

/home/vskumar/apache1

vskumar@ubuntu:~/apache1$ ls

dockerfile

vskumar@ubuntu:~/apache1$ cat dockerfile

FROM ubuntu:16.04

MAINTAINER “Vskumar” <vskumar35@gmail.com>

RUN apt-get update && apt-get clean

RUN apt-get -y install apache2 && apt-get clean

RUN echo “Apache running!!” >> /var/www/html/index.html

# We have used the base image of ubuntu 16.04

# update all

# cleaned all

# We have installed Apache

# We have echoed a message as Apache is running

# into index.html file

EXPOSE 80

# WE have allocated the port # 80 to apache2

vskumar@ubuntu:~/apache1$

====The above lines are from  dockerfile to install apache2 in Ubuntu container ====>

So, the above dockerfile purpose is;

  1. It builds the container of ubuntu 16.04 with the maintainer name “vskumar”.
  2. It updates the current libs/packages.
  3. It installs the apache2.
  4. It sends a message
  5. It allocates port # 80, with EXPOSE command.

Now, let us run this build as below and review the output:

=============== Installing apache2 on ubuntu container with dockerfile =====>

vskumar@ubuntu:~/apache1$ sudo docker build -t ubuntu16.04/apache2 .

Sending build context to Docker daemon 2.048kB

Step 1/6 : FROM ubuntu:16.04

—> 20c44cd7596f

Step 2/6 : MAINTAINER “Vskumar” <vskumar35@gmail.com>

—> Running in e7c786e9d724

Removing intermediate container e7c786e9d724

—> de795f3ddd1f

Step 3/6 : RUN apt-get update && apt-get clean

—> Running in 712d867e5412

Get:1 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]

Get:2 http://archive.ubuntu.com/ubuntu xenial InRelease [247 kB]

Get:3 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB]

Get:4 http://archive.ubuntu.com/ubuntu xenial-backports InRelease [102 kB]

Get:5 http://archive.ubuntu.com/ubuntu xenial/universe Sources [9802 kB]

Get:6 http://security.ubuntu.com/ubuntu xenial-security/universe Sources [53.1 kB]

Get:7 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages [505 kB]

Get:8 http://security.ubuntu.com/ubuntu xenial-security/restricted amd64 Packages [12.9 kB]

Get:9 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages [229 kB]

Get:10 http://security.ubuntu.com/ubuntu xenial-security/multiverse amd64 Packages [3479 B]

Get:11 http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages [1558 kB]

Get:12 http://archive.ubuntu.com/ubuntu xenial/restricted amd64 Packages [14.1 kB]

Get:13 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages [9827 kB]

Get:14 http://archive.ubuntu.com/ubuntu xenial/multiverse amd64 Packages [176 kB]

Get:15 http://archive.ubuntu.com/ubuntu xenial-updates/universe Sources [231 kB]

Get:16 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [866 kB]

Get:17 http://archive.ubuntu.com/ubuntu xenial-updates/restricted amd64 Packages [13.7 kB]

Get:18 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [719 kB]

Get:19 http://archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 Packages [18.5 kB]

Get:20 http://archive.ubuntu.com/ubuntu xenial-backports/main amd64 Packages [5174 B]

Get:21 http://archive.ubuntu.com/ubuntu xenial-backports/universe amd64 Packages [7150 B]

Fetched 24.6 MB in 29s (825 kB/s)

Reading package lists…

Removing intermediate container 712d867e5412

—> 1780fbb9121e

Step 4/6 : RUN apt-get -y install apache2 && apt-get clean

—> Running in d9e9198a3e05

Reading package lists…

Building dependency tree…

Reading state information…

The following additional packages will be installed:

apache2-bin apache2-data apache2-utils file ifupdown iproute2

isc-dhcp-client isc-dhcp-common libapr1 libaprutil1 libaprutil1-dbd-sqlite3

libaprutil1-ldap libasn1-8-heimdal libatm1 libdns-export162 libexpat1

libffi6 libgdbm3 libgmp10 libgnutls30 libgssapi3-heimdal libhcrypto4-heimdal

libheimbase1-heimdal libheimntlm0-heimdal libhogweed4 libhx509-5-heimdal

libicu55 libidn11 libisc-export160 libkrb5-26-heimdal libldap-2.4-2

liblua5.1-0 libmagic1 libmnl0 libnettle6 libp11-kit0 libperl5.22

libroken18-heimdal libsasl2-2 libsasl2-modules libsasl2-modules-db

libsqlite3-0 libssl1.0.0 libtasn1-6 libwind0-heimdal libxml2 libxtables11

mime-support netbase openssl perl perl-modules-5.22 rename sgml-base

ssl-cert xml-core

Suggested packages:

www-browser apache2-doc apache2-suexec-pristine | apache2-suexec-custom ufw

ppp rdnssd iproute2-doc resolvconf avahi-autoipd isc-dhcp-client-ddns

apparmor gnutls-bin libsasl2-modules-otp libsasl2-modules-ldap

libsasl2-modules-sql libsasl2-modules-gssapi-mit

| libsasl2-modules-gssapi-heimdal ca-certificates perl-doc

libterm-readline-gnu-perl | libterm-readline-perl-perl make sgml-base-doc

openssl-blacklist debhelper

The following NEW packages will be installed:

apache2 apache2-bin apache2-data apache2-utils file ifupdown iproute2

isc-dhcp-client isc-dhcp-common libapr1 libaprutil1 libaprutil1-dbd-sqlite3

libaprutil1-ldap libasn1-8-heimdal libatm1 libdns-export162 libexpat1

libffi6 libgdbm3 libgmp10 libgnutls30 libgssapi3-heimdal libhcrypto4-heimdal

libheimbase1-heimdal libheimntlm0-heimdal libhogweed4 libhx509-5-heimdal

libicu55 libidn11 libisc-export160 libkrb5-26-heimdal libldap-2.4-2

liblua5.1-0 libmagic1 libmnl0 libnettle6 libp11-kit0 libperl5.22

libroken18-heimdal libsasl2-2 libsasl2-modules libsasl2-modules-db

libsqlite3-0 libssl1.0.0 libtasn1-6 libwind0-heimdal libxml2 libxtables11

mime-support netbase openssl perl perl-modules-5.22 rename sgml-base

ssl-cert xml-core

0 upgraded, 57 newly installed, 0 to remove and 2 not upgraded.

Need to get 22.7 MB of archives.

After this operation, 102 MB of additional disk space will be used.

Get:1 http://archive.ubuntu.com/ubuntu xenial/main amd64 libatm1 amd64 1:2.5.1-1.5 [24.2 kB]

Get:2 http://archive.ubuntu.com/ubuntu xenial/main amd64 libmnl0 amd64 1.0.3-5 [12.0 kB]

Get:3 http://archive.ubuntu.com/ubuntu xenial/main amd64 libgdbm3 amd64 1.8.3-13.1 [16.9 kB]

Get:4 http://archive.ubuntu.com/ubuntu xenial/main amd64 sgml-base all 1.26+nmu4ubuntu1 [12.5 kB]

Get:5 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 perl-modules-5.22 all 5.22.1-9ubuntu0.2 [2661 kB]

Get:6 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libperl5.22 amd64 5.22.1-9ubuntu0.2 [3391 kB]

Get:7 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 perl amd64 5.22.1-9ubuntu0.2 [237 kB]

Get:8 http://archive.ubuntu.com/ubuntu xenial/main amd64 mime-support all 3.59ubuntu1 [31.0 kB]

Get:9 http://archive.ubuntu.com/ubuntu xenial/main amd64 libapr1 amd64 1.5.2-3 [86.0 kB]

Get:10 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libexpat1 amd64 2.1.0-7ubuntu0.16.04.3 [71.2 kB]

Get:11 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libssl1.0.0 amd64 1.0.2g-1ubuntu4.9 [1085 kB]

Get:12 http://archive.ubuntu.com/ubuntu xenial/main amd64 libaprutil1 amd64 1.5.4-1build1 [77.1 kB]

Get:13 http://archive.ubuntu.com/ubuntu xenial/main amd64 libsqlite3-0 amd64 3.11.0-1ubuntu1 [396 kB]

Get:14 http://archive.ubuntu.com/ubuntu xenial/main amd64 libaprutil1-dbd-sqlite3 amd64 1.5.4-1build1 [10.6 kB]

Get:15 http://archive.ubuntu.com/ubuntu xenial/main amd64 libgmp10 amd64 2:6.1.0+dfsg-2 [240 kB]

Get:16 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libnettle6 amd64 3.2-1ubuntu0.16.04.1 [93.5 kB]

Get:17 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libhogweed4 amd64 3.2-1ubuntu0.16.04.1 [136 kB]

Get:18 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libidn11 amd64 1.32-3ubuntu1.2 [46.5 kB]

Get:19 http://archive.ubuntu.com/ubuntu xenial/main amd64 libffi6 amd64 3.2.1-4 [17.8 kB]

Get:20 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libp11-kit0 amd64 0.23.2-5~ubuntu16.04.1 [105 kB]

Get:21 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libtasn1-6 amd64 4.7-3ubuntu0.16.04.2 [43.3 kB]

Get:22 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libgnutls30 amd64 3.4.10-4ubuntu1.4 [548 kB]

Get:23 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libroken18-heimdal amd64 1.7~git20150920+dfsg-4ubuntu1.16.04.1 [41.4 kB]

Get:24 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libasn1-8-heimdal amd64 1.7~git20150920+dfsg-4ubuntu1.16.04.1 [174 kB]

Get:25 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libhcrypto4-heimdal amd64 1.7~git20150920+dfsg-4ubuntu1.16.04.1 [85.0 kB]

Get:26 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libheimbase1-heimdal amd64 1.7~git20150920+dfsg-4ubuntu1.16.04.1 [29.3 kB]

Get:27 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libwind0-heimdal amd64 1.7~git20150920+dfsg-4ubuntu1.16.04.1 [47.8 kB]

Get:28 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libhx509-5-heimdal amd64 1.7~git20150920+dfsg-4ubuntu1.16.04.1 [107 kB]

Get:29 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libkrb5-26-heimdal amd64 1.7~git20150920+dfsg-4ubuntu1.16.04.1 [202 kB]

Get:30 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libheimntlm0-heimdal amd64 1.7~git20150920+dfsg-4ubuntu1.16.04.1 [15.1 kB]

Get:31 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libgssapi3-heimdal amd64 1.7~git20150920+dfsg-4ubuntu1.16.04.1 [96.1 kB]

Get:32 http://archive.ubuntu.com/ubuntu xenial/main amd64 libsasl2-modules-db amd64 2.1.26.dfsg1-14build1 [14.5 kB]

Get:33 http://archive.ubuntu.com/ubuntu xenial/main amd64 libsasl2-2 amd64 2.1.26.dfsg1-14build1 [48.7 kB]

Get:34 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libldap-2.4-2 amd64 2.4.42+dfsg-2ubuntu3.2 [160 kB]

Get:35 http://archive.ubuntu.com/ubuntu xenial/main amd64 libaprutil1-ldap amd64 1.5.4-1build1 [8720 B]

Get:36 http://archive.ubuntu.com/ubuntu xenial/main amd64 liblua5.1-0 amd64 5.1.5-8ubuntu1 [102 kB]

Get:37 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libicu55 amd64 55.1-7ubuntu0.3 [7658 kB]

Get:38 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libxml2 amd64 2.9.3+dfsg1-1ubuntu0.3 [697 kB]

Get:39 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 apache2-bin amd64 2.4.18-2ubuntu3.5 [925 kB]

Get:40 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 apache2-utils amd64 2.4.18-2ubuntu3.5 [82.3 kB]

Get:41 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 apache2-data all 2.4.18-2ubuntu3.5 [162 kB]

Get:42 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 apache2 amd64 2.4.18-2ubuntu3.5 [86.7 kB]

Get:43 http://archive.ubuntu.com/ubuntu xenial/main amd64 libmagic1 amd64 1:5.25-2ubuntu1 [216 kB]

Get:44 http://archive.ubuntu.com/ubuntu xenial/main amd64 file amd64 1:5.25-2ubuntu1 [21.2 kB]

Get:45 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 iproute2 amd64 4.3.0-1ubuntu3.16.04.2 [522 kB]

Get:46 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ifupdown amd64 0.8.10ubuntu1.2 [54.9 kB]

Get:47 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libisc-export160 amd64 1:9.10.3.dfsg.P4-8ubuntu1.9 [153 kB]

Get:48 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libdns-export162 amd64 1:9.10.3.dfsg.P4-8ubuntu1.9 [666 kB]

Get:49 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 isc-dhcp-client amd64 4.3.3-5ubuntu12.7 [223 kB]

Get:50 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 isc-dhcp-common amd64 4.3.3-5ubuntu12.7 [105 kB]

Get:51 http://archive.ubuntu.com/ubuntu xenial/main amd64 libxtables11 amd64 1.6.0-2ubuntu3 [27.2 kB]

Get:52 http://archive.ubuntu.com/ubuntu xenial/main amd64 netbase all 5.3 [12.9 kB]

Get:53 http://archive.ubuntu.com/ubuntu xenial/main amd64 libsasl2-modules amd64 2.1.26.dfsg1-14build1 [47.5 kB]

Get:54 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssl amd64 1.0.2g-1ubuntu4.9 [492 kB]

Get:55 http://archive.ubuntu.com/ubuntu xenial/main amd64 xml-core all 0.13+nmu2 [23.3 kB]

Get:56 http://archive.ubuntu.com/ubuntu xenial/main amd64 rename all 0.20-4 [12.0 kB]

Get:57 http://archive.ubuntu.com/ubuntu xenial/main amd64 ssl-cert all 1.0.37 [16.9 kB]

debconf: delaying package configuration, since apt-utils is not installed

Fetched 22.7 MB in 1min 49s (206 kB/s)

Selecting previously unselected package libatm1:amd64.

(Reading database … 4768 files and directories currently installed.)

Preparing to unpack …/libatm1_1%3a2.5.1-1.5_amd64.deb …

Unpacking libatm1:amd64 (1:2.5.1-1.5) …

Selecting previously unselected package libmnl0:amd64.

Preparing to unpack …/libmnl0_1.0.3-5_amd64.deb …

Unpacking libmnl0:amd64 (1.0.3-5) …

Selecting previously unselected package libgdbm3:amd64.

Preparing to unpack …/libgdbm3_1.8.3-13.1_amd64.deb …

Unpacking libgdbm3:amd64 (1.8.3-13.1) …

Selecting previously unselected package sgml-base.

Preparing to unpack …/sgml-base_1.26+nmu4ubuntu1_all.deb …

Unpacking sgml-base (1.26+nmu4ubuntu1) …

Selecting previously unselected package perl-modules-5.22.

Preparing to unpack …/perl-modules-5.22_5.22.1-9ubuntu0.2_all.deb …

Unpacking perl-modules-5.22 (5.22.1-9ubuntu0.2) …

Selecting previously unselected package libperl5.22:amd64.

Preparing to unpack …/libperl5.22_5.22.1-9ubuntu0.2_amd64.deb …

Unpacking libperl5.22:amd64 (5.22.1-9ubuntu0.2) …

Selecting previously unselected package perl.

Preparing to unpack …/perl_5.22.1-9ubuntu0.2_amd64.deb …

Unpacking perl (5.22.1-9ubuntu0.2) …

Selecting previously unselected package mime-support.

Preparing to unpack …/mime-support_3.59ubuntu1_all.deb …

Unpacking mime-support (3.59ubuntu1) …

Selecting previously unselected package libapr1:amd64.

Preparing to unpack …/libapr1_1.5.2-3_amd64.deb …

Unpacking libapr1:amd64 (1.5.2-3) …

Selecting previously unselected package libexpat1:amd64.

Preparing to unpack …/libexpat1_2.1.0-7ubuntu0.16.04.3_amd64.deb …

Unpacking libexpat1:amd64 (2.1.0-7ubuntu0.16.04.3) …

Selecting previously unselected package libssl1.0.0:amd64.

Preparing to unpack …/libssl1.0.0_1.0.2g-1ubuntu4.9_amd64.deb …

Unpacking libssl1.0.0:amd64 (1.0.2g-1ubuntu4.9) …

Selecting previously unselected package libaprutil1:amd64.

Preparing to unpack …/libaprutil1_1.5.4-1build1_amd64.deb …

Unpacking libaprutil1:amd64 (1.5.4-1build1) …

Selecting previously unselected package libsqlite3-0:amd64.

Preparing to unpack …/libsqlite3-0_3.11.0-1ubuntu1_amd64.deb …

Unpacking libsqlite3-0:amd64 (3.11.0-1ubuntu1) …

Selecting previously unselected package libaprutil1-dbd-sqlite3:amd64.

Preparing to unpack …/libaprutil1-dbd-sqlite3_1.5.4-1build1_amd64.deb …

Unpacking libaprutil1-dbd-sqlite3:amd64 (1.5.4-1build1) …

Selecting previously unselected package libgmp10:amd64.

Preparing to unpack …/libgmp10_2%3a6.1.0+dfsg-2_amd64.deb …

Unpacking libgmp10:amd64 (2:6.1.0+dfsg-2) …

Selecting previously unselected package libnettle6:amd64.

Preparing to unpack …/libnettle6_3.2-1ubuntu0.16.04.1_amd64.deb …

Unpacking libnettle6:amd64 (3.2-1ubuntu0.16.04.1) …

Selecting previously unselected package libhogweed4:amd64.

Preparing to unpack …/libhogweed4_3.2-1ubuntu0.16.04.1_amd64.deb …

Unpacking libhogweed4:amd64 (3.2-1ubuntu0.16.04.1) …

Selecting previously unselected package libidn11:amd64.

Preparing to unpack …/libidn11_1.32-3ubuntu1.2_amd64.deb …

Unpacking libidn11:amd64 (1.32-3ubuntu1.2) …

Selecting previously unselected package libffi6:amd64.

Preparing to unpack …/libffi6_3.2.1-4_amd64.deb …

Unpacking libffi6:amd64 (3.2.1-4) …

Selecting previously unselected package libp11-kit0:amd64.

Preparing to unpack …/libp11-kit0_0.23.2-5~ubuntu16.04.1_amd64.deb …

Unpacking libp11-kit0:amd64 (0.23.2-5~ubuntu16.04.1) …

Selecting previously unselected package libtasn1-6:amd64.

Preparing to unpack …/libtasn1-6_4.7-3ubuntu0.16.04.2_amd64.deb …

Unpacking libtasn1-6:amd64 (4.7-3ubuntu0.16.04.2) …

Selecting previously unselected package libgnutls30:amd64.

Preparing to unpack …/libgnutls30_3.4.10-4ubuntu1.4_amd64.deb …

Unpacking libgnutls30:amd64 (3.4.10-4ubuntu1.4) …

Selecting previously unselected package libroken18-heimdal:amd64.

Preparing to unpack …/libroken18-heimdal_1.7~git20150920+dfsg-4ubuntu1.16.04.1_amd64.deb …

Unpacking libroken18-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) …

Selecting previously unselected package libasn1-8-heimdal:amd64.

Preparing to unpack …/libasn1-8-heimdal_1.7~git20150920+dfsg-4ubuntu1.16.04.1_amd64.deb …

Unpacking libasn1-8-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) …

Selecting previously unselected package libhcrypto4-heimdal:amd64.

Preparing to unpack …/libhcrypto4-heimdal_1.7~git20150920+dfsg-4ubuntu1.16.04.1_amd64.deb …

Unpacking libhcrypto4-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) …

Selecting previously unselected package libheimbase1-heimdal:amd64.

Preparing to unpack …/libheimbase1-heimdal_1.7~git20150920+dfsg-4ubuntu1.16.04.1_amd64.deb …

Unpacking libheimbase1-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) …

Selecting previously unselected package libwind0-heimdal:amd64.

Preparing to unpack …/libwind0-heimdal_1.7~git20150920+dfsg-4ubuntu1.16.04.1_amd64.deb …

Unpacking libwind0-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) …

Selecting previously unselected package libhx509-5-heimdal:amd64.

Preparing to unpack …/libhx509-5-heimdal_1.7~git20150920+dfsg-4ubuntu1.16.04.1_amd64.deb …

Unpacking libhx509-5-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) …

Selecting previously unselected package libkrb5-26-heimdal:amd64.

Preparing to unpack …/libkrb5-26-heimdal_1.7~git20150920+dfsg-4ubuntu1.16.04.1_amd64.deb …

Unpacking libkrb5-26-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) …

Selecting previously unselected package libheimntlm0-heimdal:amd64.

Preparing to unpack …/libheimntlm0-heimdal_1.7~git20150920+dfsg-4ubuntu1.16.04.1_amd64.deb …

Unpacking libheimntlm0-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) …

Selecting previously unselected package libgssapi3-heimdal:amd64.

Preparing to unpack …/libgssapi3-heimdal_1.7~git20150920+dfsg-4ubuntu1.16.04.1_amd64.deb …

Unpacking libgssapi3-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) …

Selecting previously unselected package libsasl2-modules-db:amd64.

Preparing to unpack …/libsasl2-modules-db_2.1.26.dfsg1-14build1_amd64.deb …

Unpacking libsasl2-modules-db:amd64 (2.1.26.dfsg1-14build1) …

Selecting previously unselected package libsasl2-2:amd64.

Preparing to unpack …/libsasl2-2_2.1.26.dfsg1-14build1_amd64.deb …

Unpacking libsasl2-2:amd64 (2.1.26.dfsg1-14build1) …

Selecting previously unselected package libldap-2.4-2:amd64.

Preparing to unpack …/libldap-2.4-2_2.4.42+dfsg-2ubuntu3.2_amd64.deb …

Unpacking libldap-2.4-2:amd64 (2.4.42+dfsg-2ubuntu3.2) …

Selecting previously unselected package libaprutil1-ldap:amd64.

Preparing to unpack …/libaprutil1-ldap_1.5.4-1build1_amd64.deb …

Unpacking libaprutil1-ldap:amd64 (1.5.4-1build1) …

Selecting previously unselected package liblua5.1-0:amd64.

Preparing to unpack …/liblua5.1-0_5.1.5-8ubuntu1_amd64.deb …

Unpacking liblua5.1-0:amd64 (5.1.5-8ubuntu1) …

Selecting previously unselected package libicu55:amd64.

Preparing to unpack …/libicu55_55.1-7ubuntu0.3_amd64.deb …

Unpacking libicu55:amd64 (55.1-7ubuntu0.3) …

Selecting previously unselected package libxml2:amd64.

Preparing to unpack …/libxml2_2.9.3+dfsg1-1ubuntu0.3_amd64.deb …

Unpacking libxml2:amd64 (2.9.3+dfsg1-1ubuntu0.3) …

Selecting previously unselected package apache2-bin.

Preparing to unpack …/apache2-bin_2.4.18-2ubuntu3.5_amd64.deb …

Unpacking apache2-bin (2.4.18-2ubuntu3.5) …

Selecting previously unselected package apache2-utils.

Preparing to unpack …/apache2-utils_2.4.18-2ubuntu3.5_amd64.deb …

Unpacking apache2-utils (2.4.18-2ubuntu3.5) …

Selecting previously unselected package apache2-data.

Preparing to unpack …/apache2-data_2.4.18-2ubuntu3.5_all.deb …

Unpacking apache2-data (2.4.18-2ubuntu3.5) …

Selecting previously unselected package apache2.

Preparing to unpack …/apache2_2.4.18-2ubuntu3.5_amd64.deb …

Unpacking apache2 (2.4.18-2ubuntu3.5) …

Selecting previously unselected package libmagic1:amd64.

Preparing to unpack …/libmagic1_1%3a5.25-2ubuntu1_amd64.deb …

Unpacking libmagic1:amd64 (1:5.25-2ubuntu1) …

Selecting previously unselected package file.

Preparing to unpack …/file_1%3a5.25-2ubuntu1_amd64.deb …

Unpacking file (1:5.25-2ubuntu1) …

Selecting previously unselected package iproute2.

Preparing to unpack …/iproute2_4.3.0-1ubuntu3.16.04.2_amd64.deb …

Unpacking iproute2 (4.3.0-1ubuntu3.16.04.2) …

Selecting previously unselected package ifupdown.

Preparing to unpack …/ifupdown_0.8.10ubuntu1.2_amd64.deb …

Unpacking ifupdown (0.8.10ubuntu1.2) …

Selecting previously unselected package libisc-export160.

Preparing to unpack …/libisc-export160_1%3a9.10.3.dfsg.P4-8ubuntu1.9_amd64.deb …

Unpacking libisc-export160 (1:9.10.3.dfsg.P4-8ubuntu1.9) …

Selecting previously unselected package libdns-export162.

Preparing to unpack …/libdns-export162_1%3a9.10.3.dfsg.P4-8ubuntu1.9_amd64.deb …

Unpacking libdns-export162 (1:9.10.3.dfsg.P4-8ubuntu1.9) …

Selecting previously unselected package isc-dhcp-client.

Preparing to unpack …/isc-dhcp-client_4.3.3-5ubuntu12.7_amd64.deb …

Unpacking isc-dhcp-client (4.3.3-5ubuntu12.7) …

Selecting previously unselected package isc-dhcp-common.

Preparing to unpack …/isc-dhcp-common_4.3.3-5ubuntu12.7_amd64.deb …

Unpacking isc-dhcp-common (4.3.3-5ubuntu12.7) …

Selecting previously unselected package libxtables11:amd64.

Preparing to unpack …/libxtables11_1.6.0-2ubuntu3_amd64.deb …

Unpacking libxtables11:amd64 (1.6.0-2ubuntu3) …

Selecting previously unselected package netbase.

Preparing to unpack …/archives/netbase_5.3_all.deb …

Unpacking netbase (5.3) …

Selecting previously unselected package libsasl2-modules:amd64.

Preparing to unpack …/libsasl2-modules_2.1.26.dfsg1-14build1_amd64.deb …

Unpacking libsasl2-modules:amd64 (2.1.26.dfsg1-14build1) …

Selecting previously unselected package openssl.

Preparing to unpack …/openssl_1.0.2g-1ubuntu4.9_amd64.deb …

Unpacking openssl (1.0.2g-1ubuntu4.9) …

Selecting previously unselected package xml-core.

Preparing to unpack …/xml-core_0.13+nmu2_all.deb …

Unpacking xml-core (0.13+nmu2) …

Selecting previously unselected package rename.

Preparing to unpack …/archives/rename_0.20-4_all.deb …

Unpacking rename (0.20-4) …

Selecting previously unselected package ssl-cert.

Preparing to unpack …/ssl-cert_1.0.37_all.deb …

Unpacking ssl-cert (1.0.37) …

Processing triggers for libc-bin (2.23-0ubuntu9) …

Processing triggers for systemd (229-4ubuntu21) …

Setting up libatm1:amd64 (1:2.5.1-1.5) …

Setting up libmnl0:amd64 (1.0.3-5) …

Setting up libgdbm3:amd64 (1.8.3-13.1) …

Setting up sgml-base (1.26+nmu4ubuntu1) …

Setting up perl-modules-5.22 (5.22.1-9ubuntu0.2) …

Setting up libperl5.22:amd64 (5.22.1-9ubuntu0.2) …

Setting up perl (5.22.1-9ubuntu0.2) …

update-alternatives: using /usr/bin/prename to provide /usr/bin/rename (rename) in auto mode

Setting up mime-support (3.59ubuntu1) …

Setting up libapr1:amd64 (1.5.2-3) …

Setting up libexpat1:amd64 (2.1.0-7ubuntu0.16.04.3) …

Setting up libssl1.0.0:amd64 (1.0.2g-1ubuntu4.9) …

debconf: unable to initialize frontend: Dialog

debconf: (TERM is not set, so the dialog frontend is not usable.)

debconf: falling back to frontend: Readline

Setting up libaprutil1:amd64 (1.5.4-1build1) …

Setting up libsqlite3-0:amd64 (3.11.0-1ubuntu1) …

Setting up libaprutil1-dbd-sqlite3:amd64 (1.5.4-1build1) …

Setting up libgmp10:amd64 (2:6.1.0+dfsg-2) …

Setting up libnettle6:amd64 (3.2-1ubuntu0.16.04.1) …

Setting up libhogweed4:amd64 (3.2-1ubuntu0.16.04.1) …

Setting up libidn11:amd64 (1.32-3ubuntu1.2) …

Setting up libffi6:amd64 (3.2.1-4) …

Setting up libp11-kit0:amd64 (0.23.2-5~ubuntu16.04.1) …

Setting up libtasn1-6:amd64 (4.7-3ubuntu0.16.04.2) …

Setting up libgnutls30:amd64 (3.4.10-4ubuntu1.4) …

Setting up libroken18-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) …

Setting up libasn1-8-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) …

Setting up libhcrypto4-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) …

Setting up libheimbase1-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) …

Setting up libwind0-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) …

Setting up libhx509-5-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) …

Setting up libkrb5-26-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) …

Setting up libheimntlm0-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) …

Setting up libgssapi3-heimdal:amd64 (1.7~git20150920+dfsg-4ubuntu1.16.04.1) …

Setting up libsasl2-modules-db:amd64 (2.1.26.dfsg1-14build1) …

Setting up libsasl2-2:amd64 (2.1.26.dfsg1-14build1) …

Setting up libldap-2.4-2:amd64 (2.4.42+dfsg-2ubuntu3.2) …

Setting up libaprutil1-ldap:amd64 (1.5.4-1build1) …

Setting up liblua5.1-0:amd64 (5.1.5-8ubuntu1) …

Setting up libicu55:amd64 (55.1-7ubuntu0.3) …

Setting up libxml2:amd64 (2.9.3+dfsg1-1ubuntu0.3) …

Setting up apache2-bin (2.4.18-2ubuntu3.5) …

Setting up apache2-utils (2.4.18-2ubuntu3.5) …

Setting up apache2-data (2.4.18-2ubuntu3.5) …

Setting up apache2 (2.4.18-2ubuntu3.5) …

Enabling module mpm_event.

Enabling module authz_core.

Enabling module authz_host.

Enabling module authn_core.

Enabling module auth_basic.

Enabling module access_compat.

Enabling module authn_file.

Enabling module authz_user.

Enabling module alias.

Enabling module dir.

Enabling module autoindex.

Enabling module env.

Enabling module mime.

Enabling module negotiation.

Enabling module setenvif.

Enabling module filter.

Enabling module deflate.

Enabling module status.

Enabling conf charset.

Enabling conf localized-error-pages.

Enabling conf other-vhosts-access-log.

Enabling conf security.

Enabling conf serve-cgi-bin.

Enabling site 000-default.

invoke-rc.d: could not determine current runlevel

invoke-rc.d: policy-rc.d denied execution of start.

Setting up libmagic1:amd64 (1:5.25-2ubuntu1) …

Setting up file (1:5.25-2ubuntu1) …

Setting up iproute2 (4.3.0-1ubuntu3.16.04.2) …

Setting up ifupdown (0.8.10ubuntu1.2) …

Creating /etc/network/interfaces.

Setting up libisc-export160 (1:9.10.3.dfsg.P4-8ubuntu1.9) …

Setting up libdns-export162 (1:9.10.3.dfsg.P4-8ubuntu1.9) …

Setting up isc-dhcp-client (4.3.3-5ubuntu12.7) …

Setting up isc-dhcp-common (4.3.3-5ubuntu12.7) …

Setting up libxtables11:amd64 (1.6.0-2ubuntu3) …

Setting up netbase (5.3) …

Setting up libsasl2-modules:amd64 (2.1.26.dfsg1-14build1) …

Setting up openssl (1.0.2g-1ubuntu4.9) …

Setting up xml-core (0.13+nmu2) …

Setting up rename (0.20-4) …

update-alternatives: using /usr/bin/file-rename to provide /usr/bin/rename (rename) in auto mode

Setting up ssl-cert (1.0.37) …

debconf: unable to initialize frontend: Dialog

debconf: (TERM is not set, so the dialog frontend is not usable.)

debconf: falling back to frontend: Readline

Processing triggers for libc-bin (2.23-0ubuntu9) …

Processing triggers for systemd (229-4ubuntu21) …

Processing triggers for sgml-base (1.26+nmu4ubuntu1) …

Removing intermediate container d9e9198a3e05

—> 80596dd5c11e

Step 5/6 : RUN echo “Apache running!!” >> /var/www/html/index.html

—> Running in 2b2892574b8c

Removing intermediate container 2b2892574b8c

—> 4559135d9b47

Step 6/6 : EXPOSE 80

—> Running in 9427afe144bb

Removing intermediate container 9427afe144bb

—> 17334a666342

Successfully built 17334a666342

Successfully tagged ubuntu16.04/apache2:latest

vskumar@ubuntu:~/apache1$

=============== You can see the contained id:17334a666342 ====>

Without error it has been built with tagged ubuntu16.04/apache2:latest.

Step 2: Check the Apache image

Let me list the current images:

=========== Current docker images ====>

vskumar@ubuntu:~/apache1$

vskumar@ubuntu:~/apache1$ sudo docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

ubuntu16.04/apache2 latest 17334a666342 8 minutes ago 261MB

ubuntu 16.04 20c44cd7596f 2 weeks ago 123MB

ubuntu latest 20c44cd7596f 2 weeks ago 123MB

vskumar@ubuntu:~/apache1$

===============================>

Now, Let us check the docker networks.

======= Docker networks list ======>

vskumar@ubuntu:~/apache1$ sudo docker network ls

NETWORK ID NAME DRIVER SCOPE

c16796e9072f bridge bridge local

b12df1d5fa4c host host local

70b971906469 none null local

vskumar@ubuntu:~/apache1$

=========================>

For containers network specifications, please visit:

https://docs.docker.com/engine/userguide/networking/#the-default-bridge-network

Step 3: Connect the Apache container/image with network

Now to get the services connected through docker bridge we need to connect the containers to the network bridge as below:
==== Named the latest image as container1 connected to default bridge ====>

vskumar@ubuntu:~/apache1$ sudo docker run -itd –name=container1 ubuntu16.04/apache2

6df11fd4bbffa4c41fcef86bb314c8796d663827cf85321b6bbc2a803d0de58b

vskumar@ubuntu:~/apache1$

==========================>

Now let us inspect the networks as below:

====== See the above image is attached to the bridge network as below =======>

vskumar@ubuntu:~/apache1$

vskumar@ubuntu:~/apache1$ sudo docker network inspect bridge

[

{

“Name”: “bridge”,

“Id”: “c16796e9072f2a9bd3273ee6733260a7be8c34cc72099eb496180d75e4298bf8”,

“Created”: “2017-12-04T03:17:49.732438566-08:00”,

“Scope”: “local”,

“Driver”: “bridge”,

“EnableIPv6”: false,

“IPAM”: {

“Driver”: “default”,

“Options”: null,

“Config”: [

{

“Subnet”: “172.17.0.0/16”,

“Gateway”: “172.17.0.1”

}

]

},

“Internal”: false,

“Attachable”: false,

“Ingress”: false,

“ConfigFrom”: {

“Network”: “”

},

“ConfigOnly”: false,

“Containers”: {

“6df11fd4bbffa4c41fcef86bb314c8796d663827cf85321b6bbc2a803d0de58b”: {

“Name”: “container1”,

“EndpointID”: “fa1b98a6a8455d7bcbe3260672123dd9ba6339cec25b4992031d5815ba48affa”,

“MacAddress”: “02:42:ac:11:00:02”,

“IPv4Address”: “172.17.0.2/16”,

“IPv6Address”: “”

}

},

“Options”: {

“com.docker.network.bridge.default_bridge”: “true”,

“com.docker.network.bridge.enable_icc”: “true”,

“com.docker.network.bridge.enable_ip_masquerade”: “true”,

“com.docker.network.bridge.host_binding_ipv4”: “0.0.0.0”,

“com.docker.network.bridge.name”: “docker0”,

“com.docker.network.driver.mtu”: “1500”

},

“Labels”: {}

}

]

vskumar@ubuntu:~/apache1$

=============================>

Observe the contaner1, section. Its ip is recorded.

Let us start the container now:

=================>

vskumar@ubuntu:~/apache1$ sudo docker run -i -t fedora/jenkins bin/bash

root@6df11fd4bbff:/#

root@6df11fd4bbff:/# ls

bin dev home lib64 mnt proc run srv tmp var

boot etc lib media opt root sbin sys usr

root@6df11fd4bbff:/#

================>

Let us check its /etc/hosts file contents.

=============================>

root@6df11fd4bbff:/# cat /etc/hosts

127.0.0.1 localhost

::1 localhost ip6-localhost ip6-loopback

fe00::0 ip6-localnet

ff00::0 ip6-mcastprefix

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters

172.17.0.2 6df11fd4bbff

root@6df11fd4bbff:/#

=============================>

Let us add some packages to this container.

To curl to any IP, we need curl utility on this container.

======== Installing curl utility on container1 ====>

root@6df11fd4bbff:/# apt-get install curl

Reading package lists… Done

Building dependency tree

Reading state information… Done

The following additional packages will be installed:

ca-certificates krb5-locales libcurl3-gnutls libgssapi-krb5-2 libk5crypto3 libkeyutils1

libkrb5-3 libkrb5support0 librtmp1

Suggested packages:

krb5-doc krb5-user

The following NEW packages will be installed:

ca-certificates curl krb5-locales libcurl3-gnutls libgssapi-krb5-2 libk5crypto3 libkeyutils1

libkrb5-3 libkrb5support0 librtmp1

0 upgraded, 10 newly installed, 0 to remove and 2 not upgraded.

Need to get 1072 kB of archives.

After this operation, 6220 kB of additional disk space will be used.

Do you want to continue? [Y/n] y

Get:1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ca-certificates all 20170717~16.04.1 [168 kB]

Get:2 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 krb5-locales all 1.13.2+dfsg-5ubuntu2 [13.2 kB]

Get:3 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libkrb5support0 amd64 1.13.2+dfsg-5ubuntu2 [30.8 kB]

Get:4 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libk5crypto3 amd64 1.13.2+dfsg-5ubuntu2 [81.2 kB]

Get:5 http://archive.ubuntu.com/ubuntu xenial/main amd64 libkeyutils1 amd64 1.5.9-8ubuntu1 [9904 B]

Get:6 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libkrb5-3 amd64 1.13.2+dfsg-5ubuntu2 [273 kB]

Get:7 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libgssapi-krb5-2 amd64 1.13.2+dfsg-5ubuntu2 [120 kB]

Get:8 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 librtmp1 amd64 2.4+20151223.gitfa8646d-1ubuntu0.1 [54.4 kB]

Get:9 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libcurl3-gnutls amd64 7.47.0-1ubuntu2.5 [184 kB]

Get:10 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 curl amd64 7.47.0-1ubuntu2.5 [138 kB]

Fetched 1072 kB in 3s (272 kB/s)

debconf: delaying package configuration, since apt-utils is not installed

Selecting previously unselected package ca-certificates.

(Reading database … 7907 files and directories currently installed.)

Preparing to unpack …/ca-certificates_20170717~16.04.1_all.deb …

Unpacking ca-certificates (20170717~16.04.1) …

Selecting previously unselected package krb5-locales.

Preparing to unpack …/krb5-locales_1.13.2+dfsg-5ubuntu2_all.deb …

Unpacking krb5-locales (1.13.2+dfsg-5ubuntu2) …

Selecting previously unselected package libkrb5support0:amd64.

Preparing to unpack …/libkrb5support0_1.13.2+dfsg-5ubuntu2_amd64.deb …

Unpacking libkrb5support0:amd64 (1.13.2+dfsg-5ubuntu2) …

Selecting previously unselected package libk5crypto3:amd64.

Preparing to unpack …/libk5crypto3_1.13.2+dfsg-5ubuntu2_amd64.deb …

Unpacking libk5crypto3:amd64 (1.13.2+dfsg-5ubuntu2) …

Selecting previously unselected package libkeyutils1:amd64.

Preparing to unpack …/libkeyutils1_1.5.9-8ubuntu1_amd64.deb …

Unpacking libkeyutils1:amd64 (1.5.9-8ubuntu1) …

Selecting previously unselected package libkrb5-3:amd64.

Preparing to unpack …/libkrb5-3_1.13.2+dfsg-5ubuntu2_amd64.deb …

Unpacking libkrb5-3:amd64 (1.13.2+dfsg-5ubuntu2) …

Selecting previously unselected package libgssapi-krb5-2:amd64.

Preparing to unpack …/libgssapi-krb5-2_1.13.2+dfsg-5ubuntu2_amd64.deb …

Unpacking libgssapi-krb5-2:amd64 (1.13.2+dfsg-5ubuntu2) …

Selecting previously unselected package librtmp1:amd64.

Preparing to unpack …/librtmp1_2.4+20151223.gitfa8646d-1ubuntu0.1_amd64.deb …

Unpacking librtmp1:amd64 (2.4+20151223.gitfa8646d-1ubuntu0.1) …

Selecting previously unselected package libcurl3-gnutls:amd64.

Preparing to unpack …/libcurl3-gnutls_7.47.0-1ubuntu2.5_amd64.deb …

Unpacking libcurl3-gnutls:amd64 (7.47.0-1ubuntu2.5) …

Selecting previously unselected package curl.

Preparing to unpack …/curl_7.47.0-1ubuntu2.5_amd64.deb …

Unpacking curl (7.47.0-1ubuntu2.5) …

Processing triggers for libc-bin (2.23-0ubuntu9) …

Setting up ca-certificates (20170717~16.04.1) …

debconf: unable to initialize frontend: Dialog

debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76.)

debconf: falling back to frontend: Readline

Setting up krb5-locales (1.13.2+dfsg-5ubuntu2) …

Setting up libkrb5support0:amd64 (1.13.2+dfsg-5ubuntu2) …

Setting up libk5crypto3:amd64 (1.13.2+dfsg-5ubuntu2) …

Setting up libkeyutils1:amd64 (1.5.9-8ubuntu1) …

Setting up libkrb5-3:amd64 (1.13.2+dfsg-5ubuntu2) …

Setting up libgssapi-krb5-2:amd64 (1.13.2+dfsg-5ubuntu2) …

Setting up librtmp1:amd64 (2.4+20151223.gitfa8646d-1ubuntu0.1) …

Setting up libcurl3-gnutls:amd64 (7.47.0-1ubuntu2.5) …

Setting up curl (7.47.0-1ubuntu2.5) …

Processing triggers for ca-certificates (20170717~16.04.1) …

Updating certificates in /etc/ssl/certs…

148 added, 0 removed; done.

Running hooks in /etc/ca-certificates/update.d…

done.

Processing triggers for libc-bin (2.23-0ubuntu9) …

root@6df11fd4bbff:/#

================= End of curl installation ====>

Step 4: Check the container connectivity in docker network

Now, let me ping this container from the docker host to check its connectivity.

===========================>

vskumar@ubuntu:~$

vskumar@ubuntu:~$ ping 172.17.0.2

PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.

From 172.17.0.1 icmp_seq=9 Destination Host Unreachable

From 172.17.0.1 icmp_seq=10 Destination Host Unreachable

From 172.17.0.1 icmp_seq=11 Destination Host Unreachable

From 172.17.0.1 icmp_seq=12 Destination Host Unreachable

From 172.17.0.1 icmp_seq=13 Destination Host Unreachable

From 172.17.0.1 icmp_seq=14 Destination Host Unreachable

From 172.17.0.1 icmp_seq=15 Destination Host Unreachable

^C

— 172.17.0.2 ping statistics —

30 packets transmitted, 0 received, +7 errors, 100% packet loss, time 29695ms

pipe 15

vskumar@ubuntu:~$

========= It means communication is established to Docker host/engine ======>
Now, let me exit the container interactive sessions as below:

===========  Exit container1  ======>

root@6df11fd4bbff:/#

root@6df11fd4bbff:/# exit

exit

vskumar@ubuntu:~/apache1$

===========================>

Now let me ping this container1 from docker host as below and check the results:

===========================>

vskumar@ubuntu:~$

vskumar@ubuntu:~$ ping 172.17.0.2

PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.

From 172.17.0.1 icmp_seq=9 Destination Host Unreachable

From 172.17.0.1 icmp_seq=10 Destination Host Unreachable

From 172.17.0.1 icmp_seq=11 Destination Host Unreachable

From 172.17.0.1 icmp_seq=12 Destination Host Unreachable

From 172.17.0.1 icmp_seq=13 Destination Host Unreachable

From 172.17.0.1 icmp_seq=14 Destination Host Unreachable

From 172.17.0.1 icmp_seq=15 Destination Host Unreachable

^C

— 172.17.0.2 ping statistics —

30 packets transmitted, 0 received, +7 errors, 100% packet loss, time 29695ms

pipe 15

vskumar@ubuntu:~$

==== It shows unreachable due to the container1 is stopped =====>

Now let us check the containers status as below:

===== Containers status ======>

vskumar@ubuntu:~$ sudo docker ps -a

[sudo] password for vskumar:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

6df11fd4bbff ubuntu16.04/apache2 “/bin/bash” 35 minutes ago Exited (0) 7 minutes ago container1

76ccfb044dd1 ubuntu16.04/apache2 “/bin/bash” About an hour ago Exited (0) About an hour ago upbeat_chandrasekhar

vskumar@ubuntu:~$

========= So it shows as Container1 is exited =====>

The outcome of this exercise  is; to know whenever the container is running, can we ping to it.

Let us try to run the container in non-interactive mode and check its ping status:

======================>

vskumar@ubuntu:~/apache1$

vskumar@ubuntu:~/apache1$ sudo docker start container1

container1

vskumar@ubuntu:~/apache1$ sudo docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

6df11fd4bbff ubuntu16.04/apache2 “/bin/bash” 38 minutes ago Up 5 seconds 80/tcp container1

76ccfb044dd1 ubuntu16.04/apache2 “/bin/bash” About an hour ago Exited (0) About an hour ago upbeat_chandrasekhar

vskumar@ubuntu:~/apache1$

===================>

It shows as replying from it :

====== Pinging the non-interactive container ====>

vskumar@ubuntu:~$

vskumar@ubuntu:~$ ping 172.17.0.2

PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.

64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.296 ms

64 bytes from 172.17.0.2: icmp_seq=2 ttl=64 time=0.161 ms

64 bytes from 172.17.0.2: icmp_seq=3 ttl=64 time=0.142 ms

64 bytes from 172.17.0.2: icmp_seq=4 ttl=64 time=0.147 ms

64 bytes from 172.17.0.2: icmp_seq=5 ttl=64 time=0.144 ms

64 bytes from 172.17.0.2: icmp_seq=6 ttl=64 time=0.145 ms

^C

— 172.17.0.2 ping statistics —

6 packets transmitted, 6 received, 0% packet loss, time 5113ms

rtt min/avg/max/mdev = 0.142/0.172/0.296/0.057 ms

vskumar@ubuntu:~$

===============================>

So we have seen its communication by both modes; interactive and non-interactive.

Now, let us check the status of apache2 on container1 and make it ‘active’ as below from the interactive mode:

========== Apache2 status on container1 ======>

root@6df11fd4bbff:/#

root@6df11fd4bbff:/#

root@6df11fd4bbff:/# service apache2 status

* apache2 is not running

root@6df11fd4bbff:/# service apache2 start

* Starting Apache httpd web server apache2 AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 172.17.0.2. Set the ‘ServerName’ directive globally to suppress this message

*

root@6df11fd4bbff:/# service apache2 status

* apache2 is running

root@6df11fd4bbff:/#

======================>

Step 5: Check the Apache home page with the container ip in ubuntu host machine’s Firefox browser:

Now I want to go to my ubuntu host cloud machine and use the firefox browser to access the apache2 page. Let me try. Yes it is running well with ip address: 172.17.0.2, as a proof you can see the below images:

Apache2-container-page1.png

Apache2-container-page2.png

It is a great work we have done! we proved the container networking can be done well with docker containers.

From the ubuntu cloud host machine we have seen the above screenshot from apache2 web page. Please check the web page bottom message ‘Apache running!! ‘. This is the message given through ‘echo’ command in the dockerfile.

If you want to stop the service you can use the below command:

=============== Stopping apache2 sever =====>

root@6df11fd4bbff:/# service apache2 stop

* Stopping Apache httpd web server apache2 *

root@6df11fd4bbff:/# service apache2 status

* apache2 is not running

root@6df11fd4bbff:/#

==============================>

Now, check your browser. You should get the message as “Unable to connect”.

You need to restart as below to run the web page:

root@6df11fd4bbff:/# service apache2 start

* Starting Apache httpd web server apache2 AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 172.17.0.2. Set the ‘ServerName’ directive globally to suppress this message

root@6df11fd4bbff:/# service apache2 status

* apache2 is running

root@6df11fd4bbff:/#

=================== Restarted apache2 ============>

At this point, I want to stop this session.

In the next session, we will see some more examples with dockerfile usage to build containers.

Vcard-Shanthi Kumar V-v3

1. Graph database: How to install Neo4j [3.2.6] on ubuntu

Neo4j

In continuation of my previous blogs on DevOps tools. In this blog I would like to demonstrate on “Installation of Neo4j 3.2.6 Graph database on Ubuntu” with screen outputs for each command.

Installation of Neo4j for ubuntu

Assuming you have the Ubuntu cloud machine setup and following this session.

Step1: Install JDK

We need to install JDK before installing Neo4j.

add-apt-repository ppa:webupd8team/java

================================>

vskumar@ubuntu:~$ sudo add-apt-repository ppa:webupd8team/java
Oracle Java (JDK) Installer (automatically downloads and installs Oracle JDK7 / JDK8 / JDK9). There are no actual Java files in this PPA.

Important -> Why Oracle Java 7 And 6 Installers No Longer Work: http://www.webupd8.org/2017/06/why-oracle-java-7-and-6-installers-no.html

Ubuntu 16.10 Yakkety Yak is no longer supported by Canonical (and thus, Launchpad and this PPA). The PPA supports Ubuntu 17.10, 17.04, 16.04, 14.04 and 12.04.

More info (and Ubuntu installation instructions):
– for Oracle Java 7: http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html
– for Oracle Java 8: http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html

Debian installation instructions:
– Oracle Java 7: http://www.webupd8.org/2012/06/how-to-install-oracle-java-7-in-debian.html
– Oracle Java 8: http://www.webupd8.org/2014/03/how-to-install-oracle-java-8-in-debian.html

Oracle Java 9 (for both Ubuntu and Debian): http://www.webupd8.org/2015/02/install-oracle-java-9-in-ubuntu-linux.html

Oracle JDK 9 is now considered stable. There are currently only 64bit builds (no other builds are available for download: http://www.oracle.com/technetwork/java/javase/downloads/index.html )
More info: https://launchpad.net/~webupd8team/+archive/ubuntu/java
Press [ENTER] to continue or ctrl-c to cancel adding it

gpg: keyring `/tmp/tmp_l64cwdq/secring.gpg’ created
gpg: keyring `/tmp/tmp_l64cwdq/pubring.gpg’ created
gpg: requesting key EEA14886 from hkp server keyserver.ubuntu.com
gpg: /tmp/tmp_l64cwdq/trustdb.gpg: trustdb created
gpg: key EEA14886: public key “Launchpad VLC” imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
OK
vskumar@ubuntu:~$ ^C
vskumar@ubuntu:~$
==============================>

Now, we can update the Ubuntu packages as below:

=============== Let us update as below =====>
vskumar@ubuntu:~$ sudo apt-get -f install
Reading package lists… Done
Building dependency tree
Reading state information… Done
Correcting dependencies… Done
The following packages were automatically installed and are no longer required:
bridge-utils containerd runc ubuntu-fan
Use ‘sudo apt autoremove’ to remove them.
The following additional packages will be installed:
linux-headers-4.10.0-42-generic linux-headers-generic-hwe-16.04
The following NEW packages will be installed:
linux-headers-4.10.0-42-generic
The following packages will be upgraded:
linux-headers-generic-hwe-16.04
1 upgraded, 1 newly installed, 0 to remove and 145 not upgraded.
6 not fully installed or removed.
Need to get 682 kB of archives.
After this operation, 7,550 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-headers-4.10.0-42-generic amd64 4.10.0-42.46~16.04.1 [680 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-headers-generic-hwe-16.04 amd64 4.10.0.42.44 [2,330 B]
Fetched 682 kB in 1s (494 kB/s)
Selecting previously unselected package linux-headers-4.10.0-42-generic.
(Reading database … 235799 files and directories currently installed.)
Preparing to unpack …/linux-headers-4.10.0-42-generic_4.10.0-42.46~16.04.1_amd64.deb …
Unpacking linux-headers-4.10.0-42-generic (4.10.0-42.46~16.04.1) …
Preparing to unpack …/linux-headers-generic-hwe-16.04_4.10.0.42.44_amd64.deb …
Unpacking linux-headers-generic-hwe-16.04 (4.10.0.42.44) over (4.10.0.40.42) …
Setting up rsync (3.1.1-3ubuntu1.1) …
Setting up linux-image-4.10.0-42-generic (4.10.0-42.46~16.04.1) …
Running depmod.
update-initramfs: deferring update (hook will be called later)
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.10.0-42-generic /boot/vmlinuz-4.10.0-42-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.10.0-42-generic /boot/vmlinuz-4.10.0-42-generic
update-initramfs: Generating /boot/initrd.img-4.10.0-42-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 4.10.0-42-generic /boot/vmlinuz-4.10.0-42-generic
run-parts: executing /etc/kernel/postinst.d/unattended-upgrades 4.10.0-42-generic /boot/vmlinuz-4.10.0-42-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 4.10.0-42-generic /boot/vmlinuz-4.10.0-42-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.10.0-42-generic /boot/vmlinuz-4.10.0-42-generic
Generating grub configuration file …
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Found linux image: /boot/vmlinuz-4.10.0-42-generic
Found initrd image: /boot/initrd.img-4.10.0-42-generic
Found linux image: /boot/vmlinuz-4.10.0-40-generic
Found initrd image: /boot/initrd.img-4.10.0-40-generic
Found linux image: /boot/vmlinuz-4.10.0-28-generic
Found initrd image: /boot/initrd.img-4.10.0-28-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done
Setting up linux-image-extra-4.10.0-42-generic (4.10.0-42.46~16.04.1) …
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.10.0-42-generic /boot/vmlinuz-4.10.0-42-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.10.0-42-generic /boot/vmlinuz-4.10.0-42-generic
update-initramfs: Generating /boot/initrd.img-4.10.0-42-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 4.10.0-42-generic /boot/vmlinuz-4.10.0-42-generic
run-parts: executing /etc/kernel/postinst.d/unattended-upgrades 4.10.0-42-generic /boot/vmlinuz-4.10.0-42-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 4.10.0-42-generic /boot/vmlinuz-4.10.0-42-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.10.0-42-generic /boot/vmlinuz-4.10.0-42-generic
Generating grub configuration file …
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Found linux image: /boot/vmlinuz-4.10.0-42-generic
Found initrd image: /boot/initrd.img-4.10.0-42-generic
Found linux image: /boot/vmlinuz-4.10.0-40-generic
Found initrd image: /boot/initrd.img-4.10.0-40-generic
Found linux image: /boot/vmlinuz-4.10.0-28-generic
Found initrd image: /boot/initrd.img-4.10.0-28-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done
Setting up linux-image-generic-hwe-16.04 (4.10.0.42.44) …
Setting up linux-headers-4.10.0-42 (4.10.0-42.46~16.04.1) …
Setting up linux-headers-4.10.0-42-generic (4.10.0-42.46~16.04.1) …
Setting up linux-headers-generic-hwe-16.04 (4.10.0.42.44) …
Setting up linux-generic-hwe-16.04 (4.10.0.42.44) …
vskumar@ubuntu:~$

==================================>

Now, we need to install JDK9.
sudo apt install oracle-java9-installer

[Note: I have already installed JDK 9 in my VM before writing this blog. Hence the output is not copied].

Once the JDK is installed in your machine, check the java version as below:

$ java –version
=============================>
vskumar@ubuntu:~$
vskumar@ubuntu:~$ pwd
/home/vskumar
vskumar@ubuntu:~$ java –version
java 9.0.1
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
vskumar@ubuntu:~$

=============================>

Once the JDK is confirmed as above steps.

Now, let us start building the Neo4j setup as below steps:

Step2: for Neo4j Setup

Use the below command to install Neo4j.

wget -O – https://debian.neo4j.org/neotechnology.gpg.key | sudo apt-key add –

========= Neo4j =====>
vskumar@ubuntu:~$ wget -O – https://debian.neo4j.org/neotechnology.gpg.key | sudo apt-key add –
–2017-12-08 08:15:11– https://debian.neo4j.org/neotechnology.gpg.key
Resolving debian.neo4j.org (debian.neo4j.org)… 52.0.233.188
Connecting to debian.neo4j.org (debian.neo4j.org)|52.0.233.188|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 4791 (4.7K) [application/octet-stream]
Saving to: ‘STDOUT’

– 100%[===================>] 4.68K –.-KB/s in 0s

2017-12-08 08:15:16 (131 MB/s) – written to stdout [4791/4791]

OK
vskumar@ubuntu:~$
===============>

We need to use the below operations for setting up Neo4j:

Use the below pipe :

echo ‘deb http://debian.neo4j.org/repo stable/’ >/tmp/neo4j.list
=====================>
vskumar@ubuntu:~$ echo ‘deb http://debian.neo4j.org/repo stable/’ >/tmp/neo4j.list
vskumar@ubuntu:~$ cat /tmp/neo4j.list
deb http://debian.neo4j.org/repo stable/
vskumar@ubuntu:~$
====================>

Then move the below directory and check its validation:

sudo mv /tmp/neo4j.list /etc/apt/sources.list.d

================>
vskumar@ubuntu:~$
vskumar@ubuntu:~$ sudo mv /tmp/neo4j.list /etc/apt/sources.list.d
vskumar@ubuntu:~$ ls /etc/apt/sources.list.d
docker.list webupd8team-ubuntu-java-xenial.list
docker.list.save webupd8team-ubuntu-java-xenial.list.save
neo4j.list
vskumar@ubuntu:~$ ls -l /etc/apt/sources.list.d
total 20
-rw-r–r– 1 root root 70 Dec 8 04:08 docker.list
-rw-r–r– 1 root root 70 Dec 8 04:08 docker.list.save
-rw-rw-r– 1 vskumar vskumar 41 Dec 8 08:18 neo4j.list
-rw-r–r– 1 root root 207 Dec 8 04:08 webupd8team-ubuntu-java-xenial.list
-rw-r–r– 1 root root 136 Dec 8 04:08 webupd8team-ubuntu-java-xenial.list.save
vskumar@ubuntu:~$ cd /etc
vskumar@ubuntu:/etc$ cd apt
vskumar@ubuntu:/etc/apt$ cd sources
bash: cd: sources: No such file or directory
vskumar@ubuntu:/etc/apt$ cd sources.list.d
vskumar@ubuntu:/etc/apt/sources.list.d$ pwd
/etc/apt/sources.list.d
vskumar@ubuntu:/etc/apt/sources.list.d$ ls
docker.list webupd8team-ubuntu-java-xenial.list
docker.list.save webupd8team-ubuntu-java-xenial.list.save
neo4j.list
vskumar@ubuntu:/etc/apt/sources.list.d$
=============================>

Now, we need to update all dependencies by :
sudo apt-get update //

===================== You will see the huge output =======>

Once its done with ‘ok’ prompt, follow below step.

Now, let us install neo4j using

sudo apt-get install neo4j=3.2.6

==== See the below output =====>
vskumar@ubuntu:/etc/apt/sources.list.d$
vskumar@ubuntu:/etc/apt/sources.list.d$ sudo apt-get install neo4j=3.2.6
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages were automatically installed and are no longer required:
bridge-utils containerd linux-headers-4.10.0-28
linux-headers-4.10.0-28-generic linux-image-4.10.0-28-generic
linux-image-extra-4.10.0-28-generic runc ubuntu-fan
Use ‘sudo apt autoremove’ to remove them.
The following additional packages will be installed:
cypher-shell daemon
The following NEW packages will be installed:
cypher-shell daemon neo4j
0 upgraded, 3 newly installed, 0 to remove and 126 not upgraded.
Need to get 76.0 MB/76.9 MB of archives.
After this operation, 88.6 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://debian.neo4j.org/repo stable/ neo4j 3.2.6 [76.0 MB]
Fetched 76.0 MB in 1min 34s (801 kB/s)
Selecting previously unselected package daemon.
(Reading database … 252587 files and directories currently installed.)
Preparing to unpack …/daemon_0.6.4-1_amd64.deb …
Unpacking daemon (0.6.4-1) …
Selecting previously unselected package cypher-shell.
Preparing to unpack …/cypher-shell_1.1.2-1_all.deb …
Unpacking cypher-shell (1.1.2-1) …
Selecting previously unselected package neo4j.
Preparing to unpack …/archives/neo4j_3.2.6_all.deb …
Unpacking neo4j (3.2.6) …
Processing triggers for man-db (2.7.5-1) …
Processing triggers for systemd (229-4ubuntu19) …
Processing triggers for ureadahead (0.100.0-19) …
Setting up daemon (0.6.4-1) …
Setting up cypher-shell (1.1.2-1) …
Setting up neo4j (3.2.6) …
Processing triggers for systemd (229-4ubuntu19) …
Processing triggers for ureadahead (0.100.0-19) …
vskumar@ubuntu:/etc/apt/sources.list.d$

====================>

After completing installation process we need to restart neo4j service using the below command.
$sudo service neo4j restart

====================>

vskumar@ubuntu:/etc/apt/sources.list.d$ sudo service neo4j restart
vskumar@ubuntu:/etc/apt/sources.list.d$ sudo service neo4j status
● neo4j.service – Neo4j Graph Database
Loaded: loaded (/lib/systemd/system/neo4j.service; disabled; vendor preset: e
Active: active (running) since Fri 2017-12-08 08:46:14 PST; 7s ago
Main PID: 30856 (java)
Tasks: 8
Memory: 70.6M
CPU: 2.756s
CGroup: /system.slice/neo4j.service
└─30856 /usr/bin/java -cp /var/lib/neo4j/plugins:/etc/neo4j:/usr/shar

Dec 08 08:46:21 ubuntu neo4j[30856]: Directories in use:
Dec 08 08:46:21 ubuntu neo4j[30856]: home: /var/lib/neo4j
Dec 08 08:46:21 ubuntu neo4j[30856]: config: /etc/neo4j
Dec 08 08:46:21 ubuntu neo4j[30856]: logs: /var/log/neo4j
Dec 08 08:46:21 ubuntu neo4j[30856]: plugins: /var/lib/neo4j/plugins
Dec 08 08:46:21 ubuntu neo4j[30856]: import: /var/lib/neo4j/import
Dec 08 08:46:21 ubuntu neo4j[30856]: data: /var/lib/neo4j/data
Dec 08 08:46:21 ubuntu neo4j[30856]: certificates: /var/lib/neo4j/certificates
Dec 08 08:46:21 ubuntu neo4j[30856]: run: /var/run/neo4j
Dec 08 08:46:21 ubuntu neo4j[30856]: Starting Neo4j.

=======================================>

Finally, We can access the Neo4j browser with the below Url:
http://localhost:7474/browser/

Neo4j-browser

Now, we can use for our lab practice with Cypher Queries.

For ; How to install Neo4j on a docker container? [for Ubuntu 18.04 VM]

Visit my blog:

https://vskumar.blog/2018/07/15/2-graph-database-docker-how-to-install-neo4j-on-a-docker-container-for-ubuntu-18-04-vm/

Please leave your feedback!

Vcard-Shanthi Kumar V-v3

https://youtu.be/CNghNRPL-Zs

11. DevOps: How to Launch a container as a daemon ?

Docker-logo

In continuation of my previous blog on “10. DevOps: How to Build images from Docker containers?”, I am continuing my lab exercises. In this session we can see ”

How to Launch a container as a daemon ?:

Note: If you want to recollect the docker commands to be used during your current lab practice, visit my blog link:

https://vskumarblogs.wordpress.com/2017/12/13/some-useful-docker-commands-for-handling-images-and-containers/

 

Let us recap the past exercises; So far we have experimented with an interactive container, tracked the changes that were made to the containers., created images from the containers, and then gained insights in the containerization scenarios.

Now, let us see the container usage in a detached mode.

When we run the container in a detached mode it runs under a daemon process.

I want to use the “ubuntu” image and run detached mode command.

First, let me check my current docker images:

==================>

vskumar@ubuntu:~$

vskumar@ubuntu:~$ sudo docker images

[sudo] password for vskumar:

REPOSITORY TAG IMAGE ID CREATED SIZE

docker-exercise/ubuntu-wgetinstall latest e34304119838 7 days ago 169MB

<none> <none> fc7e4564eb92 7 days ago 169MB

hello-world latest f2a91732366c 12 days ago 1.85kB

ubuntu 16.04 20c44cd7596f 2 weeks ago 123MB

ubuntu latest 20c44cd7596f 2 weeks ago 123MB

busybox latest 6ad733544a63 4 weeks ago 1.13MB

busybox 1.24 47bcc53f74dc 20 months ago 1.11MB

vskumar@ubuntu:~$

===================>

You can see my previous image with ‘docker-exercise/ubuntu-wgetinstall ‘. This was created in the previous exercise.

As per our plan in this session I am using the below commands to run the ubuntu image as below:

sudo docker run -d ubuntu \

    /bin/bash -c "while true; do date; sleep 5; done";

========== Output ======>
vskumar@ubuntu:~$  sudo docker run -d ubuntu \
>     /bin/bash -c "while true; do date; sleep 5; done";
0fe495fc93edee3aaadc7fc0fbf21997f0ca3cde4d7e563aa8c61352a43957dd
vskumar@ubuntu:~$ $ 
=======================>

Now, to view the docker logs I want to run the docker logs subcommand on image id: ‘ 0fe495fc93edee3aaadc7fc0fbf21997f0ca3cde4d7e563aa8c61352a43957dd’

$ sudo docker logs 0fe495fc93edee3aaadc7fc0fbf21997f0ca3cde4d7e563aa8c61352a43957dd;

=====See the output of the Daemon process running with the ubuntu image ===============>

vskumar@ubuntu:~$ sudo docker logs 0fe495fc93edee3aaadc7fc0fbf21997f0ca3cde4d7e563aa8c61352a43957dd;

Sun Dec 3 05:11:57 UTC 2017

Sun Dec 3 05:12:02 UTC 2017

Sun Dec 3 05:12:07 UTC 2017

Sun Dec 3 05:12:12 UTC 2017

Sun Dec 3 05:12:17 UTC 2017

Sun Dec 3 05:12:22 UTC 2017

Sun Dec 3 05:12:27 UTC 2017

Sun Dec 3 05:12:32 UTC 2017

Sun Dec 3 05:12:37 UTC 2017

Sun Dec 3 05:12:42 UTC 2017

Sun Dec 3 05:12:48 UTC 2017

Sun Dec 3 05:12:53 UTC 2017

Sun Dec 3 05:12:58 UTC 2017

Sun Dec 3 05:13:03 UTC 2017

Sun Dec 3 05:13:08 UTC 2017

Sun Dec 3 05:13:13 UTC 2017

Sun Dec 3 05:13:18 UTC 2017

Sun Dec 3 05:13:23 UTC 2017

Sun Dec 3 05:13:28 UTC 2017

Sun Dec 3 05:13:33 UTC 2017

Sun Dec 3 05:13:38 UTC 2017

Sun Dec 3 05:13:43 UTC 2017

Sun Dec 3 05:13:48 UTC 2017

Sun Dec 3 05:13:53 UTC 2017

Sun Dec 3 05:13:58 UTC 2017

Sun Dec 3 05:14:03 UTC 2017

Sun Dec 3 05:14:08 UTC 2017

Sun Dec 3 05:14:13 UTC 2017

Sun Dec 3 05:14:18 UTC 2017

Sun Dec 3 05:14:23 UTC 2017

Sun Dec 3 05:14:28 UTC 2017

Sun Dec 3 05:14:33 UTC 2017

Sun Dec 3 05:14:38 UTC 2017

Sun Dec 3 05:14:43 UTC 2017

Sun Dec 3 05:14:48 UTC 2017

Sun Dec 3 05:14:53 UTC 2017

Sun Dec 3 05:14:58 UTC 2017

Sun Dec 3 05:15:03 UTC 2017

Sun Dec 3 05:15:08 UTC 2017

Sun Dec 3 05:15:13 UTC 2017

Sun Dec 3 05:15:18 UTC 2017

Sun Dec 3 05:15:23 UTC 2017

vskumar@ubuntu:~$

=================You can see the output for every few seconds listed =======>

It means the container is running as a daemon.

Now, let us use ps -eaf command to check the processed running in linux by using :

$ ps -eaf | grep ‘daemon’

========= See the output of daemon processes ==========>

vskumar@ubuntu:~$

vskumar@ubuntu:~$ ps -eaf | grep ‘daemon’

message+ 837 1 0 20:26 ? 00:00:05 /usr/bin/dbus-daemon –system –address=systemd: –nofork –nopidfile –systemd-activation

root 871 1 0 20:26 ? 00:00:03 /usr/sbin/NetworkManager –no-daemon

avahi 873 1 0 20:26 ? 00:00:00 avahi-daemon: running [ubuntu.local]

root 876 1 0 20:26 ? 00:00:01 /usr/lib/accountsservice/accounts-daemon

avahi 893 873 0 20:26 ? 00:00:00 avahi-daemon: chroot helper

rtkit 1370 1 0 20:28 ? 00:00:00 /usr/lib/rtkit/rtkit-daemon

vskumar 2426 1 0 20:55 ? 00:00:00 /usr/bin/gnome-keyring-daemon –daemonize –login

vskumar 2508 2428 0 20:55 ? 00:00:00 upstart-udev-bridge –daemon –user

vskumar 2515 2428 0 20:55 ? 00:00:04 dbus-daemon –fork –session –address=unix:abstract=/tmp/dbus-nPaV5rWlQc

vskumar 2570 2428 0 20:55 ? 00:00:03 /usr/lib/x86_64-linux-gnu/bamf/bamfdaemon

vskumar 2572 2428 0 20:55 ? 00:00:04 /usr/bin/ibus-daemon –daemonize –xim –address unix:tmpdir=/tmp/ibus

vskumar 2575 2428 0 20:55 ? 00:00:00 upstart-file-bridge –daemon –user

vskumar 2579 2428 0 20:55 ? 00:00:00 upstart-dbus-bridge –daemon –system –user –bus-name system

vskumar 2582 2428 0 20:55 ? 00:00:00 upstart-dbus-bridge –daemon –session –user –bus-name session

vskumar 2605 2428 0 20:55 ? 00:00:00 /usr/lib/ibus/ibus-x11 –kill-daemon

vskumar 2630 2428 0 20:56 ? 00:00:00 gpg-agent –homedir /home/vskumar/.gnupg –use-standard-socket –daemon

vskumar 2645 2428 0 20:56 ? 00:00:02 /usr/lib/unity-settings-daemon/unity-settings-daemon

vskumar 2664 2653 0 20:56 ? 00:00:00 /usr/bin/dbus-daemon –config-file=/etc/at-spi2/accessibility.conf –nofork –print-address 3

vskumar 2851 2654 0 20:56 ? 00:00:01 /usr/lib/unity-settings-daemon/unity-fallback-mount-helper

vskumar 2914 2428 0 20:57 ? 00:00:00 /bin/sh -c /usr/lib/x86_64-linux-gnu/zeitgeist/zeitgeist-maybe-vacuum; /usr/bin/zeitgeist-daemon

vskumar 2920 2914 0 20:57 ? 00:00:00 /usr/bin/zeitgeist-daemon

vskumar 3094 2428 0 21:00 ? 00:00:01 /usr/lib/x86_64-linux-gnu/unity-lens-files/unity-files-daemon

root 4148 1253 0 21:11 ? 00:00:00 docker-containerd-shim –namespace moby –workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/0fe495fc93edee3aaadc7fc0fbf21997f0ca3cde4d7e563aa8c61352a43957dd –address /var/run/docker/containerd/docker-containerd.sock –runtime-root /var/run/docker/runtime-runc

vskumar 4480 3206 0 21:19 pts/19 00:00:00 grep –color=auto daemon

vskumar@ubuntu:~$

======== You can see the list of processes running currently ========>

So we are successful! to run a container in a detached mode [not in an interactive mode!] using the command: ‘ sudo docker run -d ubuntu’

You can think in an application architecture having multiple servers or SOA running with different services.

You can simulate the same services using the docker containers, by setting up as images by configuring the required services and connect them to the architecture.

This way the advantages of containers can be utilized well. Where different companies are using and implementing their applications into containers architecture by saving lot of infrastructure cost. No hardware or physical servers are required. Lot of space also can be saved. The microservices architecture leads to the same way.

At this point, I would like to stop this session and in the next blog we will see other exercises.

Vcard-Shanthi Kumar V-v3

 

 

10. DevOps: How to Build images from Docker containers?

Docker-logo

This is in continuation of my last blog “9. DevOps: How to do Containers housekeeping ?”. In this blog I would like to demonstrate on:

How to Build images from docker containers?:

Note: If you want to recollect the docker commands to be used during your current lab practice, visit my blog link:

https://vskumarblogs.wordpress.com/2017/12/13/some-useful-docker-commands-for-handling-images-and-containers/

So far we have built the containers and operated them through the previous exercises. Now, let us see how  can we add  software to our base image on a running container and then convert that container into an image for future usage.

Let’s take ubuntu:16.04 as our base image, install the wget application, and then convert the running container to an image with the below steps:

To make ubuntu:16.04 container is our base image, we need to install the wget application, and then convert it as the running container to a docker image by using the below steps:

  1. Launch an ubuntu:16.04 container using the docker run subcommand, as shown below:
      $ sudo docker run -i -t ubuntu:16.04 /bin/bash
========================>
vskumar@ubuntu:~$ sudo docker ps -aq
155f4b0764b1
vskumar@ubuntu:~$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
155f4b0764b1        ubuntu:16.04        "/bin/bash"         2 hours ago         Up 11 minutes                           zen_volhard
vskumar@ubuntu:~$ sudo docker run -i -t ubuntu:16.04 /bin/bash
root@3484664d454a:/# 
=========================>
2. Now, let's  verify is wget  available for this image or not.
============== the display shows there is no wget in this image =========>

root@3484664d454a:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@3484664d454a:/# which wget
root@3484664d454a:/# 

      root@472c96295678:/# apt-get update
==================>
As we know that it is a brand new ubuntu container we built it, before installing wget we must synchronize it with the Ubuntu package repository, as shown below:
====================>
root@3484664d454a:/# apt-get update
Get:1 http://archive.ubuntu.com/ubuntu xenial InRelease [247 kB]         
Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]
Get:3 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB]                                                                      
Get:4 http://archive.ubuntu.com/ubuntu xenial-backports InRelease [102 kB]                                                                    
Get:5 http://archive.ubuntu.com/ubuntu xenial/universe Sources [9802 kB]                                                                      
Get:6 http://security.ubuntu.com/ubuntu xenial-security/universe Sources [53.1 kB]                                                            
Get:7 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages [504 kB]                                                          
Get:8 http://security.ubuntu.com/ubuntu xenial-security/restricted amd64 Packages [12.9 kB]                                                   
Get:9 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages [229 kB]                                                      
Get:10 http://security.ubuntu.com/ubuntu xenial-security/multiverse amd64 Packages [3479 B]                                                   
Get:11 http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages [1558 kB]                                                                  
Get:12 http://archive.ubuntu.com/ubuntu xenial/restricted amd64 Packages [14.1 kB]                                                            
Get:13 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages [9827 kB]                                                              
Get:14 http://archive.ubuntu.com/ubuntu xenial/multiverse amd64 Packages [176 kB]                                                             
Get:15 http://archive.ubuntu.com/ubuntu xenial-updates/universe Sources [228 kB]                                                              
Get:16 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [864 kB]                                                           
Get:17 http://archive.ubuntu.com/ubuntu xenial-updates/restricted amd64 Packages [13.7 kB]                                                    
Get:18 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [711 kB]                                                       
Get:19 http://archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 Packages [18.5 kB]                                                    
Get:20 http://archive.ubuntu.com/ubuntu xenial-backports/main amd64 Packages [5174 B]                                                         
Get:21 http://archive.ubuntu.com/ubuntu xenial-backports/universe amd64 Packages [7135 B]                                                     
Fetched 24.6 MB in 59s (412 kB/s)                                                                                                             
Reading package lists... Done
root@3484664d454a:/# 
================================>
Now, we can install wget as below:
=========== Output of wget installation on container ===========>

root@3484664d454a:/# 
root@3484664d454a:/# apt-get install -y wget
Reading package lists... Done
Building dependency tree        
Reading state information... Done
The following additional packages will be installed:
  ca-certificates libidn11 libssl1.0.0 openssl
The following NEW packages will be installed:
  ca-certificates libidn11 libssl1.0.0 openssl wget
0 upgraded, 5 newly installed, 0 to remove and 1 not upgraded.
Need to get 2089 kB of archives.
After this operation, 6027 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libidn11 amd64 1.32-3ubuntu1.2 [46.5 kB]
Get:2 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 libssl1.0.0 amd64 1.0.2g-1ubuntu4.9 [1085 kB]
Get:3 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 openssl amd64 1.0.2g-1ubuntu4.9 [492 kB]
Get:4 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 ca-certificates all 20170717~16.04.1 [168 kB]
Get:5 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 wget amd64 1.17.1-1ubuntu1.3 [299 kB]
Fetched 2089 kB in 4s (421 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libidn11:amd64.
(Reading database ... 4768 files and directories currently installed.)
Preparing to unpack .../libidn11_1.32-3ubuntu1.2_amd64.deb ...
Unpacking libidn11:amd64 (1.32-3ubuntu1.2) ...
Selecting previously unselected package libssl1.0.0:amd64.
Preparing to unpack .../libssl1.0.0_1.0.2g-1ubuntu4.9_amd64.deb ...
Unpacking libssl1.0.0:amd64 (1.0.2g-1ubuntu4.9) ...
Selecting previously unselected package openssl.
Preparing to unpack .../openssl_1.0.2g-1ubuntu4.9_amd64.deb ...
Unpacking openssl (1.0.2g-1ubuntu4.9) ...
Selecting previously unselected package ca-certificates.
Preparing to unpack .../ca-certificates_20170717~16.04.1_all.deb ...
Unpacking ca-certificates (20170717~16.04.1) ...
Selecting previously unselected package wget.
Preparing to unpack .../wget_1.17.1-1ubuntu1.3_amd64.deb ...
Unpacking wget (1.17.1-1ubuntu1.3) ...
Processing triggers for libc-bin (2.23-0ubuntu9) ...
Setting up libidn11:amd64 (1.32-3ubuntu1.2) ...
Setting up libssl1.0.0:amd64 (1.0.2g-1ubuntu4.9) ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.22.1 /usr/local/share/perl/5.22.1 /usr/lib/x86_64-linux-gnu/perl5/5.22 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22 /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base .) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 7.)
debconf: falling back to frontend: Teletype
Setting up openssl (1.0.2g-1ubuntu4.9) ...
Setting up ca-certificates (20170717~16.04.1) ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.22.1 /usr/local/share/perl/5.22.1 /usr/lib/x86_64-linux-gnu/perl5/5.22 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22 /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base .) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 7.)
debconf: falling back to frontend: Teletype
Setting up wget (1.17.1-1ubuntu1.3) ...
Processing triggers for libc-bin (2.23-0ubuntu9) ...
Processing triggers for ca-certificates (20170717~16.04.1) ...
Updating certificates in /etc/ssl/certs...
148 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
root@3484664d454a:/# 
=========================== End of installation ===========>
Now, we can verify with  'which wget ' command
============>
root@3484664d454a:/# which wget
/usr/bin/wget
root@3484664d454a:/# 
============>
Please let us recollect; installation of any software would alter the Dockwer base image composition. In which, we can also trace using the docker diff subcommand as we did in the previous exercises. 
I will open a second Terminal/screen, the docker diff subcommand can be issued from it, as below:
      $ sudo docker diff 472c96295678
===============>
vskumar@ubuntu:~$  
vskumar@ubuntu:~$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
3484664d454a        ubuntu:16.04        "/bin/bash"         15 minutes ago      Up 15 minutes                           jolly_cray
155f4b0764b1        ubuntu:16.04        "/bin/bash"         2 hours ago         Up 40 minutes                           zen_volhard
vskumar@ubuntu:~$ sudo docker diff 155f4b0764b1
C /root
A /root/.bash_history
vskumar@ubuntu:~$ 
============>

How to save this container ?:
The docker commit subcommand can be performed on a running or a stopped container. When a commit is performed on a running container, the Docker Engine pauses the container during the commit operation in order to avoid any data inconsistency. 
Now we can stop our running container.
We can commit a container to an image with the docker commit subcommand, as shown here:
      $ sudo docker commit 

================== Using commit for container ============>

root@3484664d454a:/# 
root@3484664d454a:/# exit
exit
vskumar@ubuntu:~$ sudo docker commit 3484664d454a
[sudo] password for vskumar: 
Sorry, try again.
[sudo] password for vskumar: 
sha256:fc7e4564eb928ccfe068c789f0d650967e8d5dc42d4e8d92409aab6614364075
vskumar@ubuntu:~$ 
=======================>
You can see the container id from the above output.

=========== We can also give a message to the commit command as below ===>
vskumar@ubuntu:~$ sudo docker commit 3484664d454a  Docker-exercise/ubuntu-wgetinstall
invalid reference format: repository name must be lowercase
vskumar@ubuntu:~$ sudo docker commit 3484664d454a  docker-exercise/ubuntu-wgetinstall
sha256:e34304119838d79da60e12776529106c350b1972cd517648e8ab90311fad7b1a
vskumar@ubuntu:~$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                       PORTS               NAMES
3484664d454a        ubuntu:16.04        "/bin/bash"         24 minutes ago      Exited (130) 6 minutes ago                       jolly_cray
155f4b0764b1        ubuntu:16.04        "/bin/bash"         2 hours ago         Up About an hour                                 zen_volhard
vskumar@ubuntu:~$ 
===================== Note there are two containers created  ====>
Now, I want to remove one container :
==========>

vskumar@ubuntu:~$ sudo docker rm 3484664d454a
3484664d454a
vskumar@ubuntu:~$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
155f4b0764b1        ubuntu:16.04        "/bin/bash"         3 hours ago         Up About an hour                        zen_volhard
vskumar@ubuntu:~$ 
========================>

Now let us check the docker images how many we have in our store :
=========== List of images ==========>
vskumar@ubuntu:~$ 
vskumar@ubuntu:~$ sudo docker images
REPOSITORY                           TAG                 IMAGE ID            CREATED             SIZE
docker-exercise/ubuntu-wgetinstall   latest              e34304119838        5 minutes ago       169MB
<none>                               <none>              fc7e4564eb92        7 minutes ago       169MB
hello-world                          latest              f2a91732366c        5 days ago          1.85kB
ubuntu                               16.04               20c44cd7596f        8 days ago          123MB
ubuntu                               latest              20c44cd7596f        8 days ago          123MB
busybox                              latest              6ad733544a63        3 weeks ago         1.13MB
busybox                              1.24                47bcc53f74dc        20 months ago       1.11MB
vskumar@ubuntu:~$ 

==============================>
How to remove images:

by using :

sudo docker rmi image [image id], we can remove the image. For example; if you want to remove the image id:
47bcc53f74dc
you can use: $ sudo docker rmi image 47bcc53f74dc
=================>
vskumar@ubuntu:~$ sudo docker rmi image 47bcc53f74dc
Untagged: busybox:1.24
Untagged: busybox@sha256:8ea3273d79b47a8b6d018be398c17590a4b5ec604515f416c5b797db9dde3ad8
Deleted: sha256:47bcc53f74dc94b1920f0b34f6036096526296767650f223433fe65c35f149eb
Deleted: sha256:f6075681a244e9df4ab126bce921292673c9f37f71b20f6be1dd3bb99b4fdd72
Deleted: sha256:1834950e52ce4d5a88a1bbd131c537f4d0e56d10ff0dd69e66be3b7dfa9df7e6
Error: No such image: image
vskumar@ubuntu:~$ 
=================>
 

So by using :

sudo docker rmi image [image id], we can remove the image.  Just recollect the difference between the image removal and container removal. For containers removal refer to my blog on "Housekeeping containers". Now we have learned how to create an image from containers using a few easy steps by installing the wget application. You can also add some other software applications to the same or different container(s) in the similar way.

You can use this method for testing also.  Let us say, you want to test a set of java programs. Then you need to install jdk and copy your programs. Write a shell script to compile and execute the programs by piping their output into a text file in a Linux background. So this way, you will be using the container as a test environment also.

The most easy and recommended way of creating an image is to use the Dockerfile method.

Within dockerfile we can mention the setup required to build a container through different steps. Then dockerfile creates the required setup for a container, under docker’s building activity.

We will see it in future exercises.

Please leave your feedback!

Vcard-Shanthi Kumar V-v39. DevOps: How to do Containers housekeeping ?

9. DevOps: How to do Containers housekeeping ?

Docker-logo

In  continuation of my previous blog on “8. DevOps:How to control and operate docker containers”, in this blog I would like to show some lab practice on “docker Containers housekeeping”.

From the previous lab sessions, we have seen many containers when we used ps -a option.

We have used two containers most of the times.

Others are not required. This time we will see how to remove a container physically.

Let us consider the below containers to remove using rm command:

32bc16b508d4        ubuntu 
a744246ffb8e        hello-world
1dd55efde43f        hello-world

$sudo docker rm 1dd55efde43f 
$sudo docker rm a744246ffb8e 
$sudo docker rm 32bc16b508d4 
================ You can see the above three containers are removed =========>
vskumar@ubuntu:~$ sudo docker rm 1dd55efde43f 
1dd55efde43f
vskumar@ubuntu:~$ sudo docker rm a744246ffb8e 
a744246ffb8e
vskumar@ubuntu:~$ sudo docker rm 32bc16b508d4 
32bc16b508d4
vskumar@ubuntu:~$ sudo docker ps -a |more
CONTAINER ID        IMAGE               COMMAND                 CREATED         
    STATUS                         PORTS               NAMES
f123dbd09116        ubuntu:16.04        "/bin/bash"             18 minutes ago  
    Exited (0) 18 minutes ago                          elastic_nightingale
3cfdea29ce6e        ubuntu              "bash"                  27 minutes ago  
    Exited (0) 26 minutes ago                          gallant_nobel
155f4b0764b1        ubuntu:16.04        "/bin/bash"             About an hour ag
o   Exited (0) 12 minutes ago                          zen_volhard
11e293722c64        ubuntu:16.04        "/bin/bash"             About an hour ag
o   Exited (0) About an hour ago                       dreamy_bassi
d10ad2bd62f7        ubuntu:16.04        "/bin/bash"             About an hour ag
o   Exited (0) About an hour ago                       cranky_dijkstra
cb1ff260d48e        ubuntu              "ls /usr/src"           11 hours ago    
    Exited (0) 11 hours ago                            wonderful_hawking
b20691fd8fb5        ubuntu              "ls /usr"               11 hours ago    
    Exited (0) 11 hours ago                            friendly_mirzakhani
431ba4c53028        ubuntu              "ls"                    11 hours ago    
    Exited (0) 28 minutes ago                          affectionate_nobel
2c31684bb1f4        ubuntu              "ls -la"                11 hours ago    
    Exited (0) 11 hours ago                            zealous_meitner
fe2e3b449daf        ubuntu              "ls -la /home/."        11 hours ago    
    Exited (0) 11 hours ago                            dreamy_shirley
c44bdd05b94d        ubuntu              "ls -la home."          11 hours ago    
    Exited (2) 11 hours ago                            elastic_pasteur
8b8afa82859a        ubuntu              "ls -la"                11 hours ago    
    Exited (0) 11 hours ago                            festive_panini
2811eb37af61        ubuntu              "ls -la 604831dbce2a"   11 hours ago    
    Exited (2) 11 hours ago                            jolly_swartz
604831dbce2a        ubuntu:16.04        "/bin/bash"             11 hours ago    
    Exited (0) 11 hours ago                            vibrant_ride
718636415a7f        ubuntu:16.04        "/bin/bash"             12 hours ago    
    Exited (0) 12 hours ago                            reverent_noyce
53a7751d4673        ubuntu:16.04        "/bin/bash"             13 hours ago    
    Exited (0) 13 hours ago                            musing_chandrasekhar
1ba71598b7b8        hello-world         "/hello"                16 hours ago    
    Exited (0) 16 hours ago                            musing_kare
vskumar@ubuntu:~$  
==============>
Now let us consider some more examples  as below:
3cfdea29ce6e        ubuntu 
cb1ff260d48e        ubuntu 
b20691fd8fb5        ubuntu 
431ba4c53028        ubuntu 
c31684bb1f4        ubuntu 
2c31684bb1f4        ubuntu 
fe2e3b449daf        ubuntu
c44bdd05b94d        ubuntu 
2811eb37af61        ubuntu
Now, let us use the below rm commands:
$sudo docker rm 3cfdea29ce6e
$sudo docker rm cb1ff260d48e
$sudo docker rm b20691fd8fb5 
$sudo docker rm 431ba4c53028 
$sudo docker rm 2c31684bb1f4
$sudo docker rm fe2e3b449daf 
$sudo docker rm c44bdd05b94d
$sudo docker rm 2811eb37af61
=================>
See the below output also:
 ================== Container removal ==========>
vskumar@ubuntu:~$ clear

vskumar@ubuntu:~$ sudo docker rm 3cfdea29ce6e
3cfdea29ce6e
vskumar@ubuntu:~$ sudo docker rm cb1ff260d48e
cb1ff260d48e
vskumar@ubuntu:~$ sudo docker rm b20691fd8fb5
b20691fd8fb5
vskumar@ubuntu:~$ sudo docker rm 431ba4c53028
431ba4c53028
vskumar@ubuntu:~$ sudo docker rm 2c31684bb1f4
2c31684bb1f4
vskumar@ubuntu:~$ sudo docker rm fe2e3b449daf
fe2e3b449daf
vskumar@ubuntu:~$ sudo docker rm fc44bdd05b94d
Error: No such container: fc44bdd05b94d
vskumar@ubuntu:~$ sudo docker rm c44bdd05b94d
c44bdd05b94d
vskumar@ubuntu:~$ sudo docker rm 2811eb37af61
2811eb37af61
vskumar@ubuntu:~$ 
==========================>
Now we can see the list of available containers:
============= List of latest containers ==============>
vskumar@ubuntu:~$ sudo docker ps -a |more
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                         PORTS               NAMES
f123dbd09116        ubuntu:16.04        "/bin/bash"         28 minutes ago      Exited (0) 28 minutes ago                          elastic_nigh
tingale
155f4b0764b1        ubuntu:16.04        "/bin/bash"         About an hour ago   Exited (0) 22 minutes ago                          zen_volhard
11e293722c64        ubuntu:16.04        "/bin/bash"         About an hour ago   Exited (0) About an hour ago                       dreamy_bassi
d10ad2bd62f7        ubuntu:16.04        "/bin/bash"         2 hours ago         Exited (0) About an hour ago                       cranky_dijks
tra
8b8afa82859a        ubuntu              "ls -la"            11 hours ago        Exited (0) 11 hours ago                            festive_pani
ni
604831dbce2a        ubuntu:16.04        "/bin/bash"         12 hours ago        Exited (0) 11 hours ago                            vibrant_ride
718636415a7f        ubuntu:16.04        "/bin/bash"         12 hours ago        Exited (0) 12 hours ago                            reverent_noy
ce
53a7751d4673        ubuntu:16.04        "/bin/bash"         13 hours ago        Exited (0) 13 hours ago                            musing_chand
rasekhar
1ba71598b7b8        hello-world         "/hello"            16 hours ago        Exited (0) 16 hours ago                            musing_kare
vskumar@ubuntu:~$ 
===========================>
Now, I wan to keep very few containers only and remove the below containers:

604831dbce2a        ubuntu:16.04
718636415a7f        ubuntu:16.04 
53a7751d4673        ubuntu:16.04
8b8afa82859a        ubuntu 
I want to use the below  commands to remove  the above containers:
$sudo docker rm 604831dbce2a
$sudo docker rm 718636415a7f
$sudo docker rm 53a7751d4673
$sudo docker rm 8b8afa82859a

========================= We can see the latest/limited containers =======>
vskumar@ubuntu:~$ sudo docker rm 604831dbce2a
604831dbce2a
vskumar@ubuntu:~$ sudo docker rm 718636415a7f
718636415a7f
vskumar@ubuntu:~$ sudo docker rm 53a7751d4673
53a7751d4673
vskumar@ubuntu:~$ sudo docker rm 8b8afa82859a
8b8afa82859a
vskumar@ubuntu:~$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                         PORTS               NAMES
f123dbd09116        ubuntu:16.04        "/bin/bash"         36 minutes ago      Exited (0) 36 minutes ago                          elastic_nightingale
155f4b0764b1        ubuntu:16.04        "/bin/bash"         About an hour ago   Exited (0) 30 minutes ago                          zen_volhard
11e293722c64        ubuntu:16.04        "/bin/bash"         About an hour ago   Exited (0) About an hour ago                       dreamy_bassi
d10ad2bd62f7        ubuntu:16.04        "/bin/bash"         2 hours ago         Exited (0) About an hour ago                       cranky_dijkstra
1ba71598b7b8        hello-world         "/hello"            16 hours ago        Exited (0) 16 hours ago                            musing_kare
vskumar@ubuntu:~$ sudo docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
vskumar@ubuntu:~$ 
================================>
We can also see the current container ids as below:
========== Listing containers ids ===============>
vskumar@ubuntu:~$ sudo docker ps -aq
f123dbd09116
155f4b0764b1
11e293722c64
d10ad2bd62f7
1ba71598b7b8
vskumar@ubuntu:~$ 
===============================>
To remove the inactive containers there is a prune command. Let us try with it.
Before doing it I want to make a container active and try this prune command on it:
================= I have made one container Active ======>
vskumar@ubuntu:~$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                         PORTS               NAMES
f123dbd09116        ubuntu:16.04        "/bin/bash"         About an hour ago   Exited (0) About an hour ago                       elastic_nightingale
155f4b0764b1        ubuntu:16.04        "/bin/bash"         2 hours ago         Exited (0) 40 minutes ago                          zen_volhard
11e293722c64        ubuntu:16.04        "/bin/bash"         2 hours ago         Exited (0) 2 hours ago                             dreamy_bassi
d10ad2bd62f7        ubuntu:16.04        "/bin/bash"         2 hours ago         Exited (0) 2 hours ago                             cranky_dijkstra
1ba71598b7b8        hello-world         "/hello"            17 hours ago        Exited (0) 17 hours ago                            musing_kare
vskumar@ubuntu:~$ sudo docker start 155f4b0764b1
155f4b0764b1
vskumar@ubuntu:~$ sudo docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
155f4b0764b1        ubuntu:16.04        "/bin/bash"         2 hours ago         Up 6 seconds                            zen_volhard
vskumar@ubuntu:~$ 
========================>
To use prune , below format should be used:
$ sudo docker container prune
=========== The usage of prune command =======>
vskumar@ubuntu:~$ 
vskumar@ubuntu:~$ sudo docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Deleted Containers:
f123dbd09116561a042e12060f449daa9a36d9a59034b1dd1b96846e66ead14d
11e293722c646a0def7a8a1f2cdf85a47654eb62ef7701bd2d7221c7e69a943f
d10ad2bd62f7a8de379272f21dfccec89c0e5829b3a58ce01927530b6b44ea01
1ba71598b7b8d97fcbd3a589a6665238690be99936b6782647b5040eeb82aafa
Total reclaimed space: 844B
vskumar@ubuntu:~$ 
========== You can see the removed container ids =============>
You can see the existing  containers:
====== Available containers after Housekeeping is done =========>
vskumar@ubuntu:~$ 
vskumar@ubuntu:~$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
155f4b0764b1        ubuntu:16.04        "/bin/bash"         2 hours ago         Up 6 minutes                            zen_volhard
vskumar@ubuntu:~$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
155f4b0764b1        ubuntu:16.04        "/bin/bash"         2 hours ago         Up 6 minutes                            zen_volhard
vskumar@ubuntu:~$ sudo docker ps -aq
155f4b0764b1
vskumar@ubuntu:~$
===================>
In this exercise we have seen the housekeeping of containers well.
Please note if you have deleted all the containers by mistake, you need to install the containers again. 
Follow the containers creation exercise.

I would like to break this session at this point. In the next blog I would like to present the lab practice on:

 “How to Build images from Docker containers?

Vcard-Shanthi Kumar V


					

8. DevOps:How to control and operate docker containers

Docker-logo

In  continuation of my previous blog on “7. DevOps: How to track changes in a container”, in this blog I would like to show some lab practice “How to control and operate docker containers”.

Controlling/operating Docker container:

In this exercise initially, we can see on how to start/stop/restart the containers.

The Docker Engine enables us to start, stop, and restart a container with a set of docker subcommands.

Let me display the docker images:

=======================>

vskumar@ubuntu:~$ sudo service docker status

docker.service – Docker Application Container Engine

Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: e

Active: active (running) since Sat 2017-11-25 15:09:35 PST; 2min 24s ago

Docs: https://docs.docker.com

Main PID: 1356 (dockerd)

Tasks: 30

Memory: 95.2M

CPU: 3.998s

=========================>

vskumar@ubuntu:~$ sudo docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

hello-world latest f2a91732366c 4 days ago 1.85kB

ubuntu 16.04 20c44cd7596f 8 days ago 123MB

ubuntu latest 20c44cd7596f 8 days ago 123MB

busybox latest 6ad733544a63 3 weeks ago 1.13MB

busybox 1.24 47bcc53f74dc 20 months ago 1.11MB

vskumar@ubuntu:~$

=======================>

Now, I want to launch our container ubuntu 16.04 with start subcommand and experiment with the docker stop subcommand, as given below:

$ sudo docker run -i -t ubuntu:16.04 /bin/bash

======================>
vskumar@ubuntu:~$ 
vskumar@ubuntu:~$ sudo docker run -i -t ubuntu:16.04 /bin/bash
root@d10ad2bd62f7:/# 
======================>
Now, we are with this container in interactive mode.
Let us apply some linux commands as below:
========================>
root@d10ad2bd62f7:/# pwd
/
root@d10ad2bd62f7:/# ls
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr
root@d10ad2bd62f7:/# cd home
root@d10ad2bd62f7:/home# ls
root@d10ad2bd62f7:/home# cd ../var
root@d10ad2bd62f7:/var# ls
backups  cache  lib  local  lock  log  mail  opt  run  spool  tmp
root@d10ad2bd62f7:/var# cd tmp
root@d10ad2bd62f7:/var/tmp# pwd
/var/tmp
root@d10ad2bd62f7:/var/tmp# ls
root@d10ad2bd62f7:/var/tmp# cd ../lib
root@d10ad2bd62f7:/var/lib# ls
apt  dpkg  initscripts  insserv  misc  pam  systemd  update-rc.d  urandom
root@d10ad2bd62f7:/var/lib# 
================================>

Now I want to create a file as below in this container:
==================>

root@d10ad2bd62f7:/var/lib# pwd
/var/lib
root@d10ad2bd62f7:/var/lib# cd ../../home
root@d10ad2bd62f7:/home# ls
root@d10ad2bd62f7:/home# touch file1.txt
===================>

Let me add some text into this file as below:
==========>
root@d10ad2bd62f7:/home# echo " Testing containers " > file1.txt
root@d10ad2bd62f7:/home# echo " Applying stop command on containers " > file1.txt
root@d10ad2bd62f7:/home# cat file1.txt
 Applying stop command on containers 
root@d10ad2bd62f7:/home# echo " Testing containers " > file1.txtroot@d10ad2bd62f7:/home# echo " Applying stop command on containers " >> file1.txt
root@d10ad2bd62f7:/home# ls
file1.txt
root@d10ad2bd62f7:/home# ls -l
total 4
-rw-r--r-- 1 root root 59 Nov 25 23:20 file1.txt
root@d10ad2bd62f7:/home# cat file1.txt 
Testing containers 
Applying stop command on containers 
root@d10ad2bd62f7:/home# 
===============>

I have applied some more linux file operations on this container as below:
=================>
root@d10ad2bd62f7:/home#      
root@d10ad2bd62f7:/home# cat file1.txt >> file2.txt
root@d10ad2bd62f7:/home# ls
file1.txt  file2.txt
root@d10ad2bd62f7:/home# ls -l
total 8
-rw-r--r-- 1 root root 59 Nov 25 23:20 file1.txt
-rw-r--r-- 1 root root 59 Nov 25 23:22 file2.txt
root@d10ad2bd62f7:/home# diff file1.txt file2.txt
root@d10ad2bd62f7:/home# echo " Applying restart command also on containers " >> file1.txt
root@d10ad2bd62f7:/home# ls -l
total 8
-rw-r--r-- 1 root root 105 Nov 25 23:23 file1.txt
-rw-r--r-- 1 root root  59 Nov 25 23:22 file2.txt
root@d10ad2bd62f7:/home# diff file1.txt file2.txt3d2
<  Applying restart command also on containers 
root@d10ad2bd62f7:/home# 
====================>
Now, let me apply a stop command on this container and see as 
below by using exit to come out and stop:
=====================>
root@155f4b0764b1:/# 
root@155f4b0764b1:/# exit
exit
vskumar@ubuntu:~$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              f2a91732366c        4 days ago          1.85kB
ubuntu              16.04               20c44cd7596f        8 days ago          123MB
ubuntu              latest              20c44cd7596f        8 days ago          123MB
busybox             latest              6ad733544a63        3 weeks ago         1.13MB
busybox             1.24                47bcc53f74dc        20 months ago       1.11MB
vskumar@ubuntu:~$ sudo docker stop  d10ad2bd62f7
d10ad2bd62f7
vskumar@ubuntu:~$ 
=============>
Now, I want to check the containers status using ps -a command as below:
==============>
vskumar@ubuntu:~$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                 CREATED             STATUS                     PORTS               NAMES
155f4b0764b1        ubuntu:16.04        "/bin/bash"             2 minutes ago       Exited (0) 2 minutes ago                       zen_volhard
cb1ff260d48e        ubuntu              "ls /usr/src"           10 hours ago        Exited (0) 10 hours ago                        wonderful_hawking
b20691fd8fb5        ubuntu              "ls /usr"               10 hours ago        Exited (0) 10 hours ago                        friendly_mirzakhani
431ba4c53028        ubuntu              "ls"                    10 hours ago        Exited (0) 10 hours ago                        affectionate_nobel
2c31684bb1f4        ubuntu              "ls -la"                10 hours ago        Exited (0) 10 hours ago                        zealous_meitner
fe2e3b449daf        ubuntu              "ls -la /home/."        10 hours ago        Exited (0) 10 hours ago                        dreamy_shirley
c44bdd05b94d        ubuntu              "ls -la home."          10 hours ago        Exited (2) 10 hours ago                        elastic_pasteur
8b8afa82859a        ubuntu              "ls -la"                10 hours ago        Exited (0) 10 hours ago                        festive_panini
2811eb37af61        ubuntu              "ls -la 604831dbce2a"   10 hours ago        Exited (2) 10 hours ago                        jolly_swartz
604831dbce2a        ubuntu:16.04        "/bin/bash"             10 hours ago        Exited (0) 10 hours ago                        vibrant_ride
718636415a7f        ubuntu:16.04        "/bin/bash"             11 hours ago        Exited (0) 10 hours ago                        reverent_noyce
53a7751d4673        ubuntu:16.04        "/bin/bash"             12 hours ago        Exited (0) 12 hours ago                        musing_chandrasekhar
32bc16b508d4        ubuntu              "bash"                  13 hours ago        Exited (0) 13 hours ago                        eager_goldberg
1dd55efde43f        hello-world         "/hello"                13 hours ago        Exited (0) 13 hours ago                        peaceful_pasteur
a744246ffb8e        hello-world         "/hello"                15 hours ago        Exited (0) 15 hours ago                        naughty_wing
1ba71598b7b8        hello-world         "/hello"                15 hours ago        Exited (0) 15 hours ago                        musing_kare
vskumar@ubuntu:~$ 
===================>
you can see the latest status of our container;
155f4b0764b1        ubuntu:16.04        "/bin/bash"             2 minutes ago       Exited (0) 2 minutes ago                       zen_volhard
It means Docker  maintains in the logs on the usage of containers also.
Now, I want to start the previously stopped container using the docker start subcommand 
by specifying the container ID as an argument, as follows:
$ sudo docker start 155f4b0764b1
===============>
vskumar@ubuntu:~$ sudo docker start 155f4b0764b1
155f4b0764b1
vskumar@ubuntu:~$ 
===============>
Let us check the images status also as below:
==================> Copied the 1st two lines only ----->
vskumar@ubuntu:~$ sudo docker ps -a |more
CONTAINER ID        IMAGE               COMMAND                 CREATED         
    STATUS                      PORTS               NAMES
155f4b0764b1        ubuntu:16.04        "/bin/bash"             10 minutes ago  
    Up About a minute                               zen_volhard
11e293722c64        ubuntu:16.04        "/bin/bash"             12 minutes ago  
    Exited (0) 12 minutes ago  
====================>
It means it shows the current status of the container id:155f4b0764b1 
We need to notice one thing here.

By default, the docker start subcommand will not attach to the container.

We can attach it to the container either using the -a option in the docker start subcommand or by explicitly using the docker attach subcommand.

Now let us try these options.

We will see attach command

$ sudo docker attach 155f4b0764b1
=================>
vskumar@ubuntu:~$ 
vskumar@ubuntu:~$ sudo docker attach 155f4b0764b1
root@155f4b0764b1:/# 
root@155f4b0764b1:/#
=================>
So the attach command brought the container into interactive mode.
Now let me exit it and try the -a option with docker start command:
==================>
root@155f4b0764b1:/home# 
root@155f4b0764b1:/home# exit
exit
===============>
with start -a option:
=============>
vskumar@ubuntu:~$ sudo docker start -a 155f4b0764b1
root@155f4b0764b1:/# 
=================>
After exit, I have tried ps command:
=====================>
vskumar@ubuntu:~$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
155f4b0764b1        ubuntu:16.04        "/bin/bash"         21 minutes ago      Up 3 minutes                            zen_volhard
vskumar@ubuntu:~$ 
======================>
From the above display you can see that its start and current status.
It means the container is active and running.
Now, I want to make another [below] container active.
1dd55efde43f        hello-world         "/hello"                13 hours ago Exited (0) 13 hours ago                        peaceful_pasteur
Let us see the ps command after these 2 containers are in active state.
I want to use the below command:
$ sudo docker start -a 1dd55efde43f
===================>
vskumar@ubuntu:~$ sudo docker start -a 1dd55efde43f

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

Let us  try something more ambitious, we can run an Ubuntu container with:
 $ docker run -it ubuntu bash

If you want to;
Share images, automate workflows, and more with a free Docker ID:
visit: https://cloud.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/

vskumar@ubuntu:~$ 
===================>
Please note the above container doesn't have a any os related process to 
keep running continuously. 
Just it displays the message only. Hence 
in the list it will not appear. 
Now, let me list the current processes using docker ps command:
===========>
vskumar@ubuntu:~$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
155f4b0764b1        ubuntu:16.04        "/bin/bash"         32 minutes ago      Up 14 minutes                           zen_volhard
vskumar@ubuntu:~$ 
==============>
So as on now one container is running.

The next set of container controlling subcommands are docker pause and docker unpause.

The docker pause subcommand will freeze the execution of all the processes within the container.

The docker unpause subcommand will unfreeze the execution of all the processes within the container and resume the execution from the point where it was frozen.

Let us try the below command 
$sudo docker pause 155f4b0764b1
========================>
vskumar@ubuntu:~$ 
vskumar@ubuntu:~$ sudo docker pause 155f4b0764b1
155f4b0764b1
vskumar@ubuntu:~$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                   PORTS               NAMES
155f4b0764b1        ubuntu:16.04        "/bin/bash"         About an hour ago   Up 30 minutes (Paused)                       zen_volhard
vskumar@ubuntu:~$ 
==========================>
You can see the current status as Paused.
Now let me try unpause command also.
$ sudo docker unpause 155f4b0764b1
You can see the total output of this container with pause and unpause statuses:
===================>
vskumar@ubuntu:~$ 
vskumar@ubuntu:~$ sudo docker pause 155f4b0764b1
155f4b0764b1
vskumar@ubuntu:~$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                   PORTS               NAMES
155f4b0764b1        ubuntu:16.04        "/bin/bash"         About an hour ago   Up 30 minutes (Paused)                       zen_volhard
vskumar@ubuntu:~$ ^C
vskumar@ubuntu:~$ sudo docker unpause 155f4b0764b1
155f4b0764b1
vskumar@ubuntu:~$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
155f4b0764b1        ubuntu:16.04        "/bin/bash"         About an hour ago   Up 32 minutes                           zen_volhard
vskumar@ubuntu:~$ 
======================>
Now, in this lab session finally we will use the stop command:

The container and the script running within it can be stopped using the docker stop subcommand, as shown below:

$ sudo docker stop 155f4b0764b1
=====================> 
vskumar@ubuntu:~$ sudo docker stop 155f4b0764b1
155f4b0764b1
vskumar@ubuntu:~$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED STATUS              PORTS               NAMES
=============== It shows there is no active container =============>
Now, let me try with -a and more options.
=========== Partial display is shown here upto the container ===========>
vskumar@ubuntu:~$ sudo docker ps -a |more
CONTAINER ID        IMAGE               COMMAND                 CREATED         
    STATUS                         PORTS               NAMES
f123dbd09116        ubuntu:16.04        "/bin/bash"             6 minutes ago   
    Exited (0) 5 minutes ago                           elastic_nightingale
3cfdea29ce6e        ubuntu              "bash"                  14 minutes ago  
    Exited (0) 14 minutes ago                          gallant_nobel
155f4b0764b1        ubuntu:16.04        "/bin/bash"             About an hour ag
o   Exited (0) 17 seconds ago  
================================>

So far in this lab session, we have seen the differences of different commands to operate and control the containers. I would like to break this session for now. In the next blog we will see on how to manage “Housekeeping containers“.

 Vcard-Shanthi Kumar V

 

DevOps Practices & FAQs -1

Do you think Agile practices are mandatory to implement DevOps Practices ?

Yes, Agile practices bring Continuous delivery [CD] of business requirements through SPRINT. Then these will be converted into different software code and infrastructure. These will be verified and deployed into the production systems.

Fundamental process of SPRINT is; if user gives a requirement to product owner; it will

be decomposed into small chunks of requirements and they will be considered into different SPRINTs [a set of Small technical requirements, where these can be fixed or enhanced in few hours; ex: include or update a formula] and will be presented for verification.

When the DevOps practices are getting implemented; these SPRINTs can be considered to deploy into different technical environments for validating the build and in turn they will be qualified to move into production. This  is an ongoing process by following Continuous Delivery integration [CDI] of Agile. If many developers are there in a Business unit there can be many builds and the users do not need to wait for all of them to complete. The CD can happen. So whichever is completed first it should be delivered. During the CDI the DevOps engineers role is to package the software code and deploy the builds for verification and later on to production. In their activity journey  many tasks can be repeatable. This repeatable activity can be automated with the So called DevOps tools to save manual efforts. This can reduce the deployment cycle time and at the same time total SPRINT delivery time reduction can happen. So the business benefit can be achieved, by pushing the build of specific user requirement faster.

With all the above, without having Agile practices, you can not jump into DevOps practices right away. The people practices on Agile is also very essential.

So if your organization is not having Agile practices in place there is no point of thinking DevOps practices. This can come under old IT tradition.

Look into the below videos on the importance and advantages of DevOps conversion to an IT Company:

https://www.youtube.com/watch?v=O3yBGbPQ4SM

 

https://www.youtube.com/watch?v=9engYBrnwA4

https://www.youtube.com/watch?v=O_SxF3hJjUM

Below image can denote the transition of IT development cycles till DevOps practice with continuous operation [automated]:

 

DevOps Movement

 

https://youtu.be/vpgi5zZd6bs

https://www.youtube.com/watch?v=WrMQxZQxx4I

Visit for next series of DevOps FAQs: https://wordpress.com/post/vskumar.blog/1684

Visit for series of Agile interview questions:

https://vskumar.blog/2017/09/04/sdlc-agile-interview-questions-for-freshers-1/

 

Also, Look into some more FAQs:

https://vskumar.blog/2018/12/29/devops-practices-faqs-2-devops-practices-faqs/

https://vskumar.blog/2019/02/01/devops-practices-faqs-3-domain-area/

7. DevOps: How to track changes in a container

Docker-logo

In  continuation of my previous blog on “6. DevOps: How to work with interactive docker containers”, in this blog I would like to show some lab practice “How to track changes in a container”.

Tracking changes inside containers:

Now, let us see the container operations and tracking them.

Let’s launch a container in interactive mode, as we have done in previous session, we can use the below command.

$ sudo docker run -i -t ubuntu:16.04 /bin/bash 
=================>
vskumar@ubuntu:/var/log$ sudo docker run -i -t ubuntu:16.04 /bin/bash  
root@718636415a7f:/# ps
   PID TTY          TIME CMD
     1 pts/0    00:00:00 bash
     9 pts/0    00:00:00 ps
root@718636415a7f:/# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 12:39 pts/0    00:00:00 /bin/bash
root         10      1  0 12:53 pts/0    00:00:00 ps -ef
root@718636415a7f:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@718636415a7f:/# 
======================>
Now, let us go to home directory:
========>
root@718636415a7f:/# pwd
/
root@718636415a7f:/# cd home
root@718636415a7f:/home# pwd
/home
root@718636415a7f:/home# ls
root@718636415a7f:/home# 
==============>
Now, as a standalone machine of this docker container, 
I want to create 4 text files using touch command as below:
==============>
root@718636415a7f:/home# ls
root@718636415a7f:/home# ls -l
total 0
root@718636415a7f:/home# touch {vsk1,vsk2,vsk3,vsk4}
root@718636415a7f:/home# ls -l
total 0
-rw-r--r-- 1 root root 0 Nov 25 12:57 vsk1
-rw-r--r-- 1 root root 0 Nov 25 12:57 vsk2
-rw-r--r-- 1 root root 0 Nov 25 12:57 vsk3
-rw-r--r-- 1 root root 0 Nov 25 12:57 vsk4
root@718636415a7f:/home# 
======================>

I am adding some text to each of them as below:

====================>

root@718636415a7f:/home# pwd

/home

root@718636415a7f:/home# echo ‘Testing vsk1’ > vsk1

root@718636415a7f:/home# ls -l

total 4

-rw-r–r– 1 root root 13 Nov 25 13:02 vsk1

-rw-r–r– 1 root root 0 Nov 25 12:57 vsk2

-rw-r–r– 1 root root 0 Nov 25 12:57 vsk3

-rw-r–r– 1 root root 0 Nov 25 12:57 vsk4

root@718636415a7f:/home# echo ‘Testing vsk2’ > vsk2

root@718636415a7f:/home# echo ‘Testing vsk3’ > vsk3

root@718636415a7f:/home# echo ‘NOT Testing vsk4’ > vsk4

root@718636415a7f:/home# ls -l

total 16

-rw-r–r– 1 root root 13 Nov 25 13:02 vsk1

-rw-r–r– 1 root root 13 Nov 25 13:02 vsk2

-rw-r–r– 1 root root 13 Nov 25 13:02 vsk3

-rw-r–r– 1 root root 17 Nov 25 13:02 vsk4

root@718636415a7f:/home#

=====================>

I have created 4 files and added some text into them.

Now, I want to execute a diff command on them:

==========================>

root@718636415a7f:/home# diff vsk1 vsk2

1c1

< Testing vsk1

> Testing vsk2

root@718636415a7f:/home# diff vsk2 vsk3

1c1

< Testing vsk2

> Testing vsk3

root@718636415a7f:/home# echo ‘NOT Testing vsk4’ > vsk1

root@718636415a7f:/home# diff vsk1 vsk4

root@718636415a7f:/home# diff vsk2 vsk4

1c1

< Testing vsk2

> NOT Testing vsk4

root@718636415a7f:/home#

===========================>

Now, I want to exit this container and go back to docker host.

I have detached it using exit.

And back to docker host.

Now, I want to use the diff command as below from host machine to the container:

===========================>

root@718636415a7f:/home# ls -l

total 16

-rw-r–r– 1 root root 17 Nov 25 13:05 vsk1

-rw-r–r– 1 root root 13 Nov 25 13:02 vsk2

-rw-r–r– 1 root root 13 Nov 25 13:02 vsk3

-rw-r–r– 1 root root 17 Nov 25 13:02 vsk4

root@718636415a7f:/home# exit

exit

vskumar@ubuntu:/var/log$ sudo docker diff 718636415a7f

[sudo] password for vskumar:

C /home

A /home/vsk1

A /home/vsk2

A /home/vsk3

A /home/vsk4

C /root

A /root/.bash_history

vskumar@ubuntu:/var/log$

=====================>

The 1st line ‘C /home’ shows; the home directory is modified by showing ‘C’ as changed.

The ‘A’ shows;  before each line denotes the file is added.

If you have a deleted file, it can show as ‘D’ before the file.

Also please let us note here on how docker engine picks up the image with the below priority;

When we work with an image and if we don’t specify that image name, then the latest image (recently generated) will be identified and used by the Docker Engine.

We can check the status of the containers as below using ps -a:

You can see a detailed output from this command from the below display:

==================================>

vskumar@ubuntu:/var/log$ ls

alternatives.log bootstrap.log dmesg fsck kern.log speech-dispatcher unattended-upgrades wtmp

apport.log btmp dpkg.log gpu-manager.log lastlog syslog upstart Xorg.0.log

apt cups faillog hp lightdm syslog.1 vmware Xorg.0.log.old

auth.log dist-upgrade fontconfig.log installer samba syslog.2.gz vmware-vmsvc.log

vskumar@ubuntu:/var/log$ sudo docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

cb1ff260d48e ubuntu “ls /usr/src” 3 minutes ago Exited (0) 3 minutes ago wonderful_hawking

b20691fd8fb5 ubuntu “ls /usr” 3 minutes ago Exited (0) 3 minutes ago friendly_mirzakhani

431ba4c53028 ubuntu “ls” 3 minutes ago Exited (0) 3 minutes ago affectionate_nobel

2c31684bb1f4 ubuntu “ls -la” 3 minutes ago Exited (0) 3 minutes ago zealous_meitner

fe2e3b449daf ubuntu “ls -la /home/.” 4 minutes ago Exited (0) 4 minutes ago dreamy_shirley

c44bdd05b94d ubuntu “ls -la home.” 4 minutes ago Exited (2) 4 minutes ago elastic_pasteur

8b8afa82859a ubuntu “ls -la” 4 minutes ago Exited (0) 4 minutes ago festive_panini

2811eb37af61 ubuntu “ls -la 604831dbce2a” 4 minutes ago Exited (2) 4 minutes ago jolly_swartz

604831dbce2a ubuntu:16.04 “/bin/bash” 8 minutes ago Exited (0) 6 minutes ago vibrant_ride

718636415a7f ubuntu:16.04 “/bin/bash” 45 minutes ago Exited (0) 18 minutes ago reverent_noyce

53a7751d4673 ubuntu:16.04 “/bin/bash” 2 hours ago Exited (0) 2 hours ago musing_chandrasekhar

32bc16b508d4 ubuntu “bash” 3 hours ago Exited (0) 3 hours ago eager_goldberg

1dd55efde43f hello-world “/hello” 3 hours ago Exited (0) 3 hours ago peaceful_pasteur

a744246ffb8e hello-world “/hello” 5 hours ago Exited (0) 5 hours ago naughty_wing

1ba71598b7b8 hello-world “/hello” 5 hours ago Exited (0) 5 hours ago musing_kare

vskumar@ubuntu:/var/log$

============================>

I would like to terminate the session at this point. In the next blog I would like to present “How to control and operate docker containers”.

Vcard-Shanthi Kumar V-v3

https://youtu.be/IlPhLm_2se4

6. DevOps: How to work with interactive Docker containers

Docker-logo

In  continuation of my previous blog on “5. DevOps: How to work with Docker Images”, in this blog I would like to show some lab practice on Interactive Docker containers.

Working with an interactive Docker container:

In the previous lab session, we worked with first Hello World container. And we came to know how the containerization works. Now, we are going to run a container in interactive mode.

What is docker run command ?:

The docker run subcommand takes an image as an input and launches it as a container.

What flags we need to use ?:

We have to pass the -t and -i flags to the docker run subcommand in order to make the container interactive.

The -i flag is the key driver, it makes the container interactive by grabbing the standard input (STDIN) of the container into the terminal.

The -t flag allocates a pseudo-TTY or a pseudo Terminal (Terminal emulator) and then assigns that to the container.

Note: Please note in the earlier session we have executed a container on unbuntu name.

But now, we will explore completely the interactive container operations.

In the below example, we are going to launch an interactive container using the ubuntu:16.04 image and /bin/bash as the command:

$ sudo docker run -i -t ubuntu:16.04 /bin/bash 

=========== Output ============>

vskumar@ubuntu:/var/log$ sudo docker run -i -t ubuntu:16.04 /bin/bash

Unable to find image ‘ubuntu:16.04’ locally

16.04: Pulling from library/ubuntu

Digest: sha256:7c67a2206d3c04703e5c23518707bdd4916c057562dd51c74b99b2ba26af0f79

Status: Downloaded newer image for ubuntu:16.04

root@53a7751d4673:/#

===================>

Why the error messages [Unable to find image] appear ?:

As the ubuntu 16.04 image is not downloaded yet, we get the above message and with the docker run command it will start pulling the ubuntu 16.04 image automatically with following message:

Unable to find image 'ubuntu:16.04' locally
16.04: Pulling from library/ubuntu

When the download is completed, the container will get launched along with the ubuntu:16.04 image.

It will also launch a Bash shell within the container, because we have specified /bin/bash as the command to be executed. This landed us in a Bash prompt, as shown below:

root@53a7751d4673:/#

What is ’53a7751d4673′?:

It is the hostname of the container. In Docker, the hostname is the same as the container ID.

Now, let us run a few commands interactively and confirm what we mentioned about the prompt is correct, as shown below:

To check the hostname below commands need to be executed:

root@53a7751d4673:/# hostname

root@53a7751d4673:/# id

root@53a7751d4673:/# echo $PS1

When we execute them, can see the below output:

==============>

root@53a7751d4673:/#

root@53a7751d4673:/# hostname

53a7751d4673

root@53a7751d4673:/# id

uid=0(root) gid=0(root) groups=0(root)

root@53a7751d4673:/# echo $PS1

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$

root@53a7751d4673:/#

=====================>

So, we have seen the Host name as ’53a7751d4673′.

Id as ‘root ‘

Using ‘PS1’, —>Displays username, hostname and current working directory in the prompt.

PS1 in this example displays the following three information in the prompt:

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$

  • \u – Username
  • \h – Hostname
  • \w – Full path of the current working directory

==============>

root@53a7751d4673:/# pwd

/

root@53a7751d4673:/#

==========>

Note, we are within the ubuntu 16.04 container and it works as Linux machine. So we can try some Linux commands also:

===============>

root@53a7751d4673:/# ps

PID TTY TIME CMD

1 pts/0 00:00:00 bash

26 pts/0 00:00:00 ps

root@53a7751d4673:/# ps -ef

UID PID PPID C STIME TTY TIME CMD

root 1 0 0 11:28 pts/0 00:00:00 /bin/bash

root 27 1 0 11:48 pts/0 00:00:00 ps -ef

root@53a7751d4673:/#

root@53a7751d4673:/# ls

bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

root@53a7751d4673:/# ls -l

total 64

drwxr-xr-x 2 root root 4096 Nov 14 13:49 bin

drwxr-xr-x 2 root root 4096 Apr 12 2016 boot

drwxr-xr-x 5 root root 360 Nov 25 11:28 dev

drwxr-xr-x 45 root root 4096 Nov 25 11:28 etc

drwxr-xr-x 2 root root 4096 Apr 12 2016 home

drwxr-xr-x 8 root root 4096 Sep 13 2015 lib

drwxr-xr-x 2 root root 4096 Nov 14 13:49 lib64

drwxr-xr-x 2 root root 4096 Nov 14 13:48 media

drwxr-xr-x 2 root root 4096 Nov 14 13:48 mnt

drwxr-xr-x 2 root root 4096 Nov 14 13:48 opt

dr-xr-xr-x 250 root root 0 Nov 25 11:28 proc

drwx—— 2 root root 4096 Nov 14 13:49 root

drwxr-xr-x 6 root root 4096 Nov 14 13:49 run

drwxr-xr-x 2 root root 4096 Nov 17 21:59 sbin

drwxr-xr-x 2 root root 4096 Nov 14 13:48 srv

dr-xr-xr-x 13 root root 0 Nov 25 11:28 sys

drwxrwxrwt 2 root root 4096 Nov 14 13:49 tmp

drwxr-xr-x 11 root root 4096 Nov 14 13:48 usr

drwxr-xr-x 13 root root 4096 Nov 14 13:49 var

root@53a7751d4673:/#

================>

So, ubuntu 16.04 container is nothing but a linux machine and we executed the above commands.

Now, I want to change the root permissions as below:

==============>

root@53a7751d4673:/# chmod +777 root

root@53a7751d4673:/# ls -l

total 64

drwxr-xr-x 2 root root 4096 Nov 14 13:49 bin

drwxr-xr-x 2 root root 4096 Apr 12 2016 boot

drwxr-xr-x 5 root root 360 Nov 25 11:28 dev

drwxr-xr-x 45 root root 4096 Nov 25 11:28 etc

drwxr-xr-x 2 root root 4096 Apr 12 2016 home

drwxr-xr-x 8 root root 4096 Sep 13 2015 lib

drwxr-xr-x 2 root root 4096 Nov 14 13:49 lib64

drwxr-xr-x 2 root root 4096 Nov 14 13:48 media

drwxr-xr-x 2 root root 4096 Nov 14 13:48 mnt

drwxr-xr-x 2 root root 4096 Nov 14 13:48 opt

dr-xr-xr-x 255 root root 0 Nov 25 11:28 proc

drwxrwxrwx 2 root root 4096 Nov 14 13:49 root

drwxr-xr-x 6 root root 4096 Nov 14 13:49 run

drwxr-xr-x 2 root root 4096 Nov 17 21:59 sbin

drwxr-xr-x 2 root root 4096 Nov 14 13:48 srv

dr-xr-xr-x 13 root root 0 Nov 25 11:48 sys

drwxrwxrwt 2 root root 4096 Nov 14 13:49 tmp

drwxr-xr-x 11 root root 4096 Nov 14 13:48 usr

drwxr-xr-x 13 root root 4096 Nov 14 13:49 var

root@53a7751d4673:/#

================>

Now, I want to exit from container and come back to host machine.

==================>

root@53a7751d4673:/#

root@53a7751d4673:/# exit

exit

vskumar@ubuntu:/var/log$

===============>

Whenever the Bash exit command is used in the interactive container, it will terminate the Bash shell process.

In turn it will stop the container and returns to the docker host machine.

As a result, we can see the Docker host’s prompt $


You can see the status of docker images as below when I used ‘sudo docker images’ :

==================>

vskumar@ubuntu:/var/log$

vskumar@ubuntu:/var/log$ sudo docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

hello-world latest f2a91732366c 4 days ago 1.85kB

ubuntu 16.04 20c44cd7596f 7 days ago 123MB

ubuntu latest 20c44cd7596f 7 days ago 123MB

busybox latest 6ad733544a63 3 weeks ago 1.13MB

busybox 1.24 47bcc53f74dc 20 months ago 1.11MB

vskumar@ubuntu:/var/log$

=====================>

You can see whatever containers; we have have used in the past exercises.

At this point, I would like to stop this lab session. And in the next blog we can see on “How to track changes in a container?”.

 

Vcard-Shanthi Kumar V

 

 

5. DevOps: How to work with Docker Images

Docker-logo

In  continuation of my previous blog on “4. DevOps: How to work with Docker Containers”, in this blog I would like to give some lab practice on Docker Images.

How to pull the docker public images ?:
Docker portal will have numerous images available  under public.
Now, there is a need for us to know the usage of docker pull command, which is the defacto command to download Docker images.

Now, in this section, we will use the busybox image, one of the smallest but a very handy Docker image, to dive deep into Docker image handling:
$sudo docker pull busybox
============= Output ============>
vskumar@ubuntu:/var/tmp$ sudo docker pull busybox
Using default tag: latest
latest: Pulling from library/busybox
0ffadd58f2a6: Pull complete
Digest: sha256:bbc3a03235220b170ba48a157dd097dd1379299370e1ed99ce976df0355d24f0
Status: Downloaded newer image for busybox:latest
vskumar@ubuntu:/var/tmp$
=================>
Sometimes it might reject this request. We need to keep on trying to get it. I tried 4 times at different timings to connect to it.
Please note now, we have three images as below through all of our so far exercises:
===================>
vskumar@ubuntu:/var/log$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest f2a91732366c 4 days ago 1.85kB
ubuntu latest 20c44cd7596f 7 days ago 123MB
busybox latest 6ad733544a63 3 weeks ago 1.13MB
vskumar@ubuntu:/var/log$
===============>
Now, let us stop the docker services and check the status as below:
=================>
vskumar@ubuntu:/var/log$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest f2a91732366c 4 days ago 1.85kB
ubuntu latest 20c44cd7596f 7 days ago 123MB
busybox latest 6ad733544a63 3 weeks ago 1.13MB
vskumar@ubuntu:/var/log$ sudo service docker stop
vskumar@ubuntu:/var/log$ sudo service docker status
● docker.service – Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: e
Active: inactive (dead) since Sat 2017-11-25 02:52:25 PST; 8s ago
Docs: https://docs.docker.com
Process: 1224 ExecStart=/usr/bin/dockerd -H fd:// (code=exited, status=0/SUCCE
Main PID: 1224 (code=exited, status=0/SUCCESS)
Nov 25 02:21:42 ubuntu dockerd[1224]: time=”2017-11-25T02:21:42.863518710-08:00″
Nov 25 02:21:43 ubuntu dockerd[1224]: time=”2017-11-25T02:21:43-08:00″ level=inf
Nov 25 02:27:08 ubuntu dockerd[1224]: time=”2017-11-25T02:27:08.010096274-08:00″
Nov 25 02:27:08 ubuntu dockerd[1224]: time=”2017-11-25T02:27:08-08:00″ level=inf
Nov 25 02:27:08 ubuntu dockerd[1224]: time=”2017-11-25T02:27:08.199685599-08:00″
Nov 25 02:52:25 ubuntu dockerd[1224]: time=”2017-11-25T02:52:25.010875880-08:00″
Nov 25 02:52:25 ubuntu systemd[1]: Stopping Docker Application Container Engine.
Nov 25 02:52:25 ubuntu dockerd[1224]: time=”2017-11-25T02:52:25.081714537-08:00″
Nov 25 02:52:25 ubuntu systemd[1]: Stopped Docker Application Container Engine.
Nov 25 02:52:25 ubuntu systemd[1]: Stopped Docker Application Container Engine.
vskumar@ubuntu:/var/log$
====================>
You can see the inactive status of docker.
In such cases, restart the Docker service, as shown here:

$ sudo service docker restart
You can see the output as below:
==================>
vskumar@ubuntu:/var/log$ sudo service docker restart
vskumar@ubuntu:/var/log$ sudo service docker status 
docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: e
   Active: active (running) since Sat 2017-11-25 02:54:42 PST; 6s ago
     Docs: https://docs.docker.com
 Main PID: 3769 (dockerd)
    Tasks: 18
   Memory: 24.6M
      CPU: 989ms
   CGroup: /system.slice/docker.service
           ├─3769 /usr/bin/dockerd -H fd://
           └─3778 docker-containerd --config /var/run/docker/containerd/containe

Nov 25 02:54:41 ubuntu dockerd[3769]: time="2017-11-25T02:54:41.159062708-08:00"
Nov 25 02:54:41 ubuntu dockerd[3769]: time="2017-11-25T02:54:41.159806997-08:00"
Nov 25 02:54:41 ubuntu dockerd[3769]: time="2017-11-25T02:54:41.163503112-08:00"
Nov 25 02:54:41 ubuntu dockerd[3769]: time="2017-11-25T02:54:41.743276580-08:00"
Nov 25 02:54:41 ubuntu dockerd[3769]: time="2017-11-25T02:54:41.955217284-08:00"
Nov 25 02:54:41 ubuntu dockerd[3769]: time="2017-11-25T02:54:41.975961283-08:00"
Nov 25 02:54:42 ubuntu dockerd[3769]: time="2017-11-25T02:54:42.092220161-08:00"
Nov 25 02:54:42 ubuntu dockerd[3769]: time="2017-11-25T02:54:42.094334663-08:00"
Nov 25 02:54:42 ubuntu systemd[1]: Started Docker Application Container Engine.
Nov 25 02:54:42 ubuntu dockerd[3769]: time="2017-11-25T02:54:42.190194886-08:00"

vskumar@ubuntu:/var/log$ 

========================>

Now, let us reconfirm the existing docker images as below:
================>

vskumar@ubuntu:/var/log$ ^C
vskumar@ubuntu:/var/log$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              f2a91732366c        4 days ago          1.85kB
ubuntu              latest              20c44cd7596f        7 days ago          123MB
busybox             latest              6ad733544a63        3 weeks ago         1.13MB
vskumar@ubuntu:/var/log$ 
=======================>

By default, Docker always uses the image that is tagged as latest.

Each image variant can be directly identified by qualifying it with an appropriate tag.

An image can be tag-qualified by adding a colon (:) between the tag and the repository name (<repository>:<tag>). For demonstration, we will pull the 1.24 tagged version of busybox as shown here:

Now, For lab demonstration, we will pull the 1.24 tagged version of busybox as shown here:

$ sudo docker pull busybox:1.24

Now. You can see the total output before and after executing the above command:

==============================>

vskumar@ubuntu:/var/log$ ^C

vskumar@ubuntu:/var/log$ sudo docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

hello-world latest f2a91732366c 4 days ago 1.85kB

ubuntu latest 20c44cd7596f 7 days ago 123MB

busybox latest 6ad733544a63 3 weeks ago 1.13MB

vskumar@ubuntu:/var/log$ ^C

vskumar@ubuntu:/var/log$

vskumar@ubuntu:/var/log$

vskumar@ubuntu:/var/log$ sudo docker pull busybox:1.24

1.24: Pulling from library/busybox

385e281300cc: Pull complete

a3ed95caeb02: Pull complete

Digest: sha256:8ea3273d79b47a8b6d018be398c17590a4b5ec604515f416c5b797db9dde3ad8

Status: Downloaded newer image for busybox:1.24

vskumar@ubuntu:/var/log$ sudo docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

hello-world latest f2a91732366c 4 days ago 1.85kB

ubuntu latest 20c44cd7596f 7 days ago 123MB

busybox latest 6ad733544a63 3 weeks ago 1.13MB

busybox 1.24 47bcc53f74dc 20 months ago 1.11MB

vskumar@ubuntu:/var/log$

==============================>

There are two busybox containers with different versions.

So, on the basis of TAG values the containers are being pulled.

How to Search Docker images:

So far we have pulled the known images from the docker-hub.

Let us identify some docker images by using a search option as below. We can search for Docker images in the Docker Hub Registry using the docker search subcommand, as shown in this example:

$ sudo docker search mysql

You can see the displayed output of mysql images from the Docker Hub Registry:

=============>

vskumar@ubuntu:/var/log$ sudo docker search mysql

NAME DESCRIPTION STARS OFFICIAL AUTOMATED

mysql MySQL is a widely used, open-source relation… 5278 [OK]

mariadb MariaDB is a community-developed fork of MyS… 1634 [OK]

mysql/mysql-server Optimized MySQL Server Docker images. Create… 368 [OK]

percona Percona Server is a fork of the MySQL relati… 303 [OK]

hypriot/rpi-mysql RPi-compatible Docker Image with Mysql 74

zabbix/zabbix-server-mysql Zabbix Server with MySQL database support 64 [OK]

centurylink/mysql Image containing mysql. Optimized to be link… 53 [OK]

sameersbn/mysql 48 [OK]

zabbix/zabbix-web-nginx-mysql Zabbix frontend based on Nginx web-server wi… 38 [OK]

tutum/mysql Base docker image to run a MySQL database se… 29

1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5 ubuntu-16-nginx-php-phpmyadmin-mysql-5 17 [OK]

schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic backup… 16 [OK]

centos/mysql-57-centos7 MySQL 5.7 SQL database server 15

linuxserver/mysql A Mysql container, brought to you by LinuxSe… 12

centos/mysql-56-centos7 MySQL 5.6 SQL database server 6

openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 image… 6

frodenas/mysql A Docker Image for MySQL 3 [OK]

dsteinkopf/backup-all-mysql backup all DBs in a mysql server 3 [OK]

circleci/mysql MySQL is a widely used, open-source relation… 2

cloudfoundry/cf-mysql-ci Image used in CI of cf-mysql-release 0

cloudposse/mysql Improved `mysql` service with support for `m… 0 [OK]

ansibleplaybookbundle/rhscl-mysql-apb An APB which deploys RHSCL MySQL 0 [OK]

astronomerio/mysql-sink MySQL sink 0 [OK]

inferlink/landmark-mysql landmark-mysql 0 [OK]

astronomerio/mysql-source MySQL source 0 [OK]

vskumar@ubuntu:/var/log$ ^C

vskumar@ubuntu:/var/log$

====================>

You can get the top 5 images by suing head -5 linux command.

$sudo docker search mysql | head -5

=============>

vskumar@ubuntu:/var/log$ sudo docker search mysql | head -5

NAME DESCRIPTION STARS OFFICIAL AUTOMATED

mysql MySQL is a widely used, open-source relation… 5278 [OK]

mariadb MariaDB is a community-developed fork of MyS… 1634 [OK]

mysql/mysql-server Optimized MySQL Server Docker images. Create… 368 [OK]

percona Percona Server is a fork of the MySQL relati… 303 [OK]

vskumar@ubuntu:/var/log$

===============>

If you see the above list, The mysql image curated and hosted by Docker Inc has a 5278 star rating, which is indicated as this is the most popular mysql image and aslo as Official image to use it. For security reasons we should use the official and highly rated images only.

As we planned, in this blog we have worked with the Docker images.

At this point we can stop this session and in the next blog we can see on “How to work with interactive containers”.

Vcard-Shanthi Kumar V-v3

Feel free to Contact me :

 

4. DevOps: How to create and work with Docker Containers

Docker-logo

In continuation of my previous blog on 2. DevOps: How to install Docker 17.03.0 community edition and start working with it on Ubuntu 16.x VM [https://vskumar.blog/2017/11/25/2-devops-how-to-install-docker-17-03-0-community-edition-and-start-working-with-it-on-ubuntu-16-x-vm/], in this blog I would like to cover the lab practice on Docker containers.

Assuming you have the same setup as we did in the previous lab session,

using the below subcommand, you can view the current image hello-world

Use the below command:

sudo docker run -it hello-world

$docker history hello-world

You can run this image and see:

======================>

vskumar@ubuntu:~$ sudo docker history hello-world

[sudo]

password for vskumar:
IMAGE CREATED CREATED BY SIZE COMMENT
f2a91732366c 5 days ago /bin/sh -c #(nop) CMD [“/hello”] 0B
<missing> 5 days ago /bin/sh -c #(nop) COPY file:f3dac9d5b1b0307f… 1.85kB
vskumar@ubuntu:~$

======================>

Check the current docker information:

sudo docker info |more

======================================>

vskumar@ubuntu:~$ sudo docker info |more
Containers: 2
Running: 1
Paused: 0
Stopped: 1
Images: 6
Server Version: 17.11.0-ce
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 14
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 992280e8e265f491f7a624ab82f3e238be086e49
runc version: 0351df1c5a66838d0c392b4ac4cf9450de844e2d
–More–WARNING: No swap limit support
init version: 949e6fa
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.10.0-40-generic
Operating System: Ubuntu 16.04.3 LTS
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.933GiB
Name: ubuntu
ID: KH7E:PWA2:EJGE:MZCA:3RVJ:LU2W:BA7S:DTIQ:32HP:XXO7:RXBR:4XQI
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false

vskumar@ubuntu:~$

=============================>

Now, let us work on the Docker images operations:

In the previous session, we demonstrated the typical Hello World example using the
hello-world image.

you can run an Ubuntu container with:

$ sudo docker run -it ubuntu bash

you can run an Ubuntu container with:

======= We are in Docker container =====>

vskumar@ubuntu:~$ sudo docker run -it ubuntu bash
root@10ffea6140f9:/#

============>

Now, let us apply some Linux commands as below:

==================>

root@10ffea6140f9:/# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
root@10ffea6140f9:/# ps -a
PID TTY TIME CMD
11 pts/0 00:00:00 ps
root@10ffea6140f9:/# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 05:36 pts/0 00:00:00 bash
root 12 1 0 05:38 pts/0 00:00:00 ps -ef
root@10ffea6140f9:/# cd lib
root@10ffea6140f9:/lib# ls
init lsb systemd terminfo udev x86_64-linux-gnu
root@10ffea6140f9:/lib# cd ..
root@10ffea6140f9:/# cd var
root@10ffea6140f9:/var# pwd
/var
root@10ffea6140f9:/var# ls
backups cache lib local lock log mail opt run spool tmp
root@10ffea6140f9:/var# cd log
root@10ffea6140f9:/var/log# ls
alternatives.log bootstrap.log dmesg faillog lastlog
apt btmp dpkg.log fsck wtmp

root@10ffea6140f9:/var/log# cat dpkg.log |more
2017-11-14 13:48:30 startup archives install
2017-11-14 13:48:30 install base-passwd:amd64 <none> 3.5.39
2017-11-14 13:48:30 status half-installed base-passwd:amd64 3.5.39
2017-11-14 13:48:30 status unpacked base-passwd:amd64 3.5.39
2017-11-14 13:48:30 status unpacked base-passwd:amd64 3.5.39
2017-11-14 13:48:30 configure base-passwd:amd64 3.5.39 3.5.39
2017-11-14 13:48:30 status unpacked base-passwd:amd64 3.5.39
2017-11-14 13:48:30 status half-configured base-passwd:amd64 3.5.39
2017-11-14 13:48:30 status installed base-passwd:amd64 3.5.39
2017-11-14 13:48:30 startup archives install
2017-11-14 13:48:30 install base-files:amd64 <none> 9.4ubuntu4
2017-11-14 13:48:30 status half-installed base-files:amd64 9.4ubuntu4
2017-11-14 13:48:30 status unpacked base-files:amd64 9.4ubuntu4
2017-11-14 13:48:30 status unpacked base-files:amd64 9.4ubuntu4
2017-11-14 13:48:30 configure base-files:amd64 9.4ubuntu4 9.4ubuntu4
2017-11-14 13:48:30 status unpacked base-files:amd64 9.4ubuntu4
2017-11-14 13:48:30 status unpacked base-files:amd64 9.4ubuntu4
2017-11-14 13:48:30 status unpacked base-files:amd64 9.4ubuntu4
2017-11-14 13:48:30 status unpacked base-files:amd64 9.4ubuntu4
2017-11-14 13:48:30 status unpacked base-files:amd64 9.4ubuntu4
2017-11-14 13:48:30 status unpacked base-files:amd64 9.4ubuntu4
2017-11-14 13:48:30 status unpacked base-files:amd64 9.4ubuntu4
2017-11-14 13:48:30 status unpacked base-files:amd64 9.4ubuntu4

root@10ffea6140f9:/var/log#

==================================>

WE have seen this container like a Linux machine only.

Now, to come out into Docker use ‘exit’ command.

====================>

root@10ffea6140f9:/var/log#
root@10ffea6140f9:/var/log# exit
exit
vskumar@ubuntu:~$

vskumar@ubuntu:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker-exercise/ubuntu-wgetinstall latest e34304119838 4 hours ago 169MB
<none> <none> fc7e4564eb92 4 hours ago 169MB
hello-world latest f2a91732366c 5 days ago 1.85kB
ubuntu 16.04 20c44cd7596f 8 days ago 123MB
ubuntu latest 20c44cd7596f 8 days ago 123MB
busybox latest 6ad733544a63 3 weeks ago 1.13MB
busybox 1.24 47bcc53f74dc 20 months ago 1.11MB
vskumar@ubuntu:~$

======================>

It means earlier when we run the command ‘$ sudo docker run -it ubuntu bash’ it went into terminal interactive mode of unbuntu container. When we applied ‘exit’ it came out from that container to ‘docker’ . Now through docker we have seen the list of docker images.

So, we have seen from the above session the container usage and the docker images.

Now, let us check the docker services status as below:

$sudo service docker status

vskumar@ubuntu:/var/tmp$ sudo service docker status

================================>

docker.service – Docker Application Container Engine

Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: e

Active: active (running) since Sat 2017-11-25 02:07:54 PST; 25min ago

Docs: https://docs.docker.com

Main PID: 1224 (dockerd)

Tasks: 18

Memory: 255.2M

CPU: 35.334s

CGroup: /system.slice/docker.service

├─1224 /usr/bin/dockerd -H fd://

└─1415 docker-containerd –config /var/run/docker/containerd/containe

================================>

Now, we will stop this session at this point in the next block we will learn how to download public docker image and work with images and containers.

Vcard-Shanthi Kumar V-v3

3. DevOps – Jenkins[2.9]: How to create and build the job ?

jenkins

In continuation of my previous blog on Jenkins 2.9 installation [https://vskumar.blog/2017/11/25/1-devops-jenkins2-9-installation-with-java-9-on-windows-10], We have installed and retested it. In this blog we can see a simple job creation and running it in a build.

Now, Let us do some exercise:

Let us create a new job using Jenkins.

As you are aware of; with Jenkins any kind of manual tasks can be done.

For example:

  1. I want to compile a java program and run it.
  2. To do this 1st let us identify the manual steps.
  3. I need to go to the below directory: D:\JavaSamples\Javatest , where my java programs are available.
  4. I need to use the below command:

CD [to know the current directory.]

Assume, I am in the below dir:

D:\Jenkins\jenkins-2.90>cd

D:\Jenkins\jenkins-2.90

Then , I need to use cd \JavaSamples\Javatest

Now I need to check my current path using cd

Then see the hello*.java using

dir command.

Then I need to compile it using ‘javac HellowWorld.java’ command.

Then I need to check the files on hello*.* name

There should be one file as ‘HellowWorld.class’

It means my program has been compiled correctly without errors.

Now, I need to run the program using java command.

Now, I need to run this file as java HellowWorld

It should display the output.

I have executed all the steps in a command window to compile and test the program.

You can see the executed commands and the  output also from the below screen:

HelloWorld-compile&amp;execute-CMD

As we know these are the manual tasks we need to do repetetively to select a program, compile it and run it. Why don’t we use Jenkins to create a job which has these set of tasks.

Now, let us learn how to create a job in Jenkins?:

Now assuming you are on the below screen:

Jenkins-New Job Creation

Click on “create new jobs”

You will get the below screen:

Jenkins job creation-enter an item name scrn.png

I want to create a job with the name of “vskumar2017test1”.

Jenkins-Freestyle project-creation

I want to create a Freestyle project, as I do not work with any of the plugins for now.
Hence I need to select on the 1st option “ Freestyle project”. When I click on “OK” button, we can see the below screen:

Jenkins-Freestyle project-creation2

I have entered the project description as below, as per our activity plan:

Jenkins-Freestyle project-description

As you are aware we are using Jenkins for simple task in this exercise,

Now click on build options. You will get the below screen:

Jenkins-Freestyle project-Build.png

In this screen we need to use build option. So click on add build steps. Using this option, we will get the below features to use the command window and the commands:

Jenkins-Freestyle project-Build-Add build step

There are two different options we can see to use the commands execution. 1. Execute Windows batch command , 2. Execute shell. Currently e are working with windows only. Hence 1st option need to be selected.

You can see the below screen:

Jenkins-New Job-Build-window commands1

Now, whatever commands we tried using command prompt we need to enter those.

For example I used as below:

cd

cd \JavaSamples\Javatest

dir hellow*.java

javac HellowWorld.java

dir HellowWorld.*

java HellowWorld

Now, I am copying these commands into the window. You can see the partially displayed commands in the window. In reality it has all the commands.

Jenkins-Build-Windows-batch commands-entry1

Now, let us save this job.
We will get the below screen on the created job name:

Jenkins-Project-vskumar2017test1.png

How to run the created project ?:

We need to run the created project using the option “Build now”.

You can see the build history as the job running, Under build#1.

Now, How to see the executed job output ?:
To see the output we need to click on the down arrow mark ate the job#.
It displays the below:

We need to select the console output, It displays the output as below:

Jenkins-Project-vskumar2017test1-running-build1-consoleOuputIf we scroll down we can see the job status message:

Jenkins-Project-vskumar2017test1-running-build1-consoleOuput

It shows all the output for our commands along with the job status.

Now let us review and analyze the display messages and commands as below.

Started by user Vskumar2017
Building in workspace D:\Jenkins\Jenkins 2.9\workspace\vskumar2017test1
[vskumar2017test1] $ cmd /c call C:\WINDOWS\TEMP\jenkins5234154176626743505.bat

The above commands shows, Jenkins started the job with user id vskumar2017.N

And it displays the current path of the job where it is created.

And it invokes a .bat file to execute the command prompt commands what we entered. It means it stored the batch commands into a file and it is opened by a cmd command from a shell prompt.

Now, let us see the below commands:

D:\Jenkins\Jenkins 2.9\workspace\vskumar2017test1>cd
D:\Jenkins\Jenkins 2.9\workspace\vskumar2017test1

It denotes its current job/project directory. And executed the cd to show the path.

Through the below:

D:\Jenkins\Jenkins 2.9\workspace\vskumar2017test1>cd  \JavaSamples\Javatest 

D:\JavaSamples\Javatest>dir hellow*.java 
 Volume in drive D is New Volume
 Volume Serial Number is 5C67-6F04

 Directory of D:\JavaSamples\Javatest

04/16/2017  03:52 PM               234 HellowWorld.java
04/16/2017  03:53 PM               570 HellowWorld10.java
               2 File(s)            804 bytes
               0 Dir(s)  22,762,598,400 bytes free

It changed the directory where the java program is there.

And displayed the files.

Let us see the next output:

D:\JavaSamples\Javatest>javac HellowWorld.java 
'javac' is not recognized as an internal or external command,
operable program or batch file.

It shows error for java path. Jenkins is not recognizing the path. The javac [compiler application is in the below path: D:\Java\jdk-9.0.1\bin ]

Javac-path.png

Now, this need to be corrected in the project.
To correct this we need to goto option: “Configure”.

Open it into project window to update some more commands.

I have updated the command window with the below commands:
cd \JavaSamples\Javatest
dir hellow*.java
del HellowWorld.class
dir hellow*.java
D:\Java\jdk-9.0.1\bin\javac HellowWorld.java
dir HellowWorld.*
java HellowWorld

Now, let me run the job by using “Build now option”.

For debugging purpose, I have executed this job some more times. Hence history shows multiple builds on it.

Our current build is #5. And let us open it and see the console output:

Jenkins-Project-vskumar2017test1-buildsNow#5

The console output shows as below:

Jenkins-Project-vskumar2017test1-console#5

Now you can see the whole console output as below in text format:

Console Output
Started by user Vskumar2017
Building in workspace D:\Jenkins\Jenkins 2.9\workspace\vskumar2017test1
[vskumar2017test1] $ cmd /c call C:\WINDOWS\TEMP\jenkins1398066858541735603.bat

D:\Jenkins\Jenkins 2.9\workspace\vskumar2017test1>cd
D:\Jenkins\Jenkins 2.9\workspace\vskumar2017test1

D:\Jenkins\Jenkins 2.9\workspace\vskumar2017test1>cd \JavaSamples\Javatest

D:\JavaSamples\Javatest>dir hellow*.java
Volume in drive D is New Volume
Volume Serial Number is 5C67-6F04

Directory of D:\JavaSamples\Javatest

04/16/2017 03:52 PM 234 HellowWorld.java
04/16/2017 03:53 PM 570 HellowWorld10.java
2 File(s) 804 bytes
0 Dir(s) 22,761,955,328 bytes free

D:\JavaSamples\Javatest>del HellowWorld.class

D:\JavaSamples\Javatest>dir hellow*.java
Volume in drive D is New Volume
Volume Serial Number is 5C67-6F04

Directory of D:\JavaSamples\Javatest

04/16/2017 03:52 PM 234 HellowWorld.java
04/16/2017 03:53 PM 570 HellowWorld10.java
2 File(s) 804 bytes
0 Dir(s) 22,761,955,328 bytes free

D:\JavaSamples\Javatest>D:\Java\jdk-9.0.1\bin\javac HellowWorld.java

D:\JavaSamples\Javatest>dir HellowWorld.*
Volume in drive D is New Volume
Volume Serial Number is 5C67-6F04

Directory of D:\JavaSamples\Javatest

11/17/2017 12:3

9 PM 427 HellowWorld.class
04/16/2017 03:52 PM 234 HellowWorld.java
2 File(s) 661 bytes
0 Dir(s) 22,761,955,328 bytes free

D:\JavaSamples\Javatest>java HellowWorld
Hello World

D:\JavaSamples\Javatest>exit 0
Finished: SUCCESS

=======================>
Observe there was no error displayed as we have given the correct javac application path.

Now I have updated the commands as below to remove the existing HellowWorld.class file.
cd
cd \JavaSamples\Javatest
dir hellow*.*
echo ‘Assuming .class file is already there..”
del HellowWorld.class
dir hellow*.java
D:\Java\jdk-9.0.1\bin\javac HellowWorld.java
dir HellowWorld.*
java HellowWorld
=======================>
You can see the output under build#7:
========================>

Console Output
Started by user Vskumar2017
Building in workspace D:\Jenkins\Jenkins 2.9\workspace\vskumar2017test1
[vskumar2017test1] $ cmd /c call C:\WINDOWS\TEMP\jenkins7100481173282587024.bat

D:\Jenkins\Jenkins 2.9\workspace\vskumar2017test1>cd
D:\Jenkins\Jenkins 2.9\workspace\vskumar2017test1

D:\Jenkins\Jenkins 2.9\workspace\vskumar2017test1>cd \JavaSamples\Javatest

D:\JavaSamples\Javatest>dir hellow*.*
Volume in drive D is New Volume
Volume Serial Number is 5C67-6F04

Directory of D:\JavaSamples\Javatest

11/17/2017 12:45 PM 427 HellowWorld.class
04/16/2017 03:52 PM 234 HellowWorld.java
04/16/2017 03:53 PM 570 HellowWorld10.java
3 File(s) 1,231 bytes
0 Dir(s) 22,760,976,384 bytes free

D:\JavaSamples\Javatest>echo ‘Assuming .class file is already there..”
‘Assuming .class file is already there..”

D:\JavaSamples\Javatest>del HellowWorld.class

D:\JavaSamples\Javatest>dir hellow*.java
Volume in drive D is New Volume
Volume Serial Number is 5C67-6F04

Directory of D:\JavaSamples\Javatest

04/16/2017 03:52 PM 234 HellowWorld.java
04/16/2017 03:53 PM 570 HellowWorld10.java
2 File(s) 804 bytes
0 Dir(s) 22,760,976,384 bytes free

D:\JavaSamples\Javatest>D:\Java\jdk-9.0.1\bin\javac HellowWorld.java

D:\JavaSamples\Javatest>dir HellowWorld.*
Volume in drive D is New Volume
Volume Serial Number is 5C67-6F04

Directory of D:\JavaSamples\Javatest

11/17/2017 12:47 PM 427 HellowWorld.class
04/16/2017 03:52 PM 234 HellowWorld.java
2 File(s) 661 bytes
0 Dir(s) 22,760,976,384 bytes free

D:\JavaSamples\Javatest>java HellowWorld
Hello World

D:\JavaSamples\Javatest>exit 0
Finished: SUCCESS
=================================>
Now, you can see message display from echo command.
And the old class file is removed and the new file time stamp can be seen differently.

Now, how to make failure a job ?:

Please see the screen display with a failed job:

Jenkins-vskumar2017-success1

Now, let us see the console output:

Console-output-vskumar2017-3.png

In this example I have given a wrong file name to execute. Hence it is failed.
It checks the last commands results. You can change them and cross check as an exercise.
The failure error flag also it shows as “1”.
When the job was success the flag showed as “0”.

Hope you understand the difference between failure and success of Jenkins build.
So, we need to make sure the commands/script mentioned in the command window should be a debugged one. Then the jobs success can be seen.

Please note;
If it is not a recognized command as an internal or external command,
operable program or batch file. Jenkins will not count it as a failure.

Exercise:
Take a new Java program and create a job to compile and run it.

How to use My views:
You can see the build history in graphical format as below with My views option:

Jenkins-Job-Views

 

At this point with this blog I want to close now, with the above scenarios.

You can also see:

https://www.youtube.com/edit?o=U&video_id=lciTHyxCgfE

 

Feel free to contact for any support:

Vcard-Shanthi Kumar V-v3

2. DevOps: How to install Docker 17.03.0 community edition and start working with it on Ubuntu 16.x VM

Docker-logo.png

In this blog, I would like to demonstrate the Docker 17.03.0  CE edition installation on Ubuntu 16.0.4 VM machine. And later on little practice can be shown  using containers in a series of blogs. Please keep visiting for weekly new blogs or subscribe it. If you are interested to follow this site blogs, please send e-mail [with your linkedin message ] to approve with authentication.

Assume you have an unbuntu machine or a Virtual machine [VM] configured. And in this blog you can see on how to install the Docker 17.03.0  CE [as on this blog’s date] with screen display outputs:

$ sudo service docker restart

However, if the Active column shows inactive or maintenance as the status, your Docker service is not running. In such cases, restart the Docker service, as shown here:

$ sudo service docker restart 
 
Install Docker on Unbuntu:

1.Add the Docker package repository path for Ubuntu 16.04 to your APT sources, as shown below:
 $ sudo sh -c "echo deb https://apt.dockerproject.org/repo \
 ubuntu-xenial main > /etc/apt/sources.list.d/docker.list"

2.Add the GNU Privacy Guard (GPG) key by  running the following command:
 $ sudo apt-key adv --keyserver \
 hkp://p80.pool.sks-keyservers.net:80 --recv-keys \ 
 
If the above format is expired; you can try as below:
==== Alternate method with screen output ====>
$sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

Executing: /tmp/apt-key-gpghome.YU0Rk7y5kX/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
gpg: key F76221572C52609D: 7 signatures not checked due to missing keys
gpg: key F76221572C52609D: public key "Docker Release Tool (releasedocker) <docker@docker.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1
=========================================>
The above format should work. Even if that is not working, please google the same keys for the latest validated keys.

3.Resynchronize with the package repository using the below command:
 $ sudo apt-get update
Now docker software is in your unbuntu machine.

4. Now, you can Install Docker and start  Docker service:
 $ sudo apt-get install -y docker-engine

5.Now you have  installed the Docker Engine, we need to  verify our installation by running docker --version as shown below:
 $ docker --version

We have successfully installed Docker version 17.03.0 community edition.
Other options is; in a single script by avoiding the above steps you can install it:

If you are working on Ubuntu, follow the below command:

==================== Screen output ==========>
vskumar@ubuntu:/var/log$ sudo wget -qO- https://get.docker.io/ | sh |more
[sudo] password for vskumar: 
# Executing docker install script, commit: 11aa13e
Warning: the "docker" command appears to already exist on this system.
If you already have  installed Docker, this script can cause trouble, which is
why we're displaying this warning and provide the opportunity to cancel the
installation.
If you installed the current Docker package using this script and are using it
again to update Docker, you can safely ignore this message.
You may press Ctrl+C now to abort this script.
+ sleep 20
+ sudo -E sh -c apt-get update -qq >/dev/null
============== Since I have already installed, I have breaked this process ====>
But, if you try this script; it takes some time to download and install docker for the whole process. 
Be patient to see the final result.  Later check the docker version to reconfirm. Using the below command.
$docker --version

It is very easy to install docker with the above step(s) in your Ubuntu machine.

Assuming you have studied the theory part of docker usage I am moving forward to lab practice.

Now, let us do some practice with docker images/containers.

We will do the below steps:

1. Downloading the first Docker image:
we will download a sample hello-world docker image using the following command:
$ sudo docker pull hello-world

2. Once the image is downloaded, 
they can be verified using the docker images subcommand, as given below:
To check the image run the below command:
$sudo docker run hello-world
It displays the message “Hello from Docker!”
You have set up your first Docker container and it is running now.

3. How to Troubleshoot with Docker containers?:
If you want to troubleshoot with container, the first step is  to check the Docker's running status by using the below command:
$ sudo service docker status 
It displays the status and shows as Docker 'Active running' message on the screen along with other messages.
Press ctrl+C to come out from the display.

=========== Partial content from the above command =====>
vskumar@ubuntu:/var/log$ sudo service docker status 
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2017-11-25 02:54:42 PST; 3h 56min ago
Docs: https://docs.docker.com
Main PID: 3769 (dockerd)
Tasks: 19
Memory: 43.6M
CPU: 1min 21.184s
CGroup: /system.slice/docker.service
├─3769 /usr/bin/dockerd -H fd://
└─3778 docker-containerd --config /var/run/docker/containerd/containerd.toml
===============================>
For some reasons, if the Active column shows inactive or maintenance as the status, it means your Docker service is not running. 
In that case to restart the Docker service, use the below command:

$ sudo service docker restart

We will see in the next blog, some more exercises on Docker containers and images.

Vcard-Shanthi Kumar V-v3

https://youtu.be/O0_Vnc7X6iI

 

 

 

 

 

 

 

 

 

 

1. DevOps – Jenkins[2.9] Installation with Java 9 on Windows 10

 

 

 

 

 

 

 

jenkins

I am publishing  series of blogs on DevOps tools  practice. The interested people can keep watching this site or you can subscribe/follow.

In this blog we will see what are the pre-requisites for Jenkins 2.9 to install and how to install Jenkins.

 =====================================>

Visit my current running facebook groups for IT Professionals with my valuable discussions/videos/blogs posted:

 DevOps Practices Group:

https://www.facebook.com/groups/1911594275816833/about/

Cloud Practices Group:

https://www.facebook.com/groups/585147288612549/about/

Build Cloud Solution Architects [With some videos of the live students classes/feedback]

https://www.facebook.com/vskumarcloud/

 =====================================>

 

MicroServices and Docker [For learning concepts of Microservices and Docker containers]

https://www.facebook.com/MicroServices-and-Docker-328906801086961/

To setup Jenkins, you need to have Java 9 in your local machine.

Hence in the Step1 to setup Java, you need to follow the below steps:

STEP1: How to download and install JDK SE Development kit 9.0.1 ?:

go to URL:

http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html

You will see the below page [as on today’s display]

Java Kit SE 9 download

From this web page, Click on Windows file jdk-9.0.1_windows-x64_bin

It will download.

Double click on the file.

You will see the series of screens, while it is doing installation. I have copied some of them here.Java SE 9 install scrn-2.png

Java SE 9 install scrn-1

Java SE 9 install scrn-3.png

 

Java SE 9 install scrn-4.png

You can change the directory if you want, in the above screen.

 

Java SE 9 install scrn-4-Oracle 3 billion.png

 

Finally you should get the below screen as installed it successfully.

Java SE 9 install scrn-5-complete

Now, you need to set the Java environment and path variable in Windows setting.

Java SE 9 install scrn-7-windows env setup2Java SE 9 install scrn-8-windows env setup3

 

My Java directory path is:

Java SE 9 install scrn-9-windows env setup4

 

Java SE 9 install scrn-10-windows env setup5.png

You  need to edit the below path variables also for the latest path:

Java SE 9 install scrn-11-windows env setup6Java SE 9 install scrn-12-windows env setup7.png

After you have done the settings, you can check the java version as below in a command prompt:

Java SE 9 install scrn-13-CMD-1

You should get the same version.

Now, You need a simple java program to run and check your compiler and runtime environment.

Please goto google search and check for “Java Hello wordl program”.

Follow the below URL:
https://en.wikiversity.org/wiki/Java_Tutorial/Hello_World!

Copy the program into a text file named as hellowworld.java

Then compile and run the program as below:

Java SE 9 install scrn-14-CMD-Javacompile&run-1.png

If you are getting the above, then your installed java software is working fine.

You need to remember the below:
To compile this program you need to use the below command in command prompt of that program directory:

D:\JavaSamples\Javatest>javac HellowWorld.java

To run the java program you need to use the below command:

D:\JavaSamples\Javatest>java HellowWorld
Hello World

Now, you can plan for setting up Jenkins.

STEP2: How to setup Jenkins on Windows ?:

Follow the below link to download Jenkins for Windows-x64
https://jenkins.io/download/thank-you-downloading-windows-installer/

It downloads the installer as below:
You can see the downloaded installer file for Jenkins.

Jenkins-installer-file1.png

 

How to install Jenkins?:
Now you can copy this file into a new directory as Jenkins.

I have copied into the below directory.

Jenkins-installer-file-copy1.png

You need to unzip this file.

Jenkins-installer-file-unzip1.png

You can see the new directory is created with its unzipped files:

 

Jenkins-installer-file-unziped-new Dir

You can double click on it and can see the below screen:

 

Jenkins-installer-file-double-click.png

I have changed the path as below:

Jenkins-installer-file-path.png

Click on install and say “Yes” in windows confirmation screen.

 

Jenkins-installer-file-path-install.png

You can see the below screen:

Jenkins-installer-install-complete1.png

Once you click on finish, it will take you to a browser:

Jenkins-initial browser1.png

Jenkins will have a default user id as “admin” and the password.
The password is available from the given path.

Jenkins-admin-initial-pwd-file

You can open this file in notepad as below:

Jenkins-admin-initial-pwd-file-open-notepad

Now, copy this password as below into windows clipboard.

Now you goto the Jenkins browser and paste this password.

Close your notepad.

Now, on browser press continue.

You can see the Jenkins initial  screen as below for plugins selection:

 

Jenkins-initial screen for plugins

Jenkins will have 100s of plugins. But there are default plugins those can be used initially to save you disk space and time. Hence now, you click on “Install suggested plugins”.

It will show the below screen as it is working for this activity:

Jenkins-default-plugins-install-screen1.png

You can see in the right side window the tasks what Jenkins is doing:Jenkins-initial screen for plugins-tasks1.png

You can also watch as it is doing one by one the plugins installation and the tasks on right side.
It might take more than 30 mts depends on your internet speed and the RAM.

I am copying some of the screens as it is moving on …

 

Jenkins-initial screen for plugins-tasks2.png

Once the plugins are installed, you can see the 1st screen to setup your 1st admin user id and password as below:

Jenkins-create-first-UID &amp; PWD

You can enter the details and click on “Save and Finish” button.

Now, it shows the below screen with Jenkins readyness to use:

Jenkins-is-Ready.png

When you click on “Start using Jenkins” button,
You can see the below screen as in the beginning of the Jenkins usage:

Jenkins-welcome-1st time.png

Please observe the right corner and verify your created user id.

Now, let us do some login and logout operations to make sure it is working.

When you logout you can see the below screen:

Jenkins-initial-logout-test

Now let us understand the url of Jenkins server which we are using:

When we install Jenkins in any machine either Windows or Linux.
By default its url should be : http://localhost:8080/
Your local host is your current machine Ip address.
You can see the screen now with the above url:

Jenkins-URL-test

Now, you can try one more option, check your ip address from command prompt as below:

Check-IPs-CMD.png

You can pickup the 1st IP address which displays from the command prompt screen.

And key-inn the below url in your browser:
http://192.168.137.1:8080/login?from=%2F

Your ip need to be used in place of 192.168.137.1

Now, let us see What is 8080?:
Every server software creates a port address to access its web pages from the installed machine. In our case Jenkins has been configured on 8080 port as default. The 8080 is a default port for Jenkins. Similarly other server softwares also will have their specific ports.

Now, I have used a different browser using the above url to access Jenkins web page as below:

Jenkins-using-IP & 8080-Port.png

Using the login screen I am logging into my admin user id: vskumar2017 , which was created earlier.

Login-UID-vskumar2017.png

You can also check in your windows services on Jenkins running status.
Please note on this setup, you have made a standalone Jenkins by using your PC or Laptop.

Now, you can restart your windows machine. You need to start Jenkins as fresh service.

To start Jenkins from command line
  1. Open command prompt.
  2. Go to the directory where your war file is placed and run the following command: java -jar jenkins.war
  3. OR One more  option is; go to your Jenkins directory in CMD window and execute: jenkins.exe start

 

Restart-Jenkins-CMD

Open browser and Use you can check the Jenkins access. It should be showing the login page.

How to remove Jenkins from your system?:

If you want to remove Jenkins from your system, you can find the  Jenkins Windows installer file from the Jenkins directory and double click on it. You can see the below window to choose your action:

Remove-repair-Jenkins.png

So far we have seen the installation of Java 9 and Jenkins.

Some times, you might need to configure other servers [Ex:Tomcat, etc,]. They might also use 8080 port. Hence there will be conflict. We need to change the port# in that case.

Now, How to change your 8080 port to other port#?:

Please find Jenkins.xml in Jenkins dir:

Ex:

In my system I have the URL:D:\Jenkins\Jenkins 2.9

You need to replace 8080 with the  required port# in the below line:

<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar “%BASE%\jenkins.war” –httpPort=8080 –webroot=”%BASE%\war”</arguments>

In the next blog we can see some simple exercise with Jenkins by creating and running the project into different builds.

https://vskumar.blog/2017/11/26/2-devops-jenkins2-9-how-to-create-and-build-the-job/

 

https://vskumar.blog/2018/02/26/15-devops-how-to-setup-jenkins-2-9-on-ubuntu-16-04-with-jdk8/

Note to the reader/user of this blog:

If you are not a student of my class, and looking for it please contact me by mail with your LinkedIn identity. And send a connection request with a message on your need. You can use the below contacts. Please note; I teach globally.

Vcard-Shanthi Kumar V-v3

https://youtu.be/x7d6dl0k0JU

If you want to learn for Ubuntu installation you can visit:

https://vskumar.blog/2018/02/26/15-devops-how-to-setup-jenkins-2-9-on-ubuntu-16-04-with-jdk8/

https://www.facebook.com/vskumarcloud/videos/985410704977805/?t=0

On Job training for future Software engineers [freshers] how it saves their career time ?

I wrote this article to motivate the students who wants to build their own IT career faster in their early ages without depending on corporate to earn more perks in a faster way.

Student life

Lot of global IT services companies they conduct campus recruitment to select the top notch percentages acquired students to offer as software engineers.

During this process, each corporate might plan to groom the students on different skills in 6 to 10 months time by paying the agreed salary.

Once they are successful in their training and they can offer these candidates to different business units to hire them for their customer projects either under billable or non-billable. Depends on the projects requirement the candidates will be placed either on the candidate desired skills or non-desired skills.

Each fresher candidate [student] deployment onto the customer project might take typically 6 to 12 months; which includes their grooming/training on different skills. They will be placed onto the cusotmer projects with or without interviews.

SW-Eng interviews

Their productivity starts to corporate after one year of their joining time into the corporate company. Typically most of the corporate companies they recruit the students from the campus on bond for 2 years.

During this two years time each student might lose one year of their career time due to the corporate companies’ delays in their internal planning and adjustment of the selected students in different customer projects.

Sometimes, most of these students cannot be guided perfectly as corporate companies commit to students, due to lack of their internal mentors and all the processes are not synchronized across the company or by all locations. In such case the lucky students only can gain the advantages of the corporate companies’ commitments or professional lavishness.

Otherwise they to need burn themselves to pickup the technology skills to meet to the cusotmer requirements and also to the project role expectations.

Busy-SW Engr

Most of the students waste their time by hanging on to such campus recruitment process as they feel the large companies are their career guiders or ladders. 

But really the student has to stick on to the corporate to climb their ladder. Some freshers might have been groomed well because of they are placed by luck under good mentors. Most of them may not get this chance also.

What are the alternate ways to save freshers time?

There are few standard companies they consider the bright or non-bright students and groom them as Software engineers. During this process of grooming they will deploy them on to their internal development projects. They offer them as Trainee software engineer with the below models.

  1. Some of the companies they consider them on bond for 1 or 2 years without charge.
  2. Few companies they charge for the initial grooming time.

Top5-SW-Skils

During the above process these companies adhere to the standard skill those are in demand of the market. With those industry demanded skills after completion off their trainee tenure either they can look for direct software engineer jobs or they can negotiate with the groomed companies to get a job with them.

Let us assume , If one candidate has learnt the skills with their live projects/products development activities he/she will be able to get a direct job more than the campus recruitment offer made by large corporate. And this candidate can save their time comparatively with their co-student who has joined in campus joining with the large corporate company. This way it saved his career building time and also he/she may get more offers in a year time.

SW-Roles1

When a fresher[college student] need to enter into a job market, he/she need to answer to the below questions:

Fresher-thinks

What is the decision any young IT professional need to take in this dynamic changing IT environment?

Do I Have the capability to build my strategic career?

Do I need to stick or depend on through a company or need to make my own career plan?

Do I need to learn multiple skills initially to make myself with more returns?

Do I need to accelerate my competency? Or Do I need to have retardation by depending on a company?

Do I need to stick on to a corporate ladder or can I build my career bricks with day one foundation?

Do I need to build skills myself or depend on large corporate ?

Am I looking for a right company for my skills improvement in a faster way ?

Am I looking for any certifications for my long term career building ?

All the above scenarios a fresher need to determine and make a strong decision to accelerate their faster career building in this faster technology changing and competent environments.

slide1

https://www.youtube.com/watch?v=vAxJkPcKVJ4

 

https://www.youtube.com/watch?v=fe5S-Mav1tU

https://youtu.be/2YASaqWmm78

 

Please note my Services for an IT project burning issues [if any] to fix

Please note the following services from me as an independent IT consultant to speed up or accelerate your IT ROI and to be a strategic partner for a burning project fix.

I also support the IT projects delivery and resources transition to offshore or to a new location globally.

We can have an initial free call to assess your project status. Then you can decide.

Vcard-Shanthi Kumar V

Talent acquisition and retention management

Talent Acquisition and management-processtalent-management.248180123_std

Talent2

To know what is a competency, watch the below video:

https://www.facebook.com/watch/?v=3017456905038947

In the current competitive global market, talent and the retention management is a major challenge to any small or midsized company.

I wrote this article to cove the following contents for a mid or small sized IT services company to function cost effectively by using some of the below practices.

Audience: This content is not only useful for HR teams and also to the heads of the talent management groups, HR Policy makers, Delivery teams, Sales/marketing teams, etc… who all are responsible for resources retention and grooming within the organization to demonstrate the resource costing effectively and efficiently on a quarterly basis with the accelerated ROI.

Contents:

1. What is skills assessment?

2. What is competency?

3. What is Talent?

4. What is talent Acquisition?

5. What is the role of recruitment team?

6. The Talent acquisition needs to go through with whom?

7. What are the steps need to be adopted for talent acquisition?

8. What are the steps to follow after talented professionals are acquired?

I wrote a book on How to control cost for IT services – Startup company: Managing cost control for IT startup company Kindle Edition” it has a separate chapter on this topic.

Cover-Control Cost-startup

For Kindle edition Visit:

http://www.amazon.com/How-control-cost-services-Managing-ebook/dp/B01273FB0Q/ref=sr_1_10?s=books&ie=UTF8&qid=1452742241&sr=1-10&keywords=Shanthi+Vemulapalli

You can also visit for paper back book:

Cover-create space

Visit:

https://www.createspace.com/5976695

For sample Book video Visit:

https://youtu.be/VHZVN5OszeI

slide1

How can you measure and strengthen your customer service ?

Every service provider might feel they are the best in the industry in giving service to their customers. But in reality once they get the feedback from customer they will be either thrilled or hurt by the rating given by their customer. This  blog can help the vendors to analyze or recap the process involved in measuring their services effectively.

Every provider can design and offer the same or similar services in the current competent world. But your business continuity [BCP] needs to be there always with the customer. Your unique selling point [USP] needs to be differentiated for strategic business with the customer.

When customer accepted the service and entered into SLAs how can you measure the Quality of services [QOS]?

In general most of the service providers might follow some of the following steps once the service is started:

Every service provider keeps checking the Customer satisfaction [CSAT] ratings periodically instead of checking the quality of services.

When CSAT is not as expected, as a service provider one might get sudden hurt.

Then the internal burning issues might start. When they recap the reasons or root causes one might find some of the following:

Proper attention was not paid on the customer issues resolution.

Internal issues were not identified when the programme has been initiated or during execution. Those became like strategic burning issues and led to customer dissatisfaction. Even if the CSAT period is beyond 3-6 months, there is a possibility of contract discontinuation for next term.

In such case, how can you apply a remedy for your BCP ?

By consolidating all the steps I wrote an E-Book which is available in the below image location for Kindle:

Cover-page-CS&CSAT

Click on the image.Vcard-Shanthi Kumar V

Independent IT Consultant services

Please find my Services offering as an Independent IT Consultant  from the below card. If you are really interested to know the details of the services please e-mail me with your contacts/location/project details, I can send a video link.

Vcard-Shanthi Kumar V-v3

SDLC & Agile – Interview questions for Freshers -8

In continuation of my previous blog [#7] on this subject following questions and answers are continued:

  1. What are the steps the Product owner follows before adding to the product backlog?

Ans: The Product Owner [PO] follows the below steps before adding to the product backlog :

  • The PO writes the customer-centric items, they are called as User stories.

  • The PO prioritizes them based on their importance and dependencies.
  • once the above steps are completed the PO adds them to product backlog.

  • Sometime these are also called as Product Backlog Items [PBIs].

    2. What is a core responsibility of a product owner [PO] ?

    Ans: The product owner [PO] needs to make sure Communication is his/her core responsibility while following the Scrum process.

    3. What kind of ability the product owner [PO] need to demonstrate to steer product development in the right direction ?

    Ans: The product owner [PO] need to have ability to convey priorities of PBIs. PO need to empathize team members and collaborate with stakeholders while steering the product development in the right direction.

    4. What is the responsibility of development team in a Scrum process ?Ans: The Development Team’s responsibility is to deliver potentially shippable or releasable increments of product at the end of each Sprint (which is the Sprint goal).

     5.  In A Scrum process, what is the typical development team size and what activities will be performed by them ?

    Ans: In Scrum process, the development team is made up of 3–9 individuals. They do the actual work related to the activities; Analyze, Design, Develop, Test, Technical communication, Documentation, etc.

     6. In A Scrum process, how the development team need to be functioned ?

    Ans: Development Teams are cross-functional [across projects/teams], with all of their skills as a team necessary to create a Product Increment. They are also self-organized people.

    7. Who facilitates the Scrum and who is accountable to remove impediments towards delivering the product goals and deliverables ?

    Ans: Scrum is facilitated by a Scrum Master, who is accountable for removing impediments to the ability of the team to deliver the product goals and deliverables.

    8. Is a Scrum Master an IT Manager ?

    Ans: The Scrum Master is ;

  • not a traditional team lead or
  • not a project manager or
  • not an IT Manager. He/she acts as a buffer between the team during scrum meeting. 9. What the Scrum Master need to ensure in view of the team ?Ans: The Scrum Master ensures that the Scrum framework is followed within the team. 10. What kind of help can be seen from a Scrum Master by the teams ?

    Ans: The Scrum Master helps to ensure the team follows the agreed processes in the Scrum framework, often facilitates key sessions, and encourages the team to improve.

     

  • Visit my blog for Scrum master details:
  • https://vskumar.blog/2017/10/21/some-helpful-tips-for-new-scrum-masters-servant-leadership-role/
  •  

    This video explains on how to invent and design a reusable code during Agile Sprint planning to save the cycle time. Given with an example of E-commerce site design by identifying its repeatable steps from the user operations.

    https://youtu.be/zCR6GP1ji60

  • https://www.youtube.com/watch?v=DiIhkCby0tU
  • https://www.youtube.com/watch?v=EVvIbJWaPoY
  • https://www.youtube.com/watch?v=tXcIWFsT-hU
  • https://www.youtube.com/watch?v=ueBvm-0U5JQ
  • https://www.youtube.com/watch?v=ONl2iE1Ejko
  • https://www.youtube.com/watch?v=qCRGa2G0TmY
  • https://www.youtube.com/watch?v=65S0_eqauwQ
  • https://www.youtube.com/watch?v=xjcCYLNwk2M
  • https://www.youtube.com/watch?v=CKz-cYoaufU
  • Please feel free to contact for any support/guidance.
  • Vcard-Shanthi Kumar V 

Did you check the Agile entry criteria before your initiation ?

Agile Entry Critera - Check-Page1 Agile Entry Critera-Code refactor-simulation-chart-Page2Agile Entry Critera - Check-Page3 I have made videos on this blog and  posted in the below youtube  channel URL with further elaboration: http://www.youtube.com/channel/UCR1qBu2xUiypGDa2UaNQr8A/videos

If you are keen in getting my support on these practices implementation for your Agile programmes/projects/teams, please contact me.

I support the organizations globally.

slide1

How to start a project with PRINCE2 methodology

 

This blog can give you an idea or jump start on a PRINCE2 “Project start up” stage for a new PM on this environment.

Following are the typical activities on Start-up of a new project using PRINCE2 methodology.

PRINCE2 Project Start Slide2B

  1. Nominate  the PRINCE2 Project executive and the PM: These roles can help the organization to outline the project by following the PRINCE2 methodology. Sometimes, both the roles can be equal like; he/she can be Project executive and the PM also, depends on the size of the project and the decision of the organization. In many organizations they have PMO role based person or PMO unit where they support to the Programmes or projects.
  2. Capture previous lessons: The previous lessons of the similar projects can give like; how the issues were handled, risks mitigation and their planning each stage. Most of the organizations they might have a repository of the project artifacts either through a configuration management library or in the form of project archival. These are very useful for running the retrospectives from the past projects. If the similar projects have not been executed by the organization, it is mandated to have external consultants to guide the team atleast for one cycle of the delivery. Please remember PRINCE2 framework emphasises to avoid the risks of failure to have these methods followed. Nobody can do a new technology or non-technology project without having a support. 
  3. Design and allocate the project management team: Once the Project Executive and the PM have been appointed on the project, they need to work together to identify the project business case. Then they need to work out on the roles required for the project. The roles & responsibilities need to be defined upfront with the required skills. Then the resources fulfilment can happen very easily.
  4. Outlining Business case: At this stage, The PM and the executive can consider the initial business case and the requirement made towards setting up of this project. The business case can be extended now and can be made very detailed and to be understood by the entire project organization. It should be very transparent to the team members also, to make them responsible on their role.
  5. Define Project approach and team orientation: During this stage, the PM and the executive need to define the project approach. During this documentation definition, they can use the past lessons learnt from the similar previous projects. If there are no past experiences gained, need to have external consultants support while doing the approach documentation. Please note that it should contain the supporting process steps also towards successful execution of the project. The timely risk mitigation and resolutions finding approach, on how to check the continuous business case justification at each stage of the project towards meeting the ROI of each activity can definitely help the entire team. The incorporation of resource contingency planning and release approach can help/support the team and management also. The continuous cost control approach also can give clarity to the management on identifying the extra costs at different stages and the more ROI from different stages.   Finally, there should be management approval on this approach documentation. Once it is approved, the resources   orientation training can be planned. During the orientation, the resources should be able to understand the business case and the project approach. The more these are transparent to them, the PM life and the team members life will be made smooth on the project. They need to be educated more on risk mitigation, resolution and activity/task re-planning. They should be able to identify risks even on their sub-tasks and the other team members’ sub-tasks. This way project execution planning and its control can be made easier. If needed the PM can conduct a quiz on the oriented topics and also the predicted risk scenarios on few activities. This way they can be self-motivated to be competent on the project. At the same time the team bonding also can be established.
  6. Project Initiation: Please note, at the end of each stage of the PRINCE2, you need to have a planning activity for the next stage. Hence during this activity you need to plan for the next stage which is project initiation.

Please follow my blogs [will be posted] for other stages of the PRINCE2 methodology.

This article has been made into Youtube videos. 

For all the Videos please  use the following links:

How to Start PRINCE2 Project Part1 of 5 http://youtu.be/mxvHhKng7s8

https://www.youtube.com/watch?v=3YK9XailQH0&list=PL5NmC6t0N8tHXn6Q2YHs63H6QtAtSCNnv

How to Start PRINCE2 Project Part2 of 5: http://youtu.be/3YK9XailQH0

How to Start PRINCE2 Project Part3 of 5 http://youtu.be/BW5FcRUr61E

How to Start PRINCE2 Project Part4 of 5 http://youtu.be/N_zuXaGigDk

How to Start PRINCE2 Project Part5 of 5 http://youtu.be/3diWq7VPN70

For any queries, please contact me.

 

Contact for your PRINCE2 certification online Coaching [globally-for individuals]: vskumar35@gmail.com

Please feel to contact me for your project delivery support:

 

 

If you are looking for appearing for ISTQB exam, you need a coaching from Test management experienced people with corporate ISTQB teaching background.

In the exam there will be scenario based questions. If you map the process steps with  examples explained in this course, you will be able to crack the exam easily.

Please contact for your online classes schedule to gain exam plan tracking mechanism and testing practices mindset.

For my profile visit:  https://in.linkedin.com/in/shanthi-ku…®-v3-expert-c-752201a

istqb-ta-course-contents-for-online

Verify the knowledge  videos from the  YouTube channel.

You can also join to learn the concepts freely: https://www.facebook.com/groups/410279332851728/?source_id=282673739339983https://www.facebook.com/groups/410279332851728/?source_id=282673739339983

You can watch a demo class for Test Analyst test process from URL: 

For A test automation Video please visit:

There is a Part2 also, please watch it in URL: http://youtu.be/An4_EMA9gbE

For test planning lesson, see the below video:

slide1

For the Cloud/DevOps Course details, please visit the below blog:

https://vskumar.blog/2020/01/20/aws-devops-stage1-stage2-course-for-modern-tech-professional/

https://vskumar.blog/2019/04/07/how-easily-a-test-analyst-can-learn-aws-with-pocs/

How to start a project with PRINCE2 methodology

Source: How to start a project with PRINCE2 methodology

SDLC & Agile – Interview questions for Freshers -7

In continuation of my previous blog [#6] on this subject following questions and answers are continued:

1. During test driven development [TDD] what are the main tasks need to be considered ?

Ans: During TDD, the following tasks need to be considered:

  • A test first approach need to be facilitated while iteration requirements are being drafted or during model storming activity.
  • The test approach points need to be converted into software specifications to design and develop the software code.
  • Finally a concrete test case finalization can happen during TDD process.
  • Make a Plan to write the code in a testable approach.

2. What is review activity in a project and where all you can have this activity ?

Ans: The Review need to be done against on any output of the activity. Before starting an activity we need to have the base item to work on that activity to complete. Once it is completed the review need to be performed to identify the potential issues. This need to happen across the Agile project activities. The review can be formal or informal depends on the need or situation.

3. What is a code refactoring ?

Ans: In any software code or program, the future requirements need to be ammended. The written instructions need to be flexible to adopt the new steps to accommodate easily in the existing code. If this facility is not available in the code, the new or old developer need to restructure the code to accommodate these amendments. In every code the reusable component or functions insertion is the best practice to utilize for future requirements.

This method is called code refactoring. Many legacy systems, those were coded on ad-hoc basis need to be under code refactoring activity. The Agile process steps can be implemented if the code refactored or if the software has reusable modules. This way the developers or any technical teams can delivery the SPRINT items faster.

To have some understanding on building reusable code please see my videos which has an e-commerce scenario example: https://www.youtube.com/watch?v=zCR6GP1ji60

4. What is Scrum and how it helps in Agile development cycle?

Ans: Scrum is an incremental and iterative software development process/framework in Agile software development. It makes the development team as integrated team to work on a common goal. The teams are also collaborated and mixed together with this process to work on common goals. This way it helps Agile SDLC to deliver the workable software.

5. How the teams are expected to work in a Scrum process ?

Ans: The teams are expected to work in a self organized way. They are also expected to co-locate to one place or through online collaboration within the teams to work closely and to have daily face to face communication with a disciplined approach to reach the goal.

6. How to handle the Requirements volatility in Scrum Process ?

Ans: In a Scrum process the key principle is to accept the requirements changes during the product development. Hence at any given time before deploying the product into production the users can demand for any change and the technical team need to accept it. Hence there is a facility to handle the Requirements volatility in Scrum Process.

7. During the scrum process how the problem definition and its acceptance can be adopted ?

Ans: In Scrum, with multiple iterations the product development is driven. The details of product final goal or vision is not known in one iteration. Once all the iterations are defined only, these symptoms can be known. In the beginning of the project or during requirements envision phase the iterations need to be defined in high level with requirements segregation. Then the iterations clarity need to be available to accept for construction during the SPRINTs making. Then the acceptance criteria is known to the teams to adopt into delivery process for different SPRINTs.

8. How the Scrum Model works ?

Ans: The Scrum model works in the following approach:

  • By focusing on maximizing the team’s ability to deliver quickly.
  • The response for emerging requirements should be faster.
  • More adoption to evolving technologies.
  • Adopting changes towards the market conditions.

9. Whom all the Product owner represents during Scrum process ?

Ans: Product owner represents the Product stakeholders and the voice of the customer.

10. What for the Product owner is accountable in a Scrum process ?

Ans: The Product owner [PO] is accountable to ensure the teams deliver the value to the business.

Please feel free to contact for any support.

Vcard-Shanthi Kumar V

 

 

 

 

Advertising3.pngFor Intended DevOps Engineers: We also train freshers [limited people] on Agile & Scrum concepts to till DevOps practices and  CDI automation [with tools]. Interested candidates can contact by e-mail/phone to join or book your seat in Bangalore.

For Employers: If you are planning to accelerate your DevOps practices from Agile & Scrum onwards, we can do resourcing for you [in Bangalore]. Please contact for details.

If you are DevOps practices:

https://vskumar.blog/2018/10/17/join-devops-practices-group-on-fb/

 

 

Protected: ISTQB Certification exam coaching – class videos

This content is password-protected. To view it, please enter the password below.

Why the DevOps Practice is mandatory for an IT Employee

DevOps Patterns
devops-process
  1. DevOps is a terminology used to refer to a set of principles and practices to emphasize the collaboration and communication of Information Technology [IT] professionals in a software project organization, while automating the process of software delivery and infrastructure using Continuous Delivery Integration[CDI] methods.
  2. The DevOps is also connecting the teams of Development and Operations together to work collaboratively to deliver the Software to the customers in an iterative development model by adopting Continuous Delivery Integration [CDI] concepts. The software delivery happens  in small pieces at different delivery intervals. Sometimes these intervals can be accelerated depends on the customer demand.
  3. The DevOps is a new practice globally adopted by many companies and its importance and implementation is accelerating by maintaining constant speed.  So every IT professional need to learn the concepts of DevOps and its Continuous Delivery Integration [CDI] methods. To know the typical DevOps activities by role just watch the video: https://youtu.be/vpgi5zZd6bs, it is pasted below in videos.
  4. Even a college graduate or freshers also need to have this knowledge or practices to work closely with their new project teams in a company. If a fresher attends this course he/she can get into the project shoes faster to cope up with the  experienced teams.
  5. Another way; The DevOps is an extension practice of Agile and continuous delivery. To merge into this career; the IT professionals  need to learn the Agile concepts, Software configuration management, Release management, deployment management and  different DevOps principles and practices to implement the CDI patterns. The relevant tools for these practices integration. There are various tool vendors in the market. Also open source tools are very famous. Using these tools the DevOps practices can be integrated to maintain the speed for CDI.
  6. There  are tools related with version control and CDI automation. One need to learn the process steps related to these areas by attending a course. Then the tools can be understood easily.  If one understands these CDI automation practices and later on learning the tools process is very easy by self also depends on their work environment.
  7. As mentioned in the above; Every IT company or IT services company need to adopt the DevOps practices for their customers competent service delivery in global IT industry. When these companies adopt these practices, their resources also need to be with thorough knowledge of DevOps practices to serve to the customers. The companies can get more benefit by having these knowledged resources. At the same time the new joinees in any company either experienced or fresher professional if they have this knowledge, their CTC in view of perks will be offered more or with competent offer they may be invited to join in that company.
  8. Let us know if you need  DevOps training  from  the IT industry experienced people; which includes the above practice areas to boost you in the IT industry.

Training will be given by 3 decades of Global IT experienced  professional(s):

https://www.linkedin.com/in/shanthi-kumar-v-itil%C2%AE-v3-expert-devops-istqb-752201a/

Watch the below videos on why the IT company need to shift to DevOps work culture and practices and what advantages the company can get and the employees can get :

For DevOps roles and activities watch my video:

Folks, I also run the DevOps Practices Group: https://www.facebook.com/groups/1911594275816833/?ref=bookmarks

There are many Learning units I am creating with basics. If you are not yet a member, please apply to utilize them. Read and follow the rules before you click your mouse.

For contact/course details please visit:

https://vskumarblogs.wordpress.com/2016/12/23/devops-training-on-principles-and-best-practices/

Advertising3
Vcard-Shanthi Kumar V-v3

Management Practice-1: Some helpful tips for new Scrum masters under Servant leadership role

Agile-Scrum image-add1

In continuation of my previous blogs on SDLC/Agile/Scrum, this blog can give some tips to Scrum Masters.

As per the Agile manifesto and Scrum principles, the Scrum Master need to work as a servant leader. The typical servant leader how he/she should have characteristics to bring the team alignment for right delivery with CDI speed, I have drafted in  the below content. This can be useful as TIPS to new Scrum master on Agile projects.

What characteristics a Servant Leader should have in the organization ?

Creating the right leadership roles is very important and challenging to any organization with the current trend of the rapid technology or business transformation.  

They need to look into the person’s characteristics very deeply.  At the end of the day these leaders only drive the key aspects of the organization to achieve the results.

There are different leadership roles taken by coaches. One of them and very famous and with value added is;  Servant leadership.

The servant leadership denotes as ‘a philosophy and practice’ of leadership. This concept has been appearing from the prehistoric.  I would like to give a brief introduction of this role in this article, which can help the professionals who would be pursuing into the leadership roles.

When we move forward on analyzing this role, our mindset might have the following questions:

1. What is servant leadership means?

2. How they can thrive the teams in organizations?

3. How they can improve the corporate culture?

4. What is the significance they can create?

5. How this leader can drive high loyalty of the customers?

6. How this leader can build empowered teams to the organization?

7. How the teams can feel being with this leader?

8. Does the organization get the opportunity to drive long term goals with this role?

9. How the organization work culture can be changed timely with this role?

10. How this leadership role can help the organization with accelerated ROI?

 

In any organization servant leaders accomplish the results while reaching to the targets. These leaders give preferences to the needs of their contemporaries. By thumb rule, these leaders are being seen as humble stewards in their organizational resources like; human, financial and physical.

Focus on teams: A servant leader focuses on his/her team members needs towards scaling them into higher levels in their organization by helping them to resolve their issues and promotes their personality development also. These leaders feel it’s a management philosophy which can be applied to in the view of quality of people, work and community spirit.

We can see in many organizations there are several leaders’ supports their employees in the above mentioned areas to ascend them further. Every growing organization needs this kind of leaders to achieve their targets. Without these leaders and their characteristics it would have not been possible many companies rapid growth in the relevant industries.

Servant leader’s characteristics: When we think of their characteristics, certainly the following can come into our mind with leadership analysis thought process.

  •  Listening
  •  Empathy
  •  Healing
  •  Awareness
  •  Persuasion
  •  Conceptualization
  •  Foresight
  •  Stewardship
  •  Commitment to the growth of people
  •  Building community

Understanding people closely: A servant leader attempts to understand and empathize with the team. This leader would not consider them as employees. Their individual respect and appreciation on their personal development would be awarded by the leader. As a manager or leader you can consider any team members tasks, look into its complexity, and support the team member to achieve its result. And you can apply your servant leadership compassion.  The team members would not have realized you earlier, when you applied these leadership techniques to achieve their targets.

Effective management of people and their skills: The servant leaders don’t use their power in getting the things done by the people. Instead they manage the tasks and people through effective discussions. This way the team member also can understand on how their manager is giving the importance and respect to their individual concerns. Their hidden or unused skills or power can be utilized to complete any complex tasks with easy ways. For the future tasks, the minimal discussion time can be taken place to convince the team members, while having built the relationship empathetically.

Focus on operating targets and objectives: The servant leadership also plays to focus on long term operating goals also, rather than short term benefits.  In view of this kind of thought process they derive specific goals towards implementing strategies for the benefits of the organization as well as tuning the teams towards working on the strategic plans and their execution.

Serving with Openness and persuasion: These leaders would have dedication to help and serve others. With their openness and persuasion their leadership qualities can be demonstrates in the organization to achieve any complex activities also with simple.

Vcard-Shanthi Kumar V

 How the servant leadership can build the teams for competencies ?

You can see this video :

To know some of the basics of Agile/Scum practices, visit the below video:

1. Agile: What are Agile manifesto Principles & How they can be used ?

https://www.facebook.com/MicroServices-and-Docker-328906801086961/

And learn many like this, you can join in my DevOps Practices Group:

https://www.facebook.com/groups/1911594275816833/

Advt-course3rd page

How the Project SDLC Model conversion can be done – from Traditional [V-Model] to Agile ?

 

Many teams are being or going to be converted into Agile SDLC from V-model through different IT organizations as per the current IT trends.

When they are on Agile projects, if they do not get any detailed trainings by their organization before this model conversion starts. Their productivity will be slowed down due to lack of understanding on Agile process. They also get confusion on the terminology and Scrum teams process.

Hence one need to understand this conversion process before moving to Agile from V-Model.

I have drafted a comparision between these models and the project phases. This might help if any of you did not get Agile or model conversion training and if you are into Agile project already.  Please remember; you also need to compare with your organization’s SDLC guidelines/needs and follow them also.

At the same time please read all of my blog series for: SDLC & Agile – Interview questions for Freshers,  to know the steps involved in Agile project.

V Model

Question # 1. : During the conversion from V-model  to Agile model; how the User requirements are considered and into which phase of Agile it need to be considered ?

Ans: In Agile model the following phases are considered:

  1. Concept, B) Inception, C) Construction, D) Transition, E) Production, F) Retirement.

In V-model the phases are: A) User requirements [the UAT uses these for product certification], B) Software Requirement Specification-SRS [Being used for System testing], C) High Level Design-HLD [Used for Integration testing], D) Detailed Design Specification-DDS [Used for Integration testing], E) Coding [The code requirements also can be used for coding and during Unit testing these will be used].

  • From the V-Model; the User requirements are considered into the Inception phase.
  • And the Product owner [PO] develops the user stories against to these user requirements with the help of users.
  • The PO divide them into different iterations for SPRINT process as per the Agile model.
  • This will be done under the activities of “Initial Requirements Envisioning” and “Initial Architecture Envisioning”.Question # 2. : How the SRS can be converted from V-Model to Agile model ?

Ans:

  • As per the Agile model the Inception phase should have the activities of “Initial Requirements Envisioning” and “Initial Architecture Envisioning”.
  • The PO should consider the user requirements and map these Software Requirements Specifications [SRS] to them in view of user stories and make a product Backlog [PB].
  • Once this is done the project [Scrum] teams should consider the PB to convert them into the SPRINT to deliver the software into different iterations.
  • On priority the SPRINTs are considered for delivery as per the Scrum process. Question # 3.: How the HLD and DDS are converted into Agile from V-model ?

Ans:

  • As per the Agile model the Construction phase need to have the Current SPRINT.
  • The relevant design specifications need to be pulled into the relevant iterations to work on different SPRINT Cycles.Question # 4.: How the coding activity can be handled in Agile from V-model ?

Ans:

  • Once the HLD and DDS are converted into different SPRINT cycles, the relevant components can be identified to allocate to the developers for coding activity under Construction phase of Agile.
  • The developers consider their delivery of work into different iterations by following Scrum process.
  • The relevant documentation is mandatory as per the Agile process.

 

Question # 5.: How the Integration Testing [IT] can be executed in Agile mode when you transform from V-Model ?

Ans:

  • Once the SPRINT planning is done the coding and unit testing need to be completed by Scrum process.
  • Then the next activity can be IT.
  • This should be executed during Construction phase of Agile.
  • At this stage an initial System Testing is also possible as per the project need, before moving to Transition phase of Agile.

I hope this might give some level of understanding or confidence to move forward with your current Agile process/project.

Please feel free to contact for any of your project delivery support.

Vcard-Shanthi Kumar V

SDLC & Agile – Interview questions for Freshers -6

In continuation of my previous blog  on this subject following questions and answers are continued:

 1. What is rapid prototype model?

Ans:  During rapid prototype model the team will have complete product and technical knowledge to create the demo or skeleton software. Once the users approved, it can be converted into a full pledged product with different features. And it can be considered for Agile delivery under different iterations.  

Example: If the team has knowledge of E-commerce system design, development and implementation they can consider as a product to develop with a prototype for a customer demo. Once it is approved it can be converted into full  product development project using Agile SDLC model.

 

2. What is initial funding?

Ans: In Any Agile project the initial vision is mandatory.

During this activity the ROI is calculated for different phases of project. During Project initiation  the required fund for project initiation phase is released. This will be the initial funding. Once the project initiation is done, the balance of the project funding is released incrementally  from the project budget.

 

3.  What are the work items in Agile project and how can you get them from a story ?

Ans: In Agile projects; the work items are derived from requirements [user story] for developers to construct the code. The requirements from each iteration are transformed into work items by following a decomposition method. [Refer to model storming question in my previous blog]. Example: One user requirement [user story] can be  decomposed into one or more design requirements. One design requirement might need to have a source code to construct. Similarly these process steps are followed for all the iterations.

 

4. When can you consider highest prioritized work items ?

Ans: As per the Agile project during the project initiation phase, the requirements are prioritized under requirements envisioning activity.  From this activity the highest prioritized requirements are collected and grouped into 1st iteration for delivery. Then the technical team can take forward them to decompose to SPRINT. SPRINT items also will have priority in relation to iteration requirement.  [to understand clearly, watch Agile videos posted on this blog site].

 

5. What is planning session in Agile project ?

Ans: Once an initial demo is done to the business users, they might bring up with some changes or new requirements. These need to be discussed among the developers under a planning session to segregate them into different future iterations.  Ultimately the SPRINT items can be derived.

 

6. What is project viability during construction phase ?

Ans: During construction phase the user demo is conducted. At that time the requirements are segregated into different iterations with a consumable solution. If the iteration can fit for the required functional requirements then the technical team can decide as it is viable to proceed. Otherwise, they can consider it is not viable to deliver the heavy sized [in effort] of the project with more requirements and within the given duration along with the  limited resources.

 

7. What is Replenishment of modeling session during business value identification of agile project ?

Ans: During business value identification of Agile project, the new features or requirements are validated by the stakeholders. During this stage each requirement is validated towards incorporating it as software feature. Both the technical and business teams will assess the technical and business value of each requirement for ROI and finalize the requirements for a project or iteration. This process is done during the inception phase by adopting the activity of Requirements envisioning.

 

8. During Initial  stage, for  Architectural requirements envisioning  activity what are the major tasks need to be performed ?

Ans:  We need to identify the high level scope of the requirements, identification of initial requirements stack and identification of architectural vision. This can be considered as initial architecture of the product or project planned to execute using Agile SDLC. Note this will be in very high level product architecture. Sometimes; you may not find the details of the architecture components also. When we move forward on the project the more clarity can be achieved.

 

9. What are the tasks will be performed during iteration modeling ?

Ans: During the iteration modeling;  planning for good estimates identification and planning the work items for the iteration can happen. With these tasks the team can identify the work items for an iteration to start. We can call this activity [iteration modeling] as iteration planning session also within the teams.  

 

10. What are the critical activities need to be performed during model storming ?

Ans: During the model storming following critical activities are performed:

A) Working through specific issues on a JIT [Just In Time] manner.

B) Active participation of stakeholders

C) Making sure the requirements are evolving throughout the project.

D) Consider to model the current needed requirements only and make provision to come back later.  

 

Keep watching this site for further updates.
Contact for any guidance/coaching.

Vcard-Shanthi Kumar V

 

 

 

Management practice-2: Onsite & Offshore co-ordination with Virtual [vendor] team management.

Many customers might have outsourced the IT Projects to different countries through different IT vendors. This blogs can give some thoughts on their current practices changes [if needed] towards “Onsite & Offshore co-ordination with Virtual team management. ”

  1. When the IT activities are outsourced to other countries, the customers might need to evaluate their internal review process for offshore team management and delivery.
  2. Let us assume the customer handles more than 500 outsourced resources globally in different countries.
  3. All these teams need to have their local delivery managers. And atleast one onsite manager for onsite/offshore co-ordination.
  4. When the work packets are segregated to each vendor by country, the customer needs to identify the deliverable activities month by month.
  5. During these activities segregation, the required inputs for offshore teams need to be identified and make sure to deliver as their entry criteria to start the work.
  6. During the activities planning, execution and review phases, the relevant onsite manager need to be involved and the customer approval need to be acquired to make sure customer manager is aware of the activities and the delivery output is honored for billing purpose. [Which is very important for an IT services vendor].
  7. The customer managers also need to make sure the teams are attending the required calls periodically and they are getting into the shoes of the required activities.
  8. The time difference of different countries needs to be followed and fix the feasible timings for onsite and offshore team calls.
  9. Each teams weekly reports by resource need to be supplied to the customer managers through the e-mails or to save the cycle time online tools can be used.
  10. The online tools should have features to port the project plans and the activities tracking mechanism.
  11. The projects issues register features also need to be available online for the virtual teams.
  12. The customer approval process need to be there for any new activity or extension of the current activity.
  13. The resources replacement or termination process should be available.
  14. Each resources project activity and training process need to be automated and it should be linked to the activity and also to the performance evaluation tools.
  15. Once the team function starts, their performance management need to be available online.
  16. It can be integrated to the activities tracking system. Against to each activity the mapped resources work need to be reviewed and evaluate by activity wise.
  17. For every quarter the resources need to be evaluated against to the performance by customer and also by the manager. The team manager need to educate the resource to upgrade his/her skills as per the project/customer needs.
  18. Infact, it helps the resource also plan their learning activity in this speedy IT learning culture.
  19. It helps to the vendor and the customer to evaluate the resource stage by stage. And later on CSAT rating will be easy for the managers of customer and teams.
  20. All the above process steps are required to follow just to manage the virtual teams, which is apart from the other operational or enterprise architecture tools integration and their implementation.

I hope with this process/methods no resource will have bad feedback from customer and also from their managers. Their retention policies can be implemented well by the vendor and customer easily. And the resources also feels happy on this healthy work environment/culture.

Please feel free to contact for any consulting support.

Vcard-Shanthi Kumar V

 

Advertising3

https://youtu.be/WrMQxZQxx4I

https://www.youtube.com/watch?v=3diWq7VPN70&list=PL5NmC6t0N8tFxOrMmupCzUjoEmqEfh2m_

ISTQB ATA exam TIPS-2: on Test Planning activities

In continuation of my ISTQB ATA[Advanced Test Analyst] exam blogs/videos(s):

https://vskumar.blog/2017/10/17/istqb-ata-exam-tips-1-on-test-monitoring-and-control-sub-topic/

In this blog, I have made a list of the detailed test planning activities/tasks in the below chart.

I have posted the links for  Audio/Video below this chart.

Tmmi-Test planning-activities

Audio/Video for the above slide:

Audio sharing link:

https://drive.google.com/file/d/0B5__r7s-mqnVZFduV3duRktaalk/view

Video sharing link:

https://drive.google.com/open?id=0B5__r7s-mqnVcFBqM00zd0xBT2M

You can download for effective watching.

You can also join to learn the concepts freely: https://www.facebook.com/groups/410279332851728/?

slide1

ISTQB ATA exam TIPS-1: on Test Monitoring and control sub-topic.

In continuation of my ISTQB ATA[Advanced Test Analyst] exam videos(s).This blog can give some preparation plan for ISTQB on Test Monitoring and control sub-topic

The below slide points gives some tips towards preparing for Test Monitoring and control sub-topic. I also wrote some sample questions and posted on Kindle related to this topic. A book video was made and posted on my Channel.

I have given the  Audio/Video links in the bottom, for the following content elaboration.

Tips-ATA-TMC-PPT-Video-contents-vsk

Audio/Video for the above slide:

Audio sharing link:

https://drive.google.com/open?id=0B5__r7s-mqnVYUFZNWlSX1NGNzA

Video sharing link:

https://drive.google.com/open?id=0B5__r7s-mqnVOGF2SHNZZkMzTnc

You can also join to learn the concepts freely: https://www.facebook.com/groups/410279332851728/?

slide1

Data migration Projects and the best practices

 

The data migration is a critical activity for any business. Unless one uses the best practices acceleration it can not be done successfully. 

Also this can help you on how the Agile practices implementation can be useful in several ways in theses projects.

The critical data migration projects can have the below major activities.

During data discovery phase:

  1. Identifying the Business scenario based data.
  2. Identifying the relevant data schemas.
  3. Identifying the tables/queries/SPs, etc. on each of the Data schemas.
  4. Planning for each of the Data schemas extraction, Transformation and loading to target applications.
  5. Verifying the source and target data flows for business operation continuity.

If you are looking for the details, on the request of users an e-book has been published by me under the below title. Click on this link to visit its page: https://www.amazon.com/dp/B018EP9MO2https://www.amazon.com/dp/B018EP9MO2

 

Cover April 2016

 

Vcard-Shanthi Kumar V

 

 

slide1

https://www.youtube.com/watch?v=dhn2a8f-yoE&t=167s

https://www.youtube.com/watch?v=fe5S-Mav1tU

SDLC & Agile – Interview questions for Freshers -5

In continuation of my previous blog  on this subject following questions and answers are continued:

1. What is retrospective in agile and where it can be useful?

Ans: During agile development model in each iteration different requirements are considered to design, develop and construct the code. While performing these tasks there can be different issues identified and resolved by the teams at each stage. The teams need to maintain knowledge information against to each issue as lessons learnt. These issues resolution mechanism processes are going to be considered for any process improvements  for next iteration. During the retrospective [after completing iteration] the team is going to discuss the lessons learnt  from the completed  iteration and the best practices  identified for next iteration. The retrospective is a mandatory activity for every iteration of Agile projects. And this need to be conducted before starting the next iteration.

 

2.   What is continuous stream of development in agile model?

Ans: As per the agile concept continuous software delivery need to  happen by following iterative development. Let us assume the development team consider the four days for development and fifth day it need to go for release and deployment, fifth day onwards developer considered as other iteration/SPRINT as their continuous development activity. The developers are picking up one  by one SPRINT items for their construction activity this is called as continuous stream of development. When the testing activity is ongoing the developer can pickup other workable items from the SPRINT to do construction activity.

 

3. What is Continuous Delivery[CD] in Agile ?

Ans: As per the agile concepts and principles, the developer need to get small chunk of workable item only which can be delivered in hours or few days.  When this kind of continuous development is happening through the agile developers there will be builds for continuous testing and deployments. Obviously then the agile project leads to have continuous  delivery [CD] of software into production with small chunks of functionality or fixes.

Example: Many technology companies consider each SPRINT item to complete in hours only to speed up their ongoing software deployments for their daily business needs. This kind of concept is called as Continuous Delivery [CD] in Agile.

 

4.  What is transition activity and their tasks involved in  agile project?

Ans:  Transition activity is start with deploying software release into production. Once the software construction phase is signed off the transition activity need to be started, typically transition activity contains following tasks.

i) Active stakeholder participation

ii) Final system testing

iii) Final acceptance testing

iv) Finalize documentation

v) Final testing of the release

vi) Train end users

vii) Train production staff

viii) Deploy into production.

All the above tasks are performed in the sequential order.

 

5.  What is final system testing during transition stage?

Ans: Once software can be deployed  internally, the planned system testing need to be conducted by testing team for a specific iteration. Once system testing is passed or certified the  acceptance testing need to be started.

 

 6.  When can you conduct final acceptance testing in agile model?

Ans:  In any agile project developers need to conduct a skeleton software demo to the users. Depends on the design requirement once users approved it, the Construction phase need to be  started. Once the software is constructed and  it can be deployed internally for various levels of testing during the transition stage of agile project. At this stage the software release is deployed in test environment. Then the  system testing is conducted and signed off.  The final acceptance testing is conducted on the software to be delivered to the users in production. Once the final acceptance is signed off the remaining tasks are being performed during transition phase, as mentioned in the list of tasks.

 

7. When can the pilot testing  happen and who all will perform it?

Ans: During the transition stage once the acceptance test is signed off , and final document is done, the software build is executed under a pilot test in a preproduction test or in a production environment depends on the organization policy. The pilot test is attended by the business users and testers or nominated coordinator along with the development team and operations[ops] team.

 

8.  During the transition stage who all need to be trained?

Ans:  Once the pilot test is done software end users and the production staff (ops team) needs to be trained to operate the product in live [production] for business operations.

 

9.  When can you deploy the system into production?

Ans: During transition stage once the pilot test is signed off, end users and production staff will be trained on software system and then it is deployed into production.

 

10. How a  prototype can be designed ?

Ans: When the business user give some requirements which consists of user interface and some data processing to provide output, there are two ways we can design prototype software; a) Prototype model  b) Design and developing the complete software.

a) Prototype model: During prototype model developer design and develop the critical requirements of the users and demonstrate those things as the skeleton software. The skeleton software will not have the complete software operations. It will have an user interface to get an idea by the user on the software to be delivered by the development in future. Once user approved skeleton model, developer can design complete model through Agile SDLC. Note; the prototype model or process can be applied  for one or more SPRINT cycles or iterations.

b) Design and developing the complete software: This kind of software happens in a regular Agile project process from collection of user story onwards. All the agile phases and their tasks will be applied for execution. If the team agreed to a demo [for prototype], the user demos can also happen as and when required for each SPRINT during construction phase.

Keep watching this site for further updates.

Contact for any guidance/coaching.

 Vcard-Shanthi Kumar V

 

https://youtu.be/vpgi5zZd6bs

https://www.youtube.com/watch?v=fe5S-Mav1tU

Continuous test automation planning during Agile iterations

Continuous test automation planning during Agile iterations

Please refer to my blog and videos on Agile practices and the importance of Re-usable code libraries for cycle time reduction.

During the reusable code usage and the iterations or sprint planning, the test automation also can be planned, designed and implemented.

This blog eloborates on  the easy processes can be used to implement it and demonstrate the cycle time reduction. Please note atleast after passing the two cycles of tests on the selected manual scripts need to be planned for test automation.

I am trying to elaborate on the process of the Automation of unit testing and component or module integration test automation. Please note the test automation is also a development project. Hence some of the phases are similar to SDLC. The pictorial chart elaborates the detailed steps involved in these test phases automation. Module (Unit) or Component Development in Agile: The below contents and the chart narrates the relationship of automation Development process and the Testing process under each development phase. Development and Testing process Relationship table:

Phase Development Process Test Process
Module (Unit) or component Development Design module from requirements Perform test planning and test environment set up.
  Code module Create test design and develop test data.
  Debug module Write test scripts or record test scenario using module.
  Unit test module Debug automated test script by running against module. Also, tools that support unit testing [Purify, etc] can be used.
  Correct defects Rerun automated test script to regression test as defects are corrected.
  Conduct Performance Testing Verify system is scaleable and will meet the performance requirements. This is the entry criteria for Integration test automation.
Integration
Build system by connecting modules.Conduct Integration test with connected modules.Review trouble reports. Combine unit test scripts and add new scripts that demonstrate module inter-connectivity. Use test tool to support automated integration testing.
  Correct defects and update defect status. Rerun automated test script as part of regression test, as defects are corrected.
  Continued Performance Testing Activities At this point, Verifying system is scaleable and will meet performance requirements with the integrated modules. If this passes then the system test or VVT entry can be considered.

Below chart demsontrates the process steps to be used for test automation of unit test and integration testing:

UT&IT

The acronyms used in the chart: TC–>Test case, TD–>Test data, TR–> Test requirement, UT–>Unit test, IT–> Integration test.

All the automated test scripts and test data  need to be preserved under configuration management tools.

Choosing the right tools for test automation comes under tools evaluation process. Once the tools are identified, the above processes can be planned and adopted for regular practice on the Agile projects.

 

https://www.youtube.com/watch?v=XlhM5FmKcsc&list=PL5NmC6t0N8tHJoaaOAjM58bhu18zzbPI1

 

Vcard-Shanthi Kumar V-v3

SDLC & Agile – Interview questions for Freshers -3

Agile Cirlce1

In continuation of my previous blog [https://wordpress.com/post/vskumar.blog/1944] on this subject following questions and answers are continued:

1.  During selection of Agile  Projects what are the main activities need to be performed?

Ans: a) Identify potential projects

         b) Prioritize potential projects

         c) Develop initial vision

         d) Consider project feasibility

 2.  How to identify potential projects in an organization?

Ans: In any organization initially, the critical business processes are identified. These critical business process are analyzed for automation through IT  technology. Then they are going to be converted into IT projects. And will be planned as per the Agile methodology for planning, execution and delivery.

3. How the  projects can be prioritized/identified during Agile ?

Ans: Once the critical business processes are identified and planned for IT projects, and these will be the potential projects for prioritization and planning. 

4. What is the initial vision to a project and what should be done at that stage?

Ans: Each prioritized  project should be associated with initial vision of organization. During this stage the ROI [Return On Investment] is calculated for a project. 

5.  What is a project feasibility?

Ans: Once ROI is measured for  a project. The feasibility of doing that project is going to be researched. If it is feasible only the project team is going to consider it as an IT project.

 6.  To initiate the Agile project what are the main activities need to be performed?

Ans: a) Identification of active stakeholders and their participation.

         b) Identification of budgeting and funding to the project. The Required support           need  to be given.         

        c) Building the initial teams.

         d) Envisioning the initial requirement with agile concept by following iterative development plans.

         e) Identifying initial architecture and design.

         f) Identifying required development, testing environments and setting up these environments.

      7. What is the process involved in initial requirement envisioning

             Ans:  In a prioritized project the customer requirements are gathered and these requirements are prioritized by user group. The project team is going to segregate them into different iterations of a software delivery. Each iteration is going to be considered in  one software delivery.

8. What are the steps involved during  initial architecture?

Ans: During initiation of project,  the project team need to identify the required technical teams for  different iterations of delivery. The skeleton architecture need to be enhanced to baseline it with reference to the identified iterations of entire software project delivery. Then the technical teams need to understand their delivery responsibility in view of different software components.

9.  During the initiation of the project what are the steps involved in setting up  the environments ?

Ans:  i) During the environmental  setup activity as per the agile development process we need to have the following environments by minimum.

a) Development environment

b) Testing environment

c) Production environment.

          ii) The above environments needs to be satisfied as per the initial architectural requirement.

iii) If modification is required it needs to be documented for specific iteration.

10. During construction phase what is the meaning or importance for active stakeholder participation?

Ans:  In agile development by following different process steps it facilitates for a sustainable development environment. During this stage the stakeholders are called [for example ] as; sponsors, developers, users, etc. These stakeholders can vary from one project to another project, when it is going to be defined for a project selection. The stakeholders involvement is mandatory during construction phase to review and decide on  further movement  of construction phase tasks. At this stage they might ask for some more changes also. The developers should be in a position to accept them as per the Agile manifesto rules. The Product Owner [PO] can decide on the size of the SPRINT [iteration] delivery. Hence during construction stage the stakeholder participation is mandatory to finalize the final SPRINT delivery. If it is a maintenance or bug fixes project sometimes the stakeholders may not be required, the PO only can decide the final SPRINT.

Keep watching this site for further updates.

Contact for any guidance/coaching.

View my UrbanPro-profile

URL is : https://www.urbanpro.com/vskumar

Vcard-Shanthi Kumar V

https://youtu.be/gYc1UmFO1Vs?list=PL5NmC6t0N8tFJsbESoH3sxrAmCfhlT0wp

For next blog, visit: https://vskumar.blog/2017/10/05/sdlc-agile-interview-questions-for-freshers-4/

 

 

Typical DevOps activities by role

 

 

 

 

 

 

 

 

I have made a video with a detailed explanation on these roles/activities/tasks.

https://youtu.be/WrMQxZQxx4I

 

For my DevOps basic course watch this:

https://youtu.be/vpgi5zZd6bs

 

Vcard-Shanthi Kumar V

 

Management practice-3:How to plan and initiate your cloud transformation?

Initiate-Page1

Current IT setup before cloud

Initiate-Page2

Cloud evaluation-chartInitiate-Page3

Initiate-Page4

On the above content I have made a video and posted  on my youtube  channel [Shanthi Kumar V] video URL: http://youtu.be/98zboBaXgoU

By seeing big cloud services vendors you and your team do not need to get confusion and get into their attraction shoes. Each vendor offer the services and their products differently. If you consider the above steps many of the issues or risks can be minimized and you will have your route map for cloud transformation along with the selection steps.

Currently; many testing or DevOps teams setup their test environments by using their existing hardware and using Virtual Machines [VMs] concepts. After certification of the product those VMs can be destroyed also.

Similarly; by having your internal cloud machines [VMs] you can automate the deployment process also by adopting into DevOps culture. Where many global organizations have achieved this activity under their regular management practices.

If you would like to know the basic cloud concepts and models please visit my cloud blogs site: https://vskumarcloudblogs.wordpress.com/

am open to offer a 2 hours online workshop [globally] to motivate your teams on the above steps, if they are on the similar activities. Please feel free to be in touch with me.

Please contact for any of the below services:Vcard-Shanthi Kumar V

https://www.youtube.com/watch?v=98zboBaXgoU&t=300s

 

https://youtu.be/vpgi5zZd6bs

SDLC & Agile – Interview questions for Freshers -4

Agile Cirlce1

In continuation of my previous blog [https://wordpress.com/post/vskumar.blog/1944]

on this subject following questions and answers are continued:

 

1.  What is a collaborative development approach in  agile development model ?

Ans: In any agile project as per the Agile manifesto principles the team need to pull up the ideas through a prototype like;  either phased prototype or iterative prototype or rapid prototype. With these pulled ideas, the team need to work together by sharing knowledge among themselves and which is considered as a collaborative development approach. 

2.  What is model storming during construction phase of an agile development model?

Ans: When the initial requirements are envisioned they all are being transmitted into different iterations. A single team or multiple teams need to execute the iteration during software code construction. The requirements also can be changed or newly added by the stakeholders as per the agile principles at any stage of Agile project phases.  The team need to be brain stormed to execute the iterations correctly and completely as per the user’s desire. The iteration can be considered as a single agile model for construction phase and this model storming can happen within team for clear understanding of SPRINT by each developer. During the model storming; the requirements decomposition happens like; from user story to design specifications those can lead to SPRINT items, and from design to code specifications. Depends on the team planning; sometimes the outcome of model storming can also be a TDD [Test Driven Design]. [Please look into my youtube videos on Agile topic reusable code example]

 

3. What is Test Driven Design [TDD]?

Ans: Any requirement [story] need to be decomposed into design requirement. Each design requirement need to be converted into code through construction phase. When the code is visualized [before development] by the developer a test driven scenario need to be identified or visualized by the developer and it need to be documented into a test case with different test design steps. Once the developer feels this test case can be executed by using different code paths the developer can start the code writing, this concept is called Test Driven Design and using this TDD specification the development can be started.  Hence the Agile developers need to make TDD  1st ready and plan for code writing, review and unit testing. Sometimes the TDD  can be the outcome of the model storming also.

4. What is confirmatory testing?

Ans: In any software build there can be defects through different levels of testing. When the developer fixes one or more defects and deploy code in test environment, the test engineer need to retest it for confirming the software function with reference to the regression requirements or functionality and the fixes [if any]. For every fix confirmation test is mandatory.

 5.  What is evolving documentation?

Ans: As per the agile process when the code is constructed and tested the prepared documents need to be updated with reference to the tested and certified build. If any new requirement has to be incorporated into document, the documentation evolving is an ongoing activity for an iteration build till it goes to production.

 

6.  What is internally deploying software?

Ans: Once the construction is over for an iteration requirement, software can be unit tested and integration tested. If it is passed, it can be move to other test environments. As per the deployment process when we are moving software into the different environments [after test certification or confirmation] the build is known as internally deployable software.

 

7.  When can you finalize the documentation in agile model?

Ans: During the transition stage once the acceptance test is signed off users suggestions are considered to finalize the documentation.

 

8.  What are  tangible and intangible benefits for users?

Ans: In any business requirements there are direct benefits from business to incorporate software requirements into software system which is considered as tangible [direct] benefits. There are intangible [indirect benefits] also  by incorporating different requirements into software with a business usage.

Example: If  the system performance is increased by a technical design  in the software architecture, users can access the data faster which is intangible benefits. Then the  iteration can facilitate to perform the software with faster data access or the web pages appearance can be faster. Sometimes this kind of requirements can come into  technical areas rather than coming through a user story in Agile and those can be intangible benefit. Even we might consider an upgrade to database or OS or memory, etc.  then also the data access speed can be increased.

 

9.  What is the feedback analysis? When it can be done?

Ans: As per the agile principles the stakeholder collaboration is an ongoing activity. At any time the stakeholder can give informal or formal feedback for any software items or in any approach followed by agile teams. In agile model many times informal feedback can happen during the discussion. At the same time the scheduled reviews also can happen. During the review the feedback can be given by the reviewers. Even a test result can come into a feedback category. All these feedback items need to be analyzed for delivering a working software by the teams as per the principles.  Sometimes the feedback analysis outcome can come into process improvements areas for the next iteration and these should be considered for Retrospective items. Hence the feedback analysis is a mandated activity at every task completion stage in  Agile project.

 

10.  What is demo in agile model?

Ans: With reference to the rapid prototype approach agile teams are supposed to demonstrate skeleton design for a new module. it is a plan to demonstrate skeleton system to the stakeholder and to get the feedback for processing further SPRINT  or Iteration items. This demo is organized depends on the software or initial plan for a given iteration.

Keep watching this site for further updates.

Contact for any guidance/coaching.

 

Vcard-Shanthi Kumar V

SDLC & Agile – Interview questions for Freshers -2

Agile Cirlce1

In continuation of my previous questions blog [https://vskumar.blog/2017/09/04/sdlc-agile-interview-questions-for-freshers-1] on this topic these were made.

SDLC and Agile Model:

Questions on SDLC Phases:

1. How the agile methodology has been architected?

Ans: The agile methodology has been architected with 12 principles to govern the agile development approach.

2. What is highest priority during agile development model?

Ans: The highest priority is customer satisfaction and the early and continuous delivery of software which will work for the customer requirement.

3. Why the agile development models need to accept the request on irrespective of the development stage?

Ans: As per the  fundamental approach of agile development  it provides facility to the users towards inception of new or enhanced requirements before the delivery.

4. During agile development approach who all need to work together?

Ans: The business people and software developers need to work collaboratively and consistently throughout the project life cycle.

5. To get the right delivery what do we need to do during agile development model?

Ans: In agile project we need to have self motivated individuals at the same time we also need to supply the required human and nonhuman resources to get the job done.

6. When the life cycle of agile model ends?

Ans: The agile model continues till the retirement of the product or project. When the customer decides the retirement of the product then the project operation is terminated. 

7. Why do we need to have face to face conversation during agile development approach?

Ans: The agile principle guides to have face to face conversation among the project resources to have most efficient and effective method of communication.

8. How can you measure the progress and success of agile project?

Ans: The basic concept of agile is to deliver the working software of component.

9. How  the agile development process need to be promoted and to whom  all ?

Ans: Agile development process need to be promoted in a  sustainable development for continuous delivery to the sponsors, developers and users.

10. Why do we need technical excellence and good design project delivery?

Ans: The concept of the agile is for continuous delivery to the users as per the requirements in an iterative development approach. The team capacity needs to be accelerated towards the functions and processes to work on good software design.

Keep watching this site for further updates.

Contact for any guidance/coaching.

View my UrbanPro-profile

URL is : https://www.urbanpro.com/vskumar 

 

Vcard-Shanthi Kumar V

Your customer issues and services

 

 

Customer issues closure

Contact for services/solutions:

Vcard-Shanthi Kumar V

Are you a new customer or vendor for IT services or on outsourcing ? – then predict these issues

IT Startup &amp; lack of ITSM service design practicesGlobal Startup IT services-issues1

 

The feasibility of services from this scenario are as below for both customer and IT services vendor :

  1. You might be a customer given IT work outsourcing to a vendor. For mediating the satisfaction under CSAT we can serve you.
  2. You might be an IT Services vendor not able to satisfy the customer. You need an independent seasoned IT consultant to work for mediating, we can serve for you.

Please Contact for [global] IT services:

Vcard-Shanthi Kumar V

 

 

SDLC & Agile – Interview questions for Freshers -1

Agile Cirlce1

If you are a fresher for an IT  job trials this might be useful.

Please note as per the current global IT Industry trend most of the IT organizations have moved into Agile SDLC  and Continuous delivery cycles. Hence you, being fresher should be ready with this knowledge. I have made some of the below questions related to this topic.

[Also look into my old blog: https://vskumar.blog/2016/11/24/on-job-training-for-future-software-engineers-freshers-how-it-saves-their-career-time/]

SDLC AND Agile Model:

Questions on SDLC Phases:

1. What are the general phases for SDLC [Software Development Life Cycle] ?

Ans: In any development model  [SDLC] following are the different phases for software delivery : 

a) Requirements Investigation and analyzing

b) Design

c) Development

d) Implementation

e) Management

2. Where can you get requirement specifications in SDLC?

Ans: During the phase of Requirement investigation and analysis, the output will be Software Requirement Specifications. In every project during this phase user involvement is essential to get the business requirements to make the right software.

3. What is the procedure to derive the design specification?

Ans: During design phase the design specifications will be output of this activity. During this phase the final SRS is considered and it should be derived for design specification against each requirement. One requirement can have more than one design specifications. Basically you will be decomposed the software requirement into one or more design specification(s).

4. What is development or construction?

Ans: Once the design specifications have been baselined, the developer takes the design specifications to convert them into code. This activity is called constructing or developing code. The technology should be used for coding need to be  specified in the design documentation. Example: Let us assume you want to develop the code in Java, so the technology should be Java.

5. What is implementation in SDLC?

Ans: The implementation activity need to be started once the code construction is completed, the code construction involves coding, code review and unit testing, integration testing. Once these 3 tasks are completed the project is moved to next phase that is implementation. During implementation phase the relevant test environment is considered for deployment of software builds for test cycles. Depends on the SDLC model;  system testing and user acceptance testing can be performed, during the implementation software build can be deployed into live  once the user certify UAT [User Acceptance Testing]. The Live environment is also called production environment.

 

6. What is the meaning for  software management and retirement?

Ans: Once the software is deployed into production or live environment under first release there can be bug fixes  or software enhancements; those can occur under application management life cycle and which can be a software management also. With this concept software is being upgraded during its life time. When the new technology or business systems are considered towards   equivalent or more of the current software features then current software build should  be retired.

Example: A mainframe [COBOL/DB2/CICS] application can be converted into windows based with Java technology. Then the existing COBOL/DB2/CICS application can be planned for a retirement with the replacement of the newly planned application. The new application can also have some more software features or the same features can be implemented.

Questions on Agile:

7. How the agile development model pulls the ideas ?

Ans: Agile development model pulls the ideas in a phased manner in the following way, by using a) Prototyping   b) iterative development c) Rapid prototyping. During these phases the stakeholders or users involvement is mandatory. Their needs or suggestions also comes into the ideas for making the right software.

8. How the agile model champions the ideas?

Ans: By following various phases, different ideas are generated into the agile model. Using this approach it accelerates  the software engineering team to get the right results through different software delivery iterations.

9. Why traditional approach of SDLC is not suitable for agile development model?

Ans: During the traditional approach we do not have prototyping and iterative development in the SDLC. Using the prototyping the demo can be conducted on a conceptual model of the [new or existing] software. Then the  users can visualize these thoughts to extend the demo version into their live software. Then iterations comes into picture as  part by part to deliver  the working software in the agile development model.

To give you with some  more clarity;  Agile development model involves continuous construction and delivery using the phases of prototyping and iterative. For each iteration there can be prototype demonstration. Once the demo is approved the iteration will start for construction and implementation. In traditional model if we want to use for prototyping there is a phased prototype model and rapid prototype model are used, once they are approved by users the project team need to choose one of the traditional model SDLC. In this case there are two parts of delivery need to be considered where as in an agile model they are in-built for fast planning and iteration.

10. During agile model what kind of teams need to be formed to initiate the project?

Ans: To work in the agile development project we need the teams in small size, highly talented and responsive people.

11. During agile model how software requirements  are considered for delivery?

Ans: Agile team needs to consider the essential,  prioritized and deliverable requirements [within cycle time] from the users and construct the software in small increments those are called SPRINTS for delivery.

SW-Eng interviews

 

Next series of questions are continued……… in the below blog url:

https://vskumar.blog/2017/09/28/sdlc-agile-interview-questions-for-freshers-2/

You can look for my agile topic based videos:

https://www.youtube.com/edit?o=U&video_id=zCR6GP1ji60

 

https://www.youtube.com/edit?o=U&video_id=DiIhkCby0tU

 

 

If you are looking for any guidance please contact me and use the below Vcard:

Vcard-Shanthi Kumar V

  

 

 

 

 

How the ambiguities can be resolved for defect clarity in a mini project ?

Sometimes many teams in a project get confusion on the test cycles process and the importance of the testing teams, and support to them. This situation might create ambiguities within them.

In this blog I would like to elaborate different operational roles during the test cycles planning/performance [Since the offline requests were received].

In any project, apart from the development [SDLC] teams there are testing teams and the user groups. Sometimes the user groups can have Business Analysts [BAs] also. Now, let us go through the typical process required for test planning and the execution.

Assuming the environment is a mini project, having an independent tester and the BA along with the developer and all are reporting to the one single Project Manager.

The following points can be useful for the healthy testing environment:

  1. The BA collects the user requirements and transfers the requirements to the technical teams. The BA also needs to make sure the relevant tester is in the review meeting to be aware of the latest release requirements.
  2. Once the developers complete the GAP analysis on the new requirements with the existing applications, they can come up with the feasible or allowed requirements for the iteration or the current project.
  3. Then the BA needs to seek user approval to go-ahead with the new release.
  4. Once the approval is given, the Development team needs to share the GAP analysis information along with the approved new requirements to the tester for their clear understanding.
  5. The testers need to understand the requirements and also conduct the presentation on the test scenarios to the BA. If development team attends this session it can benefit them to understand the future defects faster and fixes them ontime.
  6. Once the test scenarios are agreed by the BA, the tester need to keep working on the test planning, test strategy and the approach of the testing. This information need to be shared to the BA and the development team. Once the development team and the testing team agrees on the reviewed contents, the tester need to plan for writing the test cases, data, test cycles and the environment planning.
  7. The test cases and the data need to be reviewed by the BA and the development team needs to be aware on the test coverage.
  8. Once the test execution schedule is arrived, the tester needs to execute the test cases as per their sequence and the schedule. If they find the defect, it needs to be simulated number of times to the developers [as needed]. This way it can give clarity to the developers on the raised defect to understand and fix faster to save the project cycle time or to meet the schedule. The BA need to monitor the defects and their status.
  9. By following the above series of steps the ambiguities can be nullified among the teams for smooth functioning of the project delivery on time.

slide1

cover-ta-qstns

Visit: https://www.amazon.com/dp/B01MD1OMXU

https://www.youtube.com/watch?v=vAxJkPcKVJ4

https://www.youtube.com/watch?v=dhn2a8f-yoE

 

Sample Book video- ISTQB ATA exam practice questions #Kindle

https://www.youtube.com/watch?v=vAxJkPcKVJ4

ISTQB ATA SAMPLE EXAM QUESTIONS FOR PRACTICE Kindle Edition

cover-ta-qstns

Visit: https://www.amazon.com/dp/B01MD1OMXU

Verify the knowledge videos from the YouTube channel.

You can watch a demo class for Test Analyst test process from URL: :
https://www.youtube.com/watch?feature=player_detailpage&v=dhn2a8f-yoE

For Foundation:

For A test automation Video please visit:

There is a Part2 also, please watch it in URL: http://youtu.be/An4_EMA9gbE

slide1

You can also join to learn the concepts freely: https://www.facebook.com/groups/410279332851728/?

Practice ISTQB Test analyst sample questions #8

Slide10.PNG
slide1

How to Reduce Agile cycle time with reusable code ? [with Video lessons] # Kindle

Agile practices and the importance of Re-usable code libraries for cycle time reductionReusable code usage for Agile iterations planning by examples:

In many Agile transformation sessions the Agile practitioners or savvy’s discuss more on the process related activities rather than elaborating on the technical or software engineering process steps to reduce the cycle time.

At the same time prior to the Agile meetings, activity efforts need to be defined by the designers and the developers. Unless they identify the size of the reusable code components in the applications it is not worth for conducting the Release or Sprint planning meetings for planning of the iterations.

Hence it is the moral responsibility of the technical teams to apply this kind of practices ahead of Agile process or Scrum meetings.

If you are interested to know what reusable code with examples is, this E-Book can be useful. Using this technique, you can plan for code refractor and its cleaning also to get ROI on future Agile iterations. During Scrum meetings, these are the important topics where technical people need to discuss for customer’s ROI acceleration planning and also the cycle time reduction acceleration. The team’s technical capabilities also can be accelerated by following these practices regularly.

I have considered an application example of E-commerce site building for defining the Sprint planning and their iterations. Each iteration has been divided into different reusable code components design parts.

The relevant graphics have been designed and added into this E-book. The software configuration processes with Code Items process have been discussed also.

One can answer the following after understanding this E-Book content:
How to define the reusable code?
How the Iterations can be planned?
Is it possible to demonstrate the iterations cycle time reduction?
What are the entry criteria for Sprint planning?
What are the jumpstart activities required for designers before Agile release meeting?
How to manage the code components with configuration management process?
How to plan the efforts reduction for Sprint cycles?

The proposed or mandatory readers are:
Agile developers
Agile Designers
Agile PMS
Agile Product Owners
Agile teams
Who all intended to learn Agile Practices?

It is cheaper now, please visit: http://www.amazon.com/Technical-best-practices-reusable-iterations-ebook/dp/B012CHK20Q/ref=sr_1_10?ie=UTF8&qid=1452047932&sr=8-10&keywords=Shanthi+Vemulapalli

Reusable-code-Cover1-Pixels

https://www.youtube.com/watch?v=zCR6GP1ji60

https://youtu.be/DiIhkCby0tU

 

https://www.youtube.com/watch?v=EVvIbJWaPoY

 

https://www.youtube.com/watch?v=tXcIWFsT-hU

 

https://www.youtube.com/watch?v=ueBvm-0U5JQ

https://www.youtube.com/watch?v=ONl2iE1Ejko

https://www.youtube.com/watch?v=qCRGa2G0TmY

 

https://www.youtube.com/watch?v=65S0_eqauwQ

https://www.youtube.com/watch?v=xjcCYLNwk2M

 

Vcard-Shanthi Kumar V

Visit for Agile interview questions:

https://vskumar.blog/2017/09/04/sdlc-agile-interview-questions-for-freshers-1/

Visit for DevOps FAQs:

Devops-practices-faqs-1

 

https://vskumar.blog/2017/10/14/typical-devops-roles-and-activities/

How to initiate a Project using PMI methodology ?

I am trying to attempt to elaborate the PMI steps during project chartering, with a scenario  and a chart from the following.

The PMI defines the project charter under Project initiation process group [PIPG].

Chartering the project is a major step under this PIPG. The project charter authorizes the PM to plan and use the allocated budget, time and resources. By using these entities the PM need to complete the objectives of the project with better planning, execution and control towards reaching the organization’s targets.

They are mentioned in the below chart.

PMI-Project charter processes'

 

For a successful project manager assessing and defining all of them are very essential upfront during the project initiation phase with Chartering process step.

By identifying them, the PM or a Program manager also can identify the risk mitigation areas before starting any activity. The required risk and contingency planning can be done for the activity’s smooth functioning. At the same time these two managers also can well plan for cost control by keeping percentage of the buffer budget from the allocated or planned budget.  Hence it helps in controlling the project overruns also.

Normally, in any IT organizations taking care of these measures happens upfront due to the resources costing for the activity. Hence most of the clients are greedy in controlling the resources cost as per their role or responsibility. Once the cost is hiked and the allocated budget is eaten up by the program, there is a possibility of unavailability of the funds. Due to these financial constraints, obviously the client needs to close the project or program. Ultimately it is a failure of a Program or Project Manager also due to risks mitigation or planning  are not done. It not only denotes the failure of these managers and customer,  and also on the resources.

When the resources come out of the project, they will be under confusion on answering on their past project performance.  In reality any 1st attempt recruiter or a recruiting manager might feel this resource did not work well on the project, it happens due to the recruitment team’s  unawareness on these issues. But the resource might have worked or contributed well on the project. Unfortunaltely, for the failed projects many people don’t like to give the feedback.

To avoid this kind of havocs to all the team of the project, if the managers follow the processes correctly and completely, a healthy environment can be created for the resources also. A PM should not think Project charter is a document only; it has lot of controls planning also,  to be successful and also to achieve the planned targets timely within the budget.

A good leader in PM role also educates the resources on these process steps and plans to be aware of by the resources. So that they can feel the responsibility to identify the timely risks and intimate to the PM immediately.  Otherwise,  the reserved or uneducated [on Project] resource might feel, “Okay, It is not working for now! I have done my work for today let me logout  my day”. Then the next day nobody knows the dependent issues. The client also can get astonished for the suddenly appearing issues through the PM or resource and those were not mitigated.

Hope this might help any new PM or existing leads to understand the project initiation stage using the PMI methods with some meaningful scenarios.