ansible执行shell脚本的方法

1. 编写脚本:pb_shell.sh

wfq@ubuntu:~/playbook$ cat pb_shell.sh
#!bin/sh
echo "today(`date`) is a nice day, since I do some nice demo about ansible and excute very well." > /home/wfq/playbook/pb.log
wfq@ubuntu:~/playbook$

2. 执行ansible命令,将脚本copy到其他几台服务器上

wfq@ubuntu:~/playbook$ ansible asb -m copy -a "src=/home/wfq/playbook/pb_shell.sh dest=/home/wfq/playbook/"
192.168.174.134 | success >> {
    "changed": true,
    "dest": "/home/wfq/playbook/pb_shell.sh",
    "gid": 1000,
    "group": "wfq",
    "md5sum": "79744ccf5b60c7d020bb261d11516252",
    "mode": "0664",
    "owner": "wfq",
    "size": 135,
    "src": "/home/wfq/.ansible/tmp/ansible-tmp-1523198762.69-211691352620479/source",
    "state": "file",
    "uid": 1000
}

192.168.174.131 | success >> {
    "changed": true,
    "dest": "/home/wfq/playbook/pb_shell.sh",
    "gid": 1000,
    "group": "wfq",
    "md5sum": "79744ccf5b60c7d020bb261d11516252",
    "mode": "0664",
    "owner": "wfq",
    "size": 135,
    "src": "/home/wfq/.ansible/tmp/ansible-tmp-1523198762.69-274155692570175/source",
    "state": "file",
    "uid": 1000
}

192.168.174.133 | success >> {
    "changed": true,
    "dest": "/home/wfq/playbook/pb_shell.sh",
    "gid": 1000,
    "group": "wfq",
    "md5sum": "79744ccf5b60c7d020bb261d11516252",
    "mode": "0664",
    "owner": "wfq",
    "size": 135,
    "src": "/home/wfq/.ansible/tmp/ansible-tmp-1523198764.85-163098225256987/source",
    "state": "file",
    "uid": 1000
}

192.168.174.132 | success >> {
    "changed": true,
    "dest": "/home/wfq/playbook/pb_shell.sh",
    "gid": 1000,
    "group": "wfq",
    "md5sum": "79744ccf5b60c7d020bb261d11516252",
    "mode": "0664",
    "owner": "wfq",
    "size": 135,
    "src": "/home/wfq/.ansible/tmp/ansible-tmp-1523198764.89-251052794120091/source",
    "state": "file",
    "uid": 1000
}

wfq@ubuntu:~/playbook$ 

3. 执行ansible命令,在每天服务器上执行pb_shell.sh脚本

wfq@ubuntu:~/playbook$ ansible asb -m shell  -a "sh /home/wfq/playbook/pb_shell.sh chdir=/home/wfq/playbook"
192.168.174.134 | success | rc=0 >>
192.168.174.131 | success | rc=0 >>
192.168.174.132 | success | rc=0 >>
192.168.174.133 | success | rc=0 >>

4. 比如,在131服务器,查看执行生成的日志:

wfq@ubuntu:~/playbook$ cat pb.log
today(2018年 04月 08日 星期日 22:46:19 CST) is a nice day, since I do some nice demo about ansible and excute very well.
wfq@ubuntu:~/playbook$
wfq@ubuntu:~/playbook$ ls
pb.log  pb_shell.sh
wfq@ubuntu:~/playbook$ 

