一,ansible的shell模块和command模块的区别? shell模块:在远程主机上执行主控端发出的shell/python脚本 command模块:不能调用shell指令,没有bash的环境变量,也不能使用shell的一些操作,在遇到"<",">","|","&"将会终止. 它不支持变量.重定向.管道符等,这些操作需要用shell模块执行. 说明:刘宏缔的架构森林是一个专注架构的博客,地址:htt…
一,ansible的script模块的用途 script 模块用来在远程主机上执行 ansible 管理主机上的脚本, 即:脚本一直存在于 ansible 管理主机本地, 不需要手动拷贝到远程主机后再执行 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest 对应的源码可以访问这里获取: https://github.com/liuhongdi/ 说明:作者:刘宏缔 邮箱: 371125307@qq.com 二,scri…
一,ansible的get_url模块用途: get_url模块可以在受控机下载文件 可以理解成从受控端执行wget 下载的url支持:http | https | ftp   三种协议 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest 对应的源码可以访问这里获取: https://github.com/liuhongdi/ 说明:作者:刘宏缔 邮箱: 371125307@qq.com 二,get_url模块例子:下…
一,ansible的setup模块的用途: 用来获取主机的信息 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest 对应的源码可以访问这里获取: https://github.com/liuhongdi/ 说明:作者:刘宏缔 邮箱: 371125307@qq.com 二,setup模块的使用例子: 1,获取受控端主机的所有信息 [liuhongdi@centos8 ~]$ ansible yujian -m setup…
一,ansible的user/group模块的用途: ansible的user模块用来实现:生成用户.删除用户等用户的管理ansible的group模块用来实现:生成组.删除组等组的管理 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest 对应的源码可以访问这里获取: https://github.com/liuhongdi/ 说明:作者:刘宏缔 邮箱: 371125307@qq.com 二,group模块的使用例子…
一,ansible的file模块的用途 file 模块实现对文件的基本操作. 例如: 创建文件或目录 删除文件或目录 修改文件权限等 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest 对应的源码可以访问这里获取: https://github.com/liuhongdi/ 说明:作者:刘宏缔 邮箱: 371125307@qq.com 二,file模块的例子: 1,使用file模块创建文件夹: #state的取值: d…
                                  1.需求: 需要在多台主机上,发送文件.执行命令,进行快速部署 2.ansible 远程复制文件 例子:在当前节点(20.88.14.7) 上向其他指定的节点发送文件 (1)创建host---基于密码连接其他节点 vim  host [ip_list] 20.88.14.8 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass="root" 20.88.1…
