使用Ansible playbook运行Oracle SQL脚本

问题描述 投票:5回答:1

查看Ansible documentation中的核心数据库模块,没有显示Oracle模块的迹象。通过Ansible for Oracle数据库处理SQL / PLSQL部署的最佳方法是什么?

我们是否希望使用Ansible Galaxy的角色来处理这个问题?很少有人似乎下载了Galaxy for Oracle上列出的角色。

oracle ansible ansible-playbook ansible-galaxy
1个回答
0
投票

我创建了一个角色来安装apex 5(我首先卸载apex 4)。我使用'script'和'shell'之类的模块。我对环境初始化不太满意,但我还在学习。对于任何SQL / PLSQL任务,sqlplus是正确的工具。 (也许SQLcl可以做得更好..?)

- name: Determine apex version
  become: yes
  become_user: oracle
  shell: source /etc/profile &&  sqlplus -S / as sysdba @"{{ temp_dir }}/apexver.sql"
  register: apexver
  args:
     executable: /bin/bash
  changed_when: "'APEX_040000' in apexver.stdout"

- name: oracle apex remove
  become: yes
  become_user: oracle
  script: apex_remove.sh {{ item }} 
  with_items: 
    - 'XE'
  ignore_errors: yes
  register: result
  when: "'APEX_040000' in apexver.stdout"

22:18 $ cat apex_remove.sh
#!/bin/sh

# set oracle environment
. /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh
ORACLE_SID=$1

sqlplus -s /nolog <<EOF
connect / as sysdba
@?/apex/apxremov.sql
exit
EOF
© www.soinside.com 2019 - 2024. All rights reserved.