Thursday 13 October 2016

HOW TO FIX: SSH password dialog could not grab the keyboard input while accessing the remote server VM

My Setup

Remote server : 192.168.56.101   (Fedora 24)
Client               :  192.168.56.1      (Fedora 24)     


Scenario

I have hosted few VMs in my remote server. If you try to access the remote server VMs from your client virt-manager, you will end up with the following error.
 

It is a bug and still the bug is not resolved by developers. In order to troubleshoot the issue, We are going to use an alternative method.

Solution

Client side:

1. Generate ssh key
#ssh-keygen 
press enter for 4 times. It will generate the SSH key.

2. Copy SSH key to remote server
#ssh-copy-id 192.168.56.101
Here 192.168.56.101 is my remote server IP. 
It will ask remote server password. provide the remote server password.

3.  Now try to access the remote server VM using client virt-manager. It should now resolve the issue.
 

Sunday 2 October 2016

Enhannce your typing speed by enableling iBus typing booster in Fedora - English & Tamil

Here I'm going to show you how to enable the ibus typing booster in Fedora 24. The best thing is it supports multiple languages. According to the ibus typing booster documentation, It supports around 41 languages. You may check in this link

Install the required packages by using the following command
#dnf install -y ibus-typing-booster hunspell-en

Enable the iBus typing booster:

1. Go to settings ->  Region & Language


2. Click "+" symbol to add language and then search English (hunspell) and then click "Add"



3. You may notice this in your top of the notification bar if you click the language option.



4. Now open any text file and press Super key + Spacebar. This key combination is used to switch between one language into another language. While you are typing it will give word suggestions.



That's it :).

Example procedure for the Tamil language:

Here I am going to show you how to type faster in the Tamil language in Fedora 24.

1. Install hunspell-ta package by using following command
#dnf install -y hunspell-ta

2. Go to settings  -> Region & Language option -> Input source -> press "+"

3. Search for the Tamil language-hunspell and add.


4. Now you can able to see 3 languages in the language bar.


5. If you are following Phonetic based Tamil typing method, you need to setup the configuration for that. To do, select "Tamil" language as input source by pressing super key + spacebar or directly select Tamil in the language bar.


6. Open  setup option -> select "phonetic method" from the "Input method" dropdown menu.


Configuration part is done now :). Now open text editor and start typing in Tamil.



That's it!

If you want to use any other language, while installing the hunspell package -> Just replace the last two character with your language.

For example,
For Hindi language   => hunspell-hi
For Arabic language => hunspell-ar
For French language => hunspell-fr

To find more available languages for hunspell, type following command and it will list all the language hunspell packages.

#dnf search hunspell-*

Thanks for reading.

P.S: Thanks to fedora translation team for the help :).

Reference:
https://fedoraproject.org/wiki/Features/Typing-Booster
https://fedoraproject.org/wiki/QA:Testcase_ibus-typing-booster

Saturday 24 September 2016

Fix common Virtualbox errors in Fedora 24

Today I installed fresh Fedora 24 workstation on my machine. While installing virtual box I have faced a couple of issues. These are the problems and here's how I fixed them.

1. Unable to start Virtualbox



    Install the missing packages: dkms and kernel devel
# dnf install -y kernel-devel-$(uname -r) 
# dnf install -y dkms 
2.  No adapter name under "Host-only adapter"



Open Preference menu and choose "Network" then click "Host-only Networks"



Click "+" to add new host-only network. Then save the changes.



Now go to settings and click Name for host-only adapter under Network options. You can able to see the name now.



3. Unable to install VirtualBox guest edition packages in guest OS:

If you are trying to install virtual box guest addition packages, you may get the following error.



If you look at the log file, you will see kernel related error



To resolve the issue, Install missing kernel packages:
#dnf install -y kernel-devel-$(uname -r) kernel-headers-$(uname -r) gcc 

That's it. If you are facing any other issues regarding VirtualBox in Fedora, please let me know. Thanks for reading my post :)


Friday 19 August 2016

Enable Java run time plugin in Firefox

Due to security reasons, Firefox blocks java plugin by default. In this, I will show you how to install java and enable java plugin in Firefox.
*I am using Fedora 24. You can follow the same steps in any Linux distro.

1. Go to https://java.com/en/download/linux_manual.jsp and download the java RPM file. Here I am downloading Linux X64 RPM file.

2. Install the following RPM file
#rpm -ivh jre-8u101-linux-x64.rpm


3.  Adding the plugin to Firefox
#ln -sf /usr/java/jre1.8.0_101/lib/amd64/libnpjp2.so /usr/lib64/mozilla/plugins/

