Ansible tips and tricks

From Lolly's Wiki
Jump to navigationJump to search

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


Tips and tricks