====== Ansible AD HOC ====== ===== Módulo shell ===== # ansible oracle -m shell -a "ping -c2 10.240.100.30" 10.240.100.20 | CHANGED | rc=0 >> PING 10.240.100.30 (10.240.100.30) 56(84) bytes de dados. 64 bytes de 10.240.100.30: icmp_seq=1 ttl=64 tempo=0.370 ms 64 bytes de 10.240.100.30: icmp_seq=2 ttl=64 tempo=0.665 ms --- 10.240.100.30 estatísticas de ping --- 2 pacotes transmitidos, 2 recebidos, 0% packet loss, time 1043ms rtt min/avg/max/mdev = 0.370/0.517/0.665/0.147 ms ===== Módulo user ===== # echo 'senha' | openssl passwd -1 -stdin $1$dnQWQmxQ$GAiBhaPEppiuGLDPJvc6Z0 ==== Criando usuário ==== # ansible local -m user -a 'name=suporte state=present shell=/bin/bash password=$1$dnQWQmxQ$GAiBhaPEppiuGLDPJvc6Z0' 10.240.100.10 | CHANGED => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python3" }, "changed": true, "comment": "", "create_home": true, "group": 1001, "home": "/home/suporte", "name": "suporte", "password": "NOT_LOGGING_PASSWORD", "shell": "/bin/bash", "state": "present", "system": false, "uid": 1001 } * **-m**: Determina o nome do módulo, em nosso exemplo será user; * **-a**: Define argumentos passados ao módulo; * **state**: Define o estado do usuário como presente (present) e ausente (absent); * **shell**: Estabelece a shell utilizada pelo novo usuário; * **password**: Determina o hash de senha do usuário. # ansible local -m shell -a "getent passwd | grep suporte" 10.240.100.10 | CHANGED | rc=0 >> suporte:x:1001:1001::/home/suporte:/bin/bash ==== Removendo usuário ==== # ansible local -m user -a 'name=suporte state=absent remove=yes' 10.240.100.10 | CHANGED => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python3" }, "changed": true, "force": false, "name": "suporte", "remove": true, "state": "absent", "stderr": "userdel: suporte mail spool (/var/mail/suporte) not found\n", "stderr_lines": [ "userdel: suporte mail spool (/var/mail/suporte) not found" ] } * **remove**: Indica se a home do usuário será removida, quando o respectivo usuário for removido (absent). ===== Módulo package ===== ==== Instalando pacotes ==== # ansible local -m package -a 'name=htop state=present' 10.240.100.10 | CHANGED => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python3" }, "cache_update_time": 1677786768, "cache_updated": false, "changed": true, "stderr": "debconf: delaying package configuration, since apt-utils is not installed\n", "stderr_lines": [ "debconf: delaying package configuration, since apt-utils is not installed" ], "stdout": "Reading package lists...\nBuilding dependency tree...\nReading state information...\nThe following additional packages will be installed:\n libnl-3-200 libnl-genl-3-200\nSuggested packages:\n lm-sensors lsof strace\nThe following NEW packages will be installed:\n htop libnl-3-200 libnl-genl-3-200\n0 upgraded, 3 newly installed, 0 to remove and 60 not upgraded.\nNeed to get 200 kB of archives.\nAfter this operation, 589 kB of additional disk space will be used.\nGet:1 http://br.archive.ubuntu.com/ubuntu jammy/main amd64 libnl-3-200 amd64 3.5.0-0.1 [59.1 kB]\nGet:2 http://br.archive.ubuntu.com/ubuntu jammy/main amd64 libnl-genl-3-200 amd64 3.5.0-0.1 [12.4 kB]\nGet:3 http://br.archive.ubuntu.com/ubuntu jammy/main amd64 htop amd64 3.0.5-7build2 [128 kB]\nFetched 200 kB in 0s (449 kB/s)\nSelecting previously unselected package libnl-3-200:amd64.\r\n(Reading database ... \r(Reading database ... 5%\r(Reading database ... 10%\r(Reading database ... 15%\r(Reading database ... 20%\r(Reading database ... 25%\r(Reading database ... 30%\r(Reading database ... 35%\r(Reading database ... 40%\r(Reading database ... 45%\r(Reading database ... 50%\r(Reading database ... 55%\r(Reading database ... 60%\r(Reading database ... 65%\r(Reading database ... 70%\r(Reading database ... 75%\r(Reading database ... 80%\r(Reading database ... 85%\r(Reading database ... 90%\r(Reading database ... 95%\r(Reading database ... 100%\r(Reading database ... 121219 files and directories currently installed.)\r\nPreparing to unpack .../libnl-3-200_3.5.0-0.1_amd64.deb ...\r\nUnpacking libnl-3-200:amd64 (3.5.0-0.1) ...\r\nSelecting previously unselected package libnl-genl-3-200:amd64.\r\nPreparing to unpack .../libnl-genl-3-200_3.5.0-0.1_amd64.deb ...\r\nUnpacking libnl-genl-3-200:amd64 (3.5.0-0.1) ...\r\nSelecting previously unselected package htop.\r\nPreparing to unpack .../htop_3.0.5-7build2_amd64.deb ...\r\nUnpacking htop (3.0.5-7build2) ...\r\nSetting up libnl-3-200:amd64 (3.5.0-0.1) ...\r\nSetting up libnl-genl-3-200:amd64 (3.5.0-0.1) ...\r\nSetting up htop (3.0.5-7build2) ...\r\nProcessing triggers for libc-bin (2.35-0ubuntu3.1) ...\r\nNEEDRESTART-VER: 3.5\nNEEDRESTART-KCUR: 5.15.0-67-generic\nNEEDRESTART-KEXP: 5.15.0-67-generic\nNEEDRESTART-KSTA: 1\n", "stdout_lines": [ "Reading package lists...", "Building dependency tree...", "Reading state information...", "The following additional packages will be installed:", " libnl-3-200 libnl-genl-3-200", "Suggested packages:", " lm-sensors lsof strace", "The following NEW packages will be installed:", " htop libnl-3-200 libnl-genl-3-200", "0 upgraded, 3 newly installed, 0 to remove and 60 not upgraded.", "Need to get 200 kB of archives.", "After this operation, 589 kB of additional disk space will be used.", "Get:1 http://br.archive.ubuntu.com/ubuntu jammy/main amd64 libnl-3-200 amd64 3.5.0-0.1 [59.1 kB]", "Get:2 http://br.archive.ubuntu.com/ubuntu jammy/main amd64 libnl-genl-3-200 amd64 3.5.0-0.1 [12.4 kB]", "Get:3 http://br.archive.ubuntu.com/ubuntu jammy/main amd64 htop amd64 3.0.5-7build2 [128 kB]", "Fetched 200 kB in 0s (449 kB/s)", "Selecting previously unselected package libnl-3-200:amd64.", "(Reading database ... ", "(Reading database ... 5%", "(Reading database ... 10%", "(Reading database ... 15%", "(Reading database ... 20%", "(Reading database ... 25%", "(Reading database ... 30%", "(Reading database ... 35%", "(Reading database ... 40%", "(Reading database ... 45%", "(Reading database ... 50%", "(Reading database ... 55%", "(Reading database ... 60%", "(Reading database ... 65%", "(Reading database ... 70%", "(Reading database ... 75%", "(Reading database ... 80%", "(Reading database ... 85%", "(Reading database ... 90%", "(Reading database ... 95%", "(Reading database ... 100%", "(Reading database ... 121219 files and directories currently installed.)", "Preparing to unpack .../libnl-3-200_3.5.0-0.1_amd64.deb ...", "Unpacking libnl-3-200:amd64 (3.5.0-0.1) ...", "Selecting previously unselected package libnl-genl-3-200:amd64.", "Preparing to unpack .../libnl-genl-3-200_3.5.0-0.1_amd64.deb ...", "Unpacking libnl-genl-3-200:amd64 (3.5.0-0.1) ...", "Selecting previously unselected package htop.", "Preparing to unpack .../htop_3.0.5-7build2_amd64.deb ...", "Unpacking htop (3.0.5-7build2) ...", "Setting up libnl-3-200:amd64 (3.5.0-0.1) ...", "Setting up libnl-genl-3-200:amd64 (3.5.0-0.1) ...", "Setting up htop (3.0.5-7build2) ...", "Processing triggers for libc-bin (2.35-0ubuntu3.1) ...", "NEEDRESTART-VER: 3.5", "NEEDRESTART-KCUR: 5.15.0-67-generic", "NEEDRESTART-KEXP: 5.15.0-67-generic", "NEEDRESTART-KSTA: 1" ] } # ansible local -m shell -a 'dpkg -l | egrep htop' 10.240.100.10 | CHANGED | rc=0 >> ii htop 3.0.5-7build2 amd64 interactive processes viewer ==== Removendo pacotes ==== # ansible local -m package -a 'name=htop state=absent' 10.240.100.10 | CHANGED => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python3" }, "changed": true, "stderr": "", "stderr_lines": [], "stdout": "Reading package lists...\nBuilding dependency tree...\nReading state information...\nThe following packages were automatically installed and are no longer required:\n libnl-3-200 libnl-genl-3-200\nUse 'sudo apt autoremove' to remove them.\nThe following packages will be REMOVED:\n htop\n0 upgraded, 0 newly installed, 1 to remove and 60 not upgraded.\nAfter this operation, 342 kB disk space will be freed.\n(Reading database ... \r(Reading database ... 5%\r(Reading database ... 10%\r(Reading database ... 15%\r(Reading database ... 20%\r(Reading database ... 25%\r(Reading database ... 30%\r(Reading database ... 35%\r(Reading database ... 40%\r(Reading database ... 45%\r(Reading database ... 50%\r(Reading database ... 55%\r(Reading database ... 60%\r(Reading database ... 65%\r(Reading database ... 70%\r(Reading database ... 75%\r(Reading database ... 80%\r(Reading database ... 85%\r(Reading database ... 90%\r(Reading database ... 95%\r(Reading database ... 100%\r(Reading database ... 121243 files and directories currently installed.)\r\nRemoving htop (3.0.5-7build2) ...\r\n", "stdout_lines": [ "Reading package lists...", "Building dependency tree...", "Reading state information...", "The following packages were automatically installed and are no longer required:", " libnl-3-200 libnl-genl-3-200", "Use 'sudo apt autoremove' to remove them.", "The following packages will be REMOVED:", " htop", "0 upgraded, 0 newly installed, 1 to remove and 60 not upgraded.", "After this operation, 342 kB disk space will be freed.", "(Reading database ... ", "(Reading database ... 5%", "(Reading database ... 10%", "(Reading database ... 15%", "(Reading database ... 20%", "(Reading database ... 25%", "(Reading database ... 30%", "(Reading database ... 35%", "(Reading database ... 40%", "(Reading database ... 45%", "(Reading database ... 50%", "(Reading database ... 55%", "(Reading database ... 60%", "(Reading database ... 65%", "(Reading database ... 70%", "(Reading database ... 75%", "(Reading database ... 80%", "(Reading database ... 85%", "(Reading database ... 90%", "(Reading database ... 95%", "(Reading database ... 100%", "(Reading database ... 121243 files and directories currently installed.)", "Removing htop (3.0.5-7build2) ..." ] } ===== Módulo file ===== ===== Criando arquivos ===== # ansible local -m file -a 'path=/etc/nologin owner=root group=root mode=0644 state=touch' 10.240.100.10 | CHANGED => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python3" }, "changed": true, "dest": "/etc/nologin", "gid": 0, "group": "root", "mode": "0644", "owner": "root", "size": 0, "state": "file", "uid": 0 } * **path**: Define a localização e nome do arquivo; * **owner**: Estabelece o usuário dono do arquivo; * **group**: Indica o grupo dono do arquivo; * **mode**: Define em forma octal as permissões de acesso ao arquivo. ==== Removendo arquivos ==== # ansible local -m file -a 'path=/etc/nologin state=absent' 10.240.100.10 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python3" }, "changed": false, "path": "/etc/nologin", "state": "absent" }