Ansible Module command: Difference between revisions
Jump to navigation
Jump to search
Line 15: | Line 15: | ||
<syntaxhighlight lang='yaml'> | <syntaxhighlight lang='yaml'> | ||
- name: A command example | - name: A command example | ||
command: some-command arg1 arg2 | command: some-command arg1 arg2 # the command can be specified here, or with 'cmd', or with 'argv' | ||
argv: ... # Passes the command as a list rather than a string | argv: ... # Passes the command as a list rather than a string | ||
cmd: ... # The command to run | cmd: ... # The command to run |
Revision as of 06:24, 4 July 2021
External
Internal
Overview
The command module takes the command name followed by a list of space-delimited arguments. A command will NOT be interpreted by a shell, so variables like $HOME and operations like "<", ">", "|", ";" and "&" will not work. Use the shelll module for that.
For a discussion on the interaction between command
, cmd
, argv
, etc. see command, argv and cmd below.
- name: A command example
command: some-command arg1 arg2 # the command can be specified here, or with 'cmd', or with 'argv'
argv: ... # Passes the command as a list rather than a string
cmd: ... # The command to run
chdir: ... # Change into this directory before running the command
stdin: ...
stdin_add_newline: ...
warn: ...
creates: ...
become: true
become_user: root
args:
chdir: /somedir/
command, argv and cmd
The command followed by the space-separated list of arguments can be specified immediately after the command:
keyword:
- name: some name
command: ls -l /tmp
Alternatively, the command name can be provided with cmd
and the arguments with argv
, as a list:
- name: some name
command:
cmd: ls
argv:
- -l
- /tmp
Privilege Escalation
See:
Registering Variables as Results of Command Execution
This sets a variable:
- name: Read requested Java version
command: "sh -c \"grep ^JAVA_VERSION {{ansible_env.HOME}}/config.txt | sed -e 's/.*=//'\""
register: java_version
changed_when: false
Setting Command Output as a Fact
Set the command output as a fact (see set_fact
):
- name: Get Homebrew installation directory
command: "sh -c \"brew --prefix\""
register: brew_prefix_cmd
changed_when: false
- name: Set Homebrew installation directory
set_fact:
pkg_manager_install_dir: "{{ brew_prefix_cmd.stdout }}"