Ansible Module command: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 31: Line 31:
<syntaxhighlight lang='yaml'>
<syntaxhighlight lang='yaml'>
- name: Read requested Java version
- name: Read requested Java version
   command: "sh -c \"grep \"^JAVA_VERSION\" {{ansible_env.HOME}}/config.txt | sed -e 's/.*=//'\""
   command: "sh -c \"grep ^JAVA_VERSION {{ansible_env.HOME}}/config.txt | sed -e 's/.*=//'\""
   register: java_version
   register: java_version
</syntaxhighlight>
</syntaxhighlight>

Revision as of 03:08, 30 December 2020

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.

- name: A command example
  command: some-command arg1 arg2
  become: true
  become_user: root
  args:
    chdir: /somedir/

"become" and "become_user" are optional. Also see:

Ansible Privilege Escalation

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