4. Launch java control panel by using the following command
#/usr/java/jre1.8.0_101/bin/jcontrol

In this dialog box, choose 'Edit Site List' and add the websites that you want to allow java runtime in the web browser.

5. Add those websites in .java/deployment/security/exception.sites as well. That's all! Now you will be able to run the java runtime in your browser.

6. Go on and verify java runtime environment in firefox.

Go to https://www.java.com/verify and click "Verify Java version". It will detect the java plugin and will report you.

Just click 'Run' and it will allow the java plugin to run.

7. Alternatively you can also install javaws
#dnf install -y javaws
That's all for today folks! Cheers.
If any doubt or difficulty, please let me know. 

Wednesday 13 July 2016

Installation & Configuration of EliteBNC

Basically, Bouncer (shortly called BNC) is used to alive always in IRC channels. EliteBNC is one of the free BNC service providers. I recommend EliteBNC for bouncer usage.

Step 1: Install any IRC client on your machine.
#dnf install -y xchat
step 2: Create Freenode account by using this link.
step 3: Open your Xchat and login to your Freenode network.


step 4: Join EliteBNC channel under Freenode network.



step 5: After joining to EliteBNC you will get new window.

In the command box, type !request. Notice that, I have logged in as testuser1. It will request to the EliteBNC server.


Hereafter, you need to register your username with your email id and your favorite channels by using below format.
 !request <username> freenode <your email id> IPv6
For an example,
!request testuser1 freenode example@email.com IPv6
You will get following this message. You need to wait for some time in order to  verify your identity by one of EliteBNC member.


During verification period you can also check your status of verification by using below command
!check <username>
Once verified, you will get similar response what i get below,


Now, Check your email. you will get mail from EliteBNC with login details.


Now, using above credentials we need to create bouncer network. To do this,

Click add button on Network list. Provide any name for the network. Here I have provided Bouncer as the network name.

Then click "Edit" -> in servers tab -> Enter chi.elitebnc.org/1337. In Favorite channel option -> provide your favorite channels list. Then very importantly, In password section enter your password (That password you got from the mail). Then finally click connect.

 
That's it. You always be there in the channels even you really not there in the machine.

If you find any troubles while doing this, feel free to add your thoughts in comments section. Thanks for reading :).

Credits:

I got this thing from Devyani Kota. When I went to search online about this, I can't able to find an easy way of documentation. So that, I have planned to blog about this. Thanks Devyani Kota :).


Tuesday 5 July 2016

Fedora 24 Release Party Bangalore


     We had a Fedora 24 Release Party on the 3rd of July, 2016, organised by Sumantro Mukherjee, Sudhir Dharanendraiah and Sankarshan Mukhopadhyay in Red Hat, Bangalore. During this release party, we discussed new features in Fedora 24. Around 50 people came to the Fedora 24 release party and most of the people were college students.

    We initiated the party by cutting the cake.  

Sudhir (QA Manager) slicing the Fedora cake

Fedora 24 Cake

This event had three booths for each of the following:
1. Cool features of Fedora 
2. Internet of Things
3. Fedora 24 Installation desk - Here, we installed Fedora 24 OS for the participants. 

After that, Sumantro and Arvind explained new features of Fedora 24. 
Arvind initiated Fedora 24 Release Party
Sumantro explaining Fedora 24 new features
In the second session, Sumantro talked about 'Internet of Things' on Fedora and Pidora.

Pidora


This sums up the morning session.During lunch, Sachidananda talked about the history of Linux.

Sachidananda talks about History of Linux

Hereafter, I had presented "The Power of Linux" presentation and discussed the advantages of using Linux operating system and made comparisons between Linux and other operating systems. 
In the afternoon session, Suraj Deshmukh talks about DGPlug training. 


SurajD talks about DGPlug training

 Richa Rupela talked about her contribution to open source, how she began her journey in the open source world and also shared ideas with the audience on how to contribute to open source.


Richa talks about her open source contribution

In  the evening session, Sumantro demonstrated how to contribute to Fedora projects. After demonstrating the presentation, interested attendees tested Fedora Bodhi packages. They also earned badges at the end.




Saturday 2 July 2016

Automation with Ansible

Ansible is an open source software which is used as configuration management tool as well as orchestration. Using Ansible, we can deploy multiple application in multiple nodes simultaneously without any human interactions. When it comes to features, it covers following things.

  • Agentless
  • Easy to use 
  • Intelligent automation system
  • Unlike other configuration management tools like puppet and chef, in Ansible there is no need to install additional packages on remote nodes.

Terms:
Following terms are considered while using Ansible.

Control node - Control node is a machine where we need to install ansible. This control node controls remote nodes.