到此这篇关于ansible执行shell脚本的方法的文章就介绍到这了,更多相关ansible执行shell脚本内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • ssh远程执行命令方法和Shell脚本实例

    写这篇博客之前,我google了一堆相关文章,大都是说修改/etc/sudoers,然后NOPASSWD:指定的cmd,但是真心不管用,没有远程虚拟终端这个方法就是浮云,ubuntu10.04 server 亲测!! ssh执行远程操作 命令格式 复制代码 代码如下: ssh -p $port $user@$p 'cmd'    $port : ssh连接端口号  $user: ssh连接用户名  $ip:ssh连接的ip地址  cmd:远程服务器需要执行的操作 准备工作 基于公私钥认证或者用户

  • Linux中执行shell脚本的4种方法总结

    bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本: 复制代码 代码如下: cd /data/shell ./hello.sh ./的意思是说在当前的工作目录下执行hello.sh.如果不加上./,bash可能会响应找到不到hello.sh的错误信息.因为目前的工作目录(/data/shell)可能不在

  • shell脚本4种执行方式

    Linux中shell脚本的执行通常有4种方式,分别为工作目录执行,绝对路径执行,sh执行,shell环境执行. 首先,看下我们的脚本内容 [tan@tan scripts]$ ll total 4 -rw-rw-r--. 1 tan tan 68 May 8 23:18 test.sh [tan@tan scripts]$ cat test.sh #!/usr/bin/bash /usr/bin/python <<-EOF print "Hello Shell" EOF

  • Linux shell脚本的建立与执行

    在进行linux测试时编写脚本是必不可少的.最近经常使用Linux,感觉太频繁地敲击键盘有些累了,于是想到了Shell脚本.可以把太多的命令写成一个脚本,这样每次执行一遍  shell文件,就可以省去了敲击键盘的时间.于是在网上搜了一些有关Linux下脚本编程的内容. Shell不仅仅是命令的收集,而且是一门非常棒的编程语言.您可以通过使用shell使大量的任务自动化,shell特别擅长系统管理任务,尤其适合那些易用性.可维护性和便携性比效率更重要的任务. 用户可以使用任何文本编辑器编辑shel

  • Shell脚本中执行sql语句操作mysql的5种方法

    对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的结果美化,需要进一步完善和调整.以下为具体的示例及其方法. 1.将SQL语句直接嵌入到shell脚本文件中 复制代码 代码如下: --演示环境  [root@SZDB ~]# more /etc/issue  CentOS release 5.9 (Final)  Kernel \r on an \

  • shell脚本中执行python脚本并接收其返回值的例子

    1.在shell脚本执行python脚本时,需要通过python脚本的返回值来判断后面程序要执行的命令 例:有两个py程序  hello.py 复制代码 代码如下: def main():     print "Hello" if __name__=='__main__':     main() world.py def main():     print "Hello" if __name__=='__main__':     main() shell 脚本 te

  • ansible执行shell脚本的方法

    1. 编写脚本:pb_shell.sh wfq@ubuntu:~/playbook$ cat pb_shell.sh #!bin/sh echo "today(`date`) is a nice day, since I do some nice demo about ansible and excute very well." > /home/wfq/playbook/pb.log wfq@ubuntu:~/playbook$ 2. 执行ansible命令,将脚本copy到其他

  • PHP执行shell脚本运行程序不产生core文件的方法

    发现一直不产生core文件,但是手动运行脚本的时候就会产生core文件. 经过朋友指导,原来是脚本执行环境导致的问题: 脚本中加入ulimit -a >> 1.log 打印如下: core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 127364 max

  • 执行Shell脚本的4种方法及区别介绍

    执行shell脚本有以下几种方式 1.相对路径方式,需先cd到脚本路径下 复制代码 代码如下: [root@banking tmp]# cd /tmp  [root@banking tmp]# ./ceshi.sh 脚本执行成功 2.绝对路径方式 复制代码 代码如下: [root@banking tmp]# /tmp/ceshi.sh 脚本执行成功 3.bash命令调用 复制代码 代码如下: [root@banking /]# bash /tmp/ceshi.sh 脚本执行成功 4.. (空格)

  • centos 设置定时任务执行指定脚本的方法

    vim /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # |  .------------- hour (0 - 23) # |  |  .---------- day of mont

  • 在任意目录下使用某个shell脚本的方法

    之前只知道如果想用某个命令的话,在环境变量里设置下这个目录就好了,其实在任意目录下使用某个shell脚本,也是在环境变量里配置. 我的是mac环境: 1. 执行命令 open ./.bash_profile 2. 在文件中添加目录,比如我想用dex转jar的shell脚本,就添加export PATH=/Users/luoxiaohui/apktool/dex2jar-0.0.9.15:$PATH 注意:这里一定不要用什么双引号啥的,我刚开始就是傻逼了,后面在其他目录运行不了脚本,以为这方法不行

  • 详解python执行shell脚本创建用户及相关操作

    用户发送请求,返回帐号和密码 ###利用框架flask 整体思路: # 目的:实现简单的登录的逻辑 # 1需要get和post请求方式 需要判断请求方式 # 2获取参数 # 3执行shell # 4如果判断都没问题,就返回结果 导包 ... 给模版传递消息 用flash --需要对内容加密,因此需要设置 secret_key , 做加密消息的混淆 app = Flask(__name__) app.secret_key = 'kingdomai' 使用wtf实现表单,需要自定义一个表单类 #va

  • shell for循环、循环变量值付给其他shell脚本的方法

    本文主要将在shell中如何编写for循环,并将循环变量作为下个shell脚本的参数. shell for 循环: #!第一种写法 类似C.Java for ((i=1; i<=100; i ++)) do echo $i done #!第二种写法 in应用 for i in {1..100} do echo $i done #!第三种写法 seq 使用 for i in `seq 1 100` do echo $i done 将循环变量赋值到下一个脚本: 在运行shell脚本时候,有三种方式来

  • 使用python执行shell脚本 并动态传参 及subprocess的使用详解

    最近工作需求中 有遇到这个情况 在web端获取配置文件内容 及 往shell 脚本中动态传入参数 执行shell脚本这个有多种方法 最后还是选择了subprocess这个python标准库 subprocess这个模块可以非常方便的启动一个子进程,并且控制其输入和输出 Class Popen(args,bufsize = 0,executable=None, stdin =None,stdout =None,stderr =None, preexec_fn = None,close_fds =

  • Java程序去调用并执行shell脚本及问题总结(推荐)

    摘要: 该文章来自阿里巴巴技术协会(ATA)精选集 背景 我们在开发过程中,大部分是java开发, 而在文本处理过程中,主要就是脚本进行开发. java开发的特点就是我们可以很早地进行TDDL, METAQ 等等地对接: 而脚本开发的特点就是在进行批处理的时候非常方便. 背景 我们在开发过程中,大部分是java开发, 而在文本处理过程中,主要就是脚本进行开发. java开发的特点就是我们可以很早地进行TDDL, METAQ 等等地对接: 而脚本开发的特点就是在进行批处理的时候非常方便. 前阵子我

随机推荐