[deyu1@kvm19 ansible]$ ansible-doc shell
[deyu1@kvm19 ansible]$ ansible-doc shell | grep ^EX -A3 EXAMPLES: - name: Execute the command in remote shell; stdout goes to the specified file on the remote. ansible.builtin.shell: somescript.sh >> somelog.txt
- name: Change the working directory to somedir/ before executing the command. ansible.builtin.shell: somescript.sh >> somelog.txt args: chdir: somedir/
# You can also use the 'args' form to provide the options. - name: This command will change the working directory to somedir/ and will only run when somedir/somelog.txt doesn't exist. ansible.builtin.shell: somescript.sh >> somelog.txt args: chdir: somedir/ creates: somelog.txt
cat < /tmp/*txt
,參數 executable 指定使用 /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) ansible.builtin.shell: cat < /tmp/*txt args: executable: /bin/bash
- name: Run a command using a templated variable (always use quote filter to avoid injection) ansible.builtin.shell: cat {{ myfile|quote }}
# You can use shell to run other executables to perform actions inline - name: Run expect to wait for a successful PXE boot via out-of-band CIMC ansible.builtin.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
# Disabling warnings - name: Using curl to connect to a host via SOCKS proxy (unsupported in uri). Ordinarily this would throw a warning. ansible.builtin.shell: curl --socks5 localhost:9000 http://www.ansible.com args: warn: no