Thursday 13 February 2020

Ansible AD HOC commands examples

1
=======
Use the ping module to ping all the nodes in your inventory:-

[sai@san-master-anisble ~]$cat /etc/ansible/hosts
192.161.1.10

[sai@san-master-anisble ~]$ ansible all -m ping -u root -k
SSH password: 
192.161.1.10| SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}


2.
===
[root@san-master-anisble ~]# ansible webservers -m shell -a "/sbin/reboot" -u root -k
SSH password: 
192.161.1.11 | UNREACHABLE! => {
    "changed": false, 
    "msg": "Failed to connect to the host via ssh: Shared connection to 10.219.39.151 closed.", 
    "unreachable": true
}


3.
=============from Control server to Traget Server=============
[root@san-master-anisble opt]# ansible webservers -m copy -a "src=/opt/test2.txt dest=/tmp/test2.txt" -u root -k
SSH password: 
192.161.1.11 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "checksum": "cdcdb882c45c507f08092f6247ca0c25b13e4ee6", 
    "dest": "/tmp/test2.txt", 
    "gid": 0, 
    "group": "root", 
    "md5sum": "fe42c7a375851a6e6ab6efd67b8895f8", 
    "mode": "0644", 
    "owner": "root", 
    "secontext": "unconfined_u:object_r:admin_home_t:s0", 
    "size": 14, 
    "src": "/root/.ansible/tmp/ansible-tmp-1580943557.82-148407876984882/source", 
    "state": "file", 
    "uid": 0
}
[root@san-master-anisble opt]# 


4.
================================Ctrl:-managed server to managed server================
[root@san-master-anisble ~]# ansible webservers -m copy -a "src=/opt/test1.txt dest=/tmp/test1.txt remote_src=TRUE" -u root -k
SSH password: 
192.161.1.11 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "checksum": "dfd5f9682ccd17adb12394fd1e01ed677e6bf5f2", 
    "dest": "/tmp/test1.txt", 
    "gid": 0, 
    "group": "root", 
    "md5sum": "de556121cc4cbc5b33dde4ec60ee507f", 
    "mode": "0644", 
    "owner": "root", 
    "secontext": "unconfined_u:object_r:user_tmp_t:s0", 
    "size": 25, 
    "src": "/opt/test1.txt", 
    "state": "file", 
    "uid": 0
}


5.
==============
[root@san-master-anisble opt]# ansible webservers -m file -a "dest=/opt/test1.txt mode=644 remote_src=TRUE" -u root -k
SSH password: 
192.161.1.11 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "gid": 0, 
    "group": "root", 
    "mode": "0644", 
    "owner": "root", 
    "path": "/opt/test1.txt", 
    "secontext": "unconfined_u:object_r:usr_t:s0", 
    "size": 25, 
    "state": "file", 
    "uid": 0
}
[root@san-master-anisble opt]# 


6.
==================================

[root@san-master-anisble opt]# ansible local -m file -a "dest=/opt/test2.txt mode=755" -u root -k
SSH password: 
192.161.1.10 | FAILED! => {
    "msg": "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this.  Please add this host's fingerprint to your known_hosts file to manage this host."
}


7.
-----
[root@san-master-anisble opt]# ansible local -m file -a "dest=/opt/test2.txt mode=755" -u root -k
SSH password: 
192.161.1.10 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "gid": 0, 
    "group": "root", 
    "mode": "0755", 
    "owner": "root", 
    "path": "/opt/test2.txt", 
    "secontext": "unconfined_u:object_r:usr_t:s0", 
    "size": 14, 
    "state": "file", 
    "uid": 0
}
[root@san-master-anisble opt]# ls -ltrh


8.
=========how to delete files on control server ==
[root@san-master-anisble opt]# ansible local  -m file -a "dest=/opt/test2.txt state=absent" -u root -k
SSH password: 
192.161.1.10 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "path": "/opt/test2.txt", 
    "state": "absent"
}
[root@san-master-anisble opt]# 



9.
============how to delete files on managed server 
[root@san-master-anisble opt]# ansible webservers -m file -a "dest=/opt/test1.txt state=absent remote_src=TRUE" -u root -k
SSH password: 
192.161.1.11 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "path": "/opt/test1.txt", 
    "state": "absent"
}


10.
[root@san-master-anisble opt]# ansible webservers -m file -a "path=/opt/a state=absent remote_src=TRUE" -u root -k
SSH password: 
192.161.1.11| CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "path": "/opt/a", 
    "state": "absent"
}
[root@san-master-anisble opt]# 


11.
========managed servers file permission/ownership change==========
[root@san-master-anisble tmp]# ansible webservers -m file -a "dest=/opt/yum.log mode=755 owner=noc group=noc  remote_src=TRUE" -u root -k
SSH password: 
192.161.1.11 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "gid": 1000, 
    "group": "noc", 
    "mode": "0755", 
    "owner": "noc", 
    "path": "/opt/yum.log", 
    "secontext": "system_u:object_r:usr_t:s0", 
    "size": 0, 
    "state": "file", 
    "uid": 1000
}
[root@san-master-anisble tmp]# 


