Ansible tips and tricks: Difference between revisions
From Lolly's Wiki
Jump to navigationJump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
[[ Kategorie: Ansible | Tips and tricks ]] | |||
== Ansible commandline == | == Ansible commandline == | ||
Line 47: | Line 48: | ||
</source> | </source> | ||
== 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: | | |||
{%- set tmp_env={} -%} | |||
{%- for line in env.stdout_lines -%} | |||
{%- set x=tmp_env.__setitem__(line.split('=')[0], line.split('=')[1]) -%} | |||
{%- endfor -%} | |||
{{ tmp_env }} | |||
- debug: var=ora_env | |||
</source> |
Revision as of 10:34, 24 May 2017
Ansible commandline
Get settings for host
Gathering settings for host in ${hostname}:
$ ansible -m debug -a 'var=hostvars[inventory_hostname]' ${hostname}
For example:
$ ansible -m debug -a 'var=hostvars[inventory_hostname]' localhost
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:.
vars:
oracle_user: oracle
oracle_version: 12cR2
oracle_response_file: /install/tepmplate_{{ oracle_version }}/db_{{ oracle_version | lower}}.rsp
- name: "Getting variables for version {{ oracle_version }} from response file"
shell: |
awk -F '=' '/{{ item }}/{print $2;}' {{ 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:
"{{ 'oracle_' + item.item | lower | regex_replace('oracle_','') }}": "{{ item.stdout }}"
oracle_environment: "{{oracle_environment|default([]) + [ {item.item: item.stdout} ] }}"
with_items:
- "{{ oracle_response_variables.results }}"
tags:
- oracle
- oracle_install
Gathering oracle environment
- 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: |
{%- set tmp_env={} -%}
{%- for line in env.stdout_lines -%}
{%- set x=tmp_env.__setitem__(line.split('=')[0], line.split('=')[1]) -%}
{%- endfor -%}
{{ tmp_env }}
- debug: var=ora_env