# shell 和 command模块 ## 执行命令模块 [shell](http://docs.ansible.com/ansible/shell_module.html) 和 command 这两个模块都用来执行命令,shell的范围更大,支持脚本和管道,因此推荐使用shell。 > -m 指定模块 module > -a 指定参数 args > 当参数为没有空格隔开的内容时,可以不使用引号(单引号/双引号都可以);否则要使用引号。 ### 选项 ### 返回结果 ![](https://box.kancloud.cn/d47ca564dff3cabd930636b630c4be33_606x261.png) ### 命令行使用格式 ansible anserver -m command -a 'hostname' ansible anserver -m shell -a 'hostname' ### 脚本的远程执行 先使用copy模块复制脚本到远程客户端,再使用shell模块执行 # ansible anserver -m shell -a '/tmp/test.sh' 若文件无执行权限,则可使用以下 # ansible anserver -m shell -a '/bin/bash /tmp/test.sh' ### 在playbook中使用格式 - name: shell and command test hosts: s.hi.com tasks: - name: shell test shell: hostname - name: command test command: hostname ### 补充 当不指定模块时,默认使用`command`模块 `ansible hostname -a 'hostname'` ## 示例 # 使用args来执行一些选项 - name: This command will change the working directory to somedir/ and will only run when somedir/somelog.txt doesn't exist. shell: somescript.sh >> somelog.txt args: chdir: somedir/ creates: somelog.txt executable: /bin/bash # /bin/sh不能同时处理重定向和通配符操作,使用/bin/bash可以 - name: Run a command that uses non-posix shell-isms (in this example /bin/sh doesn't handle redirection and wildcards together but bash does) shell: cat < /tmp/*txt args: executable: /bin/bash # 在另一个解释器下执行 - name: Run expect to wait for a successful PXE boot via out-of-band CIMC shell: | set timeout 300 spawn ssh admin@{{ cimc_host }} expect "password:" send "{{ cimc_password }}\n" expect "\n{{ cimc_name }}" send "connect host\n" expect "pxeboot.n12" send "\n" exit 0 args: executable: /usr/bin/expect delegate_to: localhost
  • ansible基础
  • ansible简介
  • ansible安装和测试
  • ansible配置文件
  • yaml在ansible中的用法
  • inventory
  • 变量与facts
  • when语句
  • handler模块
  • ansible模块
  • copy模块
  • cron模块
  • debug模块
  • django_manage模块
  • file模块
  • git模块
  • hostname模块
  • lineinfile模块
  • mysql_user模块
  • mysql_db模块
  • pip模块
  • selinux
  • setup模块
  • shell 和 command模块
  • stat模块
  • supervisorctl
  • systemd
  • timezone
  • unarchive模块
  • user模块
  • wait_for
  • yum和service模块
  • 其他模块或者方法
  • playbooks
  • 复杂的playbook
  • roles
  •