12.
=========================Dir creation on managed server=========
[root@san-master-anisble tmp]# ansible webservers -m file -a "dest=/opt/sankar mode=755 owner=noc group=noc state=directory  remote_src=TRUE" -u root -k
SSH password: 
192.161.1.11 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "gid": 1000, 
    "group": "noc", 
    "mode": "0755", 
    "owner": "noc", 
    "path": "/opt/sankar", 
    "secontext": "unconfined_u:object_r:usr_t:s0", 
    "size": 6, 
    "state": "directory", 
    "uid": 1000
}
[root@san-master-anisble tmp]# 


13.
=========managing packages in managed servers===
[root@san-master-anisble tmp]# ansible webservers -m yum -a "name=http* state=present" -u root -k
SSH password: 
192.161.1.11 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "changes": {
        "installed": [
            "http*"
        ]
    }, 
    "msg": "", 
    "rc": 0, 
    "results": [
        "Loaded plugins: fastestmirror\nLoading mirror speeds from cached hostfile\n * base: centos.excellmedia.net\n * 
....
....
....

 
14.  
======== latest version update ====
[root@san-master-anisble tmp]# ansible webservers -m yum -a "name=http* state=latest" -u root -k
SSH password: 
192.161.1.11 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "changes": {
        "installed": [], 
        "updated": []
    }, 
    "msg": "", 
    "rc": 0, 
    "results": [
        "All packages providing http* are up to date", 
        ""
    ]
}
[root@san-master-anisble tmp]# 


14.
=========service madule on managed server(start http service start)
[root@san-master-anisble tmp]# ansible  webservers -m service -a "name=httpd state=started" -u root -k
SSH password: 
192.161.1.11 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "name": "httpd", 
    "state": "started", 
.....
.....


16.
---- stopped service on managed server ===

[root@san-master-anisble tmp]# ansible  webservers -m service -a "name=httpd state=stopped" -u root -k
SSH password: 
192.161.1.11 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "name": "httpd", 
    "state": "stopped", 
.....
.....


17.
============== Gathering facts(discoverd variables about a system =========
[root@san-master-anisble tmp]# ansible all -m setup -u root -k
SSH password: 
192.161.1.11 | SUCCESS => {
    "ansible_facts": {
        "ansible_all_ipv4_addresses": [
            "10.219.39.151"
        ], 
        "ansible_all_ipv6_addresses": [
            "fe80::dbdb:a08a:cf20:ddb2"
        ], 
        "ansible_apparmor": {
            "status": "disabled"
        }, 
        "ansible_architecture": "x86_64", 
        "ansible_bios_date": "12/01/2006", 
        "ansible_bios_version": "VirtualBox", 
        "ansible_cmdline": {
            "BOOT_IMAGE": "/vmlinuz-3.10.0-1062.9.1.el7.x86_64", 
            "LANG": "en_US.UTF-8", 
            "crashkernel": "auto", 
            "quiet": true, 
            "rd.lvm.lv": "cl/swap", 
            "rhgb": true, 
            "ro": true, 
            "root": "/dev/mapper/cl-root"
        }, 
        "ansible_date_time": {
....
....
....



18.
===== user creation ======
[root@san-master-anisble ~]# ansible all -m user -a "name=sai1 password=sai@123" -u root -k
SSH password: 
[WARNING]: The input password appears not to have been hashed. The 'password' argument must be encrypted for this module to work properly.
192.161.1.11 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "comment": "", 
    "create_home": true, 
    "group": 1001, 
    "home": "/home/sai1", 
    "name": "sai1", 
    "password": "NOT_LOGGING_PASSWORD", 
    "shell": "/bin/bash", 
    "state": "present", 
    "system": false, 
    "uid": 1001
}


19.
------------------------------------------------------------------------
[root@san-master-anisble ~]# ansible localhost -m ping -e 'ansible_python_interpreter="/usr/bin/env python"'
localhost | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}
[root@san-master-anisble ~]# 


20.
--
[root@san-master-anisble ~]# ansible --version
ansible 2.9.2
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.5 (default, Aug  7 2019, 00:51:29) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
[root@san-master-anisble ~]# 


21.
---
[root@san-master-anisble ~]# ansible-config --version
ansible-config 2.9.2
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible-config
  python version = 2.7.5 (default, Aug  7 2019, 00:51:29) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
[root@san-master-anisble ~]# 

3 comments:

  1. Water Hack Burns 2 lb of Fat OVERNIGHT

    Over 160000 men and women are utilizing a simple and secret "liquid hack" to lose 2 lbs each and every night while they sleep.

    It is very simple and works all the time.

    Here's how to do it yourself:

    1) Take a glass and fill it up with water half full

    2) And now learn this proven hack

    and you'll be 2 lbs lighter the very next day!

    ReplyDelete
  2. Nice and good article. It is very useful for me to learn and understand easily. Thanks for sharing
    Best AWS Training Online
    Aws Devops Training Online

    ReplyDelete