Managed hosts - Remote nodes are called as managed hosts.

Inventory file - This is a simple text file. It contains the location of managed hosts in the control node.

You can find more terms here, that are used in Ansible.

Requirements:
  • Passwordless SSH authentication between control node and managed hosts.
  • Python could be installed on managed hosts. 
     (Nowadays, Mostly all Linux distributions comes with pre-installed Python package and SSH. So there is no need to install anything on the managed hosts to use Ansible. Only requires passwordless SSH authentication)

Passwordless authentication between Control node & Managed hosts:

Generate SSH key on Control node

#ssh-keygen


Copy SSH key to Managed hosts
    
 #ssh-copy-id <Managed Host IP/Hostname>



(Note: Here my control node IP is 192.168.56.1. I have two managed hosts that are 192.168.56.101 and 192.168.56.102)  

Now try to login via SSH to Managed hosts

#ssh <managed host IP/hostname>



Now it will login to managed hosts without providing a password.

Installing Ansible on Control node

#dnf install -y ansible                    (For Fedora based machines) 
#yum install -y ansible                  (For Red Hat, CentOS, Scientific Linux based machines) 
#apt-get install ansible                 (For Ubuntu based machines)
Inventory File
  
     Inventory file is a simple text file. It is located in /etc/ansible/hosts by default in the control node. But we can also able to change the inventory file location in /etc/ansible/ansible.cfg file. inventory file stores the location of managed hosts. Managed hosts may be separated into different groups in the inventory file.

Adding managed hosts in inventory file
vim /etc/ansible/hosts
[web-servers]
192.168.56.101
192.168.56.102 




Here 192.168.56.101 and 192.168.56.102 are my managed hosts. web_servers is group name of those managed hosts. Groups are useful in inventory file. It is used to divide managed hosts depends on it's functional usage.

Testing connectivity

By using ping module we can check the connectivity of control node and managed nodes. There are lot of modules are available in Ansible. You can find all those Ansible modules here.

#ansible -m ping web-servers


Ad-hoc commands
  
   Ad-hoc commands are nothing but a single line command. The following command is one example for ad-hoc command.


#ansible -m command -a 'uptime' web_servers

here, -m = modules and -a = attribute.It will show how long the system has been running.



Playbooks

  Playbooks are nothing but a YAML format text file. Ansible playbooks are written in YAML format human readable language format. It makes Ansible easy to understand.
  When we want to deploy multiple applications on managed hosts or need to configure something on managed hosts, that time of situations ansilbe playbooks comes here. It is like shell script, but easier than writing shell script. Playbook contains multiple tasks and it executes on multiple machines.

Example Playbook

   The following playbook will install apache server on managed hosts and finally test the apache server.
#vim Web-server.yml
---
- name: setup website
  hosts: web_servers
  tasks:
  - block:
    - name: Install httpd package                  
      yum: name=httpd state=latest          
  - block:
    - name: firewalld permits http service
       firewalld: service=http permanent=true state=enabled
  - block:
    - name: httpd enabled and running
      service: name=httpd enabled=true state=running
    - name: firewalld enabled and running
      service: name=firewalld enabled=true state=restarted
  - block:
    - name: test html page
      shell: echo "Welcome to Ansible test page" > /var/www/html/index.html
- name: Test website
   hosts: web_servers
   tasks:
   - name: latest python-httplib2 version installed
      yum: name=python-httplib2 state=latest
   - name: Verify the web server
      uri: url=http://localhost status_code=200  
You can also get this above code in my github acccount. Here is the link to get the code.
Save the above code as example_playbook.yml file. Here I am using multiple modules. you can get modules usage and functions on this page.

Note: Ansible strictly follows indentation so be careful while giving whitespaces on YML scripts.
You can also check your indentation of scripts by using following command,
#ansible-playbook --syntax-check  <playbook file>
In the above code, tasks can be separated by blocks. In above code,

  • The first block of code will install apache package. Here I am using yum module.
  • The second block of code will allow http in the firewall.   
  • The third block of code enables apache and firewalld on startup. Here i am using service module.
  • The fourth block of code will create index file. Here i am using shell module.
  • Finally, the last task will test web server.
Running Playbook
    #ansible-playbook example_playbook.yml



If you are facing any issue while doing this, feel free to put your thoughts in command box. I will help you. Thanks for reading.

Getting help
   Similar to man pages in Linux, there is a command available for Ansible where you can get help.
#ansible-doc <module-name>
For an example service module
#ansible-doc service

 If you are facing any issue while doing this, feel free to put your thoughts in command box. I will help you. Thanks for reading.