Ansible tips and tricks: Difference between revisions
m (Text replacement - "</source" to "</syntaxhighlight") |
|||
Line 6: | Line 6: | ||
<source lang=bash> | <source lang=bash> | ||
$ ansible -m debug -a 'var=hostvars[inventory_hostname]' ${hostname} | $ ansible -m debug -a 'var=hostvars[inventory_hostname]' ${hostname} | ||
</ | </syntaxhighlight> | ||
For example: | For example: | ||
<source lang=bash> | <source lang=bash> | ||
$ ansible -m debug -a 'var=hostvars[inventory_hostname]' localhost | $ ansible -m debug -a 'var=hostvars[inventory_hostname]' localhost | ||
</ | </syntaxhighlight> | ||
Gathering groups for host in ${hostname}: | Gathering groups for host in ${hostname}: | ||
<source lang=bash> | <source lang=bash> | ||
$ ansible -m debug -a 'var=group_names' ${hostname} | $ ansible -m debug -a 'var=group_names' ${hostname} | ||
</ | </syntaxhighlight> | ||
== Gathering facts from file == | == Gathering facts from file == | ||
Line 27: | Line 27: | ||
oracle_version: 12cR2 | oracle_version: 12cR2 | ||
oracle_response_file: /install/tepmplate_{{ oracle_version }}/db_{{ oracle_version | lower}}.rsp | oracle_response_file: /install/tepmplate_{{ oracle_version }}/db_{{ oracle_version | lower}}.rsp | ||
</ | </syntaxhighlight> | ||
<source lang=yaml> | <source lang=yaml> | ||
Line 51: | Line 51: | ||
- oracle | - oracle | ||
- oracle_install | - oracle_install | ||
</ | </syntaxhighlight> | ||
== Gathering oracle environment == | == Gathering oracle environment == | ||
Line 79: | Line 79: | ||
- debug: var=ora_env | - debug: var=ora_env | ||
</ | </syntaxhighlight> | ||
== NetApp Modules == | == NetApp Modules == | ||
Line 91: | Line 91: | ||
security login role create -vserver cluster01 -role ansible-snapshot-only -cmddirname "volume snapshot delete" -query "-snapshot ansible_*" -access all | security login role create -vserver cluster01 -role ansible-snapshot-only -cmddirname "volume snapshot delete" -query "-snapshot ansible_*" -access all | ||
security login create -vserver cluster01 -role ansible-snapshot-only -application ontapi -authentication-method password -user-or-group-name ansible-snapuser | security login create -vserver cluster01 -role ansible-snapshot-only -application ontapi -authentication-method password -user-or-group-name ansible-snapuser | ||
</ | </syntaxhighlight> |
Revision as of 15:23, 25 November 2021
Ansible commandline
Get settings for host
Gathering settings for host in ${hostname}: <source lang=bash> $ ansible -m debug -a 'var=hostvars[inventory_hostname]' ${hostname} </syntaxhighlight>
For example: <source lang=bash> $ ansible -m debug -a 'var=hostvars[inventory_hostname]' localhost </syntaxhighlight>
Gathering groups for host in ${hostname}: <source lang=bash> $ ansible -m debug -a 'var=group_names' ${hostname} </syntaxhighlight>
Gathering facts from file
Variables from an Oracle response file
This snippet gets some variables from the response file and puts them into an environment variable oracle_environment and sets the variable name itself (prepended with oracle_ if not already there). The variable oracle_environment can be used for environment: when you use shell:.
<source lang=yaml>
vars: oracle_user: oracle oracle_version: 12cR2 oracle_response_file: /install/tepmplate_Template:Oracle version/db_Template:Oracle version.rsp
</syntaxhighlight>
<source lang=yaml>
- name: "Getting variables for version Template:Oracle version from response file" shell: | awk -F '=' '/Template:Item/{print $2;}' Template:Oracle response file register: oracle_response_variables with_items: - ORACLE_HOME - ORACLE_BASE - INVENTORY_LOCATION tags: - oracle - oracle_install
- name: Setting facts from response file to oracle_environment set_fact: "Template:'oracle ' + item.item": "Template:Item.stdout" oracle_environment: "Template:Oracle environment" with_items: - "Template:Oracle response variables.results" tags: - oracle - oracle_install
</syntaxhighlight>
Gathering oracle environment
<source lang=yaml>
- name: Calling oraenv shell: | # Set ORAENV_ASK=NO and ORACLE_SID, ORACLE_HOME, PATH from /etc/oratab eval $(awk -F':' '!/^[ ]*(#|$)/ && $3=="Y"{printf "export ORAENV_ASK=NO ORACLE_SID=%s ORACLE_HOME=%s PATH=${PATH}:%s/bin\n",$1,$2,$2}' /etc/oratab) # Call /usr/local/bin/oraenv for additional settings . /usr/local/bin/oraenv -s # Just register what we need for Oracle env | egrep "(ORACLE_.*|PATH|LD_LIBRARY_PATH)=" register: env changed_when: False
- name: Creating environment ora_env set_fact: ora_env: | {# Creating empty dictionary #} {%- set tmp_env={} -%} {# For each line from env call tmp_env._setitem_(<variable>,<value>) #} {%- for line in env.stdout_lines -%} {{ tmp_env.__setitem__(line.split('=')[0], line.split('=')[1]) }} {%- endfor -%} {# Print the created variable #} Template:Tmp env
- debug: var=ora_env
</syntaxhighlight>
NetApp Modules
NetApp role
Snapshot user
<source> security login role create -vserver cluster01 -role ansible-snapshot-only -cmddirname DEFAULT -access none security login role create -vserver cluster01 -role ansible-snapshot-only -cmddirname "event generate-autosupport-log" -access all security login role create -vserver cluster01 -role ansible-snapshot-only -cmddirname "volume snapshot" -access readonly security login role create -vserver cluster01 -role ansible-snapshot-only -cmddirname "volume snapshot create" -query "-snapshot ansible_*" -access all security login role create -vserver cluster01 -role ansible-snapshot-only -cmddirname "volume snapshot delete" -query "-snapshot ansible_*" -access all security login create -vserver cluster01 -role ansible-snapshot-only -application ontapi -authentication-method password -user-or-group-name ansible-snapuser </syntaxhighlight>