首页 文章

使用Ansible playbook运行Oracle SQL脚本

提问于
浏览
5

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

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

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
    

相关问题