我们一般使用linux的时候,都是在Windows上安装一个ssh客户端连接上去.那么从一台linux如何连接到另一条linux呢?使用ssh命令即可,因为每台linux机器自己都有一个ssh客户端.现在我们使用Python的paramiko模块可以实现ssh客户端,通过Python脚本远程登录一台机器并执行相关操作.为什么要使用Python来实现ssh客户端呢?主要作用是用来作批量管理.如果让你使用ssh命令登录1台linux机器还好,但是如果让1000台机器同时执行一个命令怎么办呢?当然你可…
cron 系统调度进程,使用它在每天的某时间或一周.一月的不同时间运行 at 使用它在一个特点的时间允许一些特殊的作业 & 使用它在后台允许一个占用时间不长的进程 Nohup 使用它在后台运行一个命令,即使在用户退出时也不受影响 1,每一个用户都可以有自己的crontab文件,但是在较大系统中,管理员一般会禁止这些文件,在整个系统中只保留一下这样的文件,系统管理员通过cron.deny和cron.allow这两个文件来禁止和运行用户有自己的crontab文件 2,crontab格式  * * *…
一,使用yum/dnf模块要注意的地方: 使用dnf软件安装/卸载时,需要有root权限, 所以要使用become参数 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest 对应的源码可以访问这里获取: https://github.com/liuhongdi/ 说明:作者:刘宏缔 邮箱: 371125307@qq.com 二,用yum模块卸载软件 #name:软件的名字 #state: 状态,取值有:present:默…
背景: 有一个源码包里面包含很多子目录和makefile,打包后的压缩包太大,需要将make生成的所有二进制文件删除然后再打包. 需求: 因此,要求在制定目录的所有递归子目录中执行make clean以清楚所有的目标文件. 代码: 写了一段简单的shell脚本,有两个功能: 1.遍历所有子目录,如果存在Makefile就执行make clean(当然也可以干更多的事): 2.列出所有子目录下大于10M(当然也可以指定其他值)的文件. 话不多说上代码: #!/bin/bash run_make()…
安装paramiko模块 /usr/local/python36/bin/pip3 install paramiko 1.获取cpu使用率 #!/usr/bin/python #coding=utf8 #target: get the cpu's used of remote linux system import paramiko def getlinux(ssh): # get the result of executing command stdin, stdout, stderr = s…
功能说明:用root用户执行一个脚本,脚本里需要切换到普通用户DT去执行其他命令,其中就用到了EOF,用法如下: #!/bin/bash su - DT<<EOF cd apache-tomcat-7.0.54/bin sh startup.sh EOF 当时以为su - DT就跟在交换界面执行一样会把环境也切换过去,所以在分界符EOF里用的是相对路径,结果一运行就报错: -bash: line 8: cd: apache-tomcat-7.0.54/bin: 没有那个文件或目录 然后就做了个…
1 例如 !#/bin/bash nohup echo "hello world" 2 解决办法 加上 source /etc/profile 就好了 !#/bin/bash source /etc/profile nohup echo "hello world" 3 原因 找不到环境变量,所以先source一下…
ansible中常用的模块详解: file模块 ansible内置的可以查看模块用法的命令如下: [root@docker5 ~]# ansible-doc -s file - name: Sets attributes of files file: attributes: # Attributes the file or directory should have. To get supported flags look at the man page for `chattr' on the…
python脚本和shell脚本一样可以获取命令行的参数,根据不同的参数,执行不同的逻辑处理. 通常我们可以通过getopt模块获得不同的执行命令和参数. 下面我通过新建一个test.py的脚本解释下这个模块的的使用 #!/usr/bin/python # -*- coding: utf-8 -*- import sys import getopt if __name__=='__main__': print sys.argv opts, args = getopt.getopt(sys.arg…
最近在logstash中使用nobody用户启动logstash,一想,nobody用户的shell不是/sbin/nologin吗? 不能登录执行命令呀? 于是看了一下它的启动脚本,是使用其他方式进行的... 玩了几年linux竟然还不知道chroot可以干这事,只知道chroot将根目录切换到某一位置,,汗颜.. 使用su -l nobody -c "命令"方式 然,nobody用户的shell是/sbin/nologin,执行命令失败 # su -l nobody -c &quo…
SSH命令格式 usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-L [bind_address:]port:host:hostport] [-l login_name] [-m mac_spec] [-O ctl_cm…
本例子尝试使用Perl脚本借助Expect模块实现如下目的: 登陆多台设备 设备登陆信息按如下格式存放于文件中. $ cat hosts.txt 192.168.30.7:node1:telnet:bee1:123456 192.168.30.66:node2:ssh:bee2:123456 在每台设备上批量执行命令 要执行的命令集合按如下格式存放于文件中. $ cat cmds.txt date w ifconfig more mylog.txt Perl脚本实现,使用了Expect模块 借助…
帮一个兄弟渗透的过程中在内网搜集到了不少oracle连接密码,oracle这么一款强大的数据库,找了一圈发现没有一个方便的工具可以直接通过用户名密码来提权的.想起来自己之前写过一个oracle的连接工具,拿出来分享下.工具没有用到什么新的技术,希望能给做渗透测试的兄弟们节省一点时间. 支持三种工作模式: 1.普通模式: 前提是拥有一个普通的oracle连接账号,不需要DBA权限,可提权只DBA,并以oracle实例运行的权限执行操作系统命令. 2.DBA模式: 拥有DBA账号密码,可以省去自己手…
命令: ansible -i hosts_20 st  -m shell -a 'service zabbix_agentd star'  -K --become ansible -i hosts_20 st  -m shell -a 'lsof -i:10050'  -K --become 在shell模块报错:| FAILED | rc=127 >>/bin/sh: lsof: command not found 在command模块报错:| rc=2 >>[Errno 2]…
一,ansible的authorized_key模块的用途 用来配置密钥实现免密登录: ansible所在的主控机生成密钥后,如何把公钥上传到受控端? 当然可以用ssh-copy-id命令逐台手动处理,如果受控端机器数量不多当然没问题, 但如果机器数量较多,有几十几百台时,手动处理的效率就成为问题. authorized_key模块就用来把公钥上传到各台服务器实现免密登录 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectfore…
目录 0.Ansible模块语法 1.Command模块 2.Shell模块 3.Scripts模块 4.Copy模块 5.File模块 6.Yum模块 7.Service模块 8.Cron模块 9.Group模块 10.User模块 11.Mount模块 12.Unarchive模块 13.Git模块 14.Systemd模块 0.Ansible模块语法 在ansible中是指需要快速执行一条命令,并且不需要保存的命令,对于复杂的命令则为playbook 查看模块帮助:ansible-doc…
ansible 和 saltstack 都是为了同时在多台主机上执行相同的命令, 但是 salt配置麻烦,ansible基本不用配置, ansible 通过ssh来连接并控制被控节点 1. 安装 第一步: 下载epel源 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 第二步: 安装ansible yum install -y ansible 2. 管控主机秘钥登录被控主机 ssh 秘钥登…
常用模块 Ansible默认提供了很多模块来供我们使用.在Linux中,我们可以通过 ansible-doc -l 命令查看到当前Ansible支持哪些模块,通过 ansible-doc -s [模块名] 又可以查看该模块有哪些参数可以使用. ansible [主机或组] -m [模块名] -a ['模块参数'] [ansible参数] ansible-doc -l # 命令查看到当前 ansible 都支持哪些模块 ansible-doc -s [模块名] # 查看该模块有哪些参数可以使用 自…
Ansible直接执行远程命令,不用ssh登陆交互执行. 如下: ansible all -i 192.168.199.180, -m shell -a "ifconfig" -u supermap 参数解释: -i 连接到远程主机“192.168.199.180,”,注意这里的“,”直接指定主机名列表,没有“,”该参数则被解释为主机名的列表文件. -m 为ansible模块名称,执行shell命令. -a 远程shell命令,为ifconfig(获取网络配置参数). -u 指定执行的…
[Ansible 模块] 就如python库一样,ansible的模块也分成了基本模块和第三方拓展模块(自定义的模块).这些模块其实才是作为真实的逻辑载体,在帮助ansible进行作业. ansible-doc -l 可以列出当前所有已经安装的模块名.ansible-doc xxx可以调出xxx模块的写详细文档. 每个模块多多少少都可以跟一些参数(极少数如ping之类的模块可以不要参数),具体可以有哪些参数也可以参见文档. ■ ping模块 最早用的ansible模块,顾名思义用来检查网络的联通…
写法如下: [root@localhost ~]$ ansible 192.168.119.134 -m command -a 'date' # 对指定的主机远程执行命令,-m 指定使用哪个模块,-a 指定执行哪些命令 [root@localhost ~]$ ansible test -m command -a 'date' # 对指定的主机组远程执行命令,需要先配置/etc/ansible/hosts [root@localhost ~]$ ansible 192.168.119.134 -m…
官网链接:https://docs.ansible.com/ansible/latest/modules/list_of_all_modules.html ansible python module location = ~/python3.x/site-packages/ansible-2.7.8.post0-py3.x.egg/ansible/modules/ File模块 在目录主机创建文件或目录,并赋予其系统权限 - name: create file    file: 'path=/t…
环境 ansible HOST-PATTERN -m MOD_NAME -a MOD_ARGS -C -f forks ssh-keygen -t rsa -P "" ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.51 ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.52 cat /etc/ansible/hosts [webservers] 10.0.0.51 10.0.0.52 [dbserver…