Skip to content
Snippets Groups Projects
oci-7.2.yml 2.38 KiB
Newer Older
  • Learn to ignore specific revisions
  • jurgenhaas's avatar
    jurgenhaas committed
    ---
    # file: roles/php/tasks/oci-7.2.yml
    #
    # https://gist.github.com/Yukibashiri/cebaeaccbe531665a5704b1b34a3498e
    
    - name: Check OCI Requirement
      stat:
        path: /usr/lib/php/20170718/oci8.so
      register: oci_file
    
    - block:
    
        - name: Enable OCI for PHP
          copy:
            content: extension={{ item }}.so
            dest: /etc/{{ php_base_dir }}/{{ php_conf_dir }}/{{ item }}.ini
            owner: root
            group: root
            mode: 0644
          with_items:
            - oci8
    
        - name: Remove possible components in /tmp
          file:
            path: /tmp/{{ item }}
            state: absent
          with_items:
            - instantclient_18_5
            - oracle_x64_18_5_0_0_0_oci8_so_php_7
    
        - name: Make available Oracle InstantClient
          command: scp -r {{ repository }}{{ item }} /tmp/
          become: no
          with_items:
            - instantclient_18_5
            - oracle_x64_18_5_0_0_0_oci8_so_php_7
    
        - name: Remove /opt/oracle/instantclient_18_5
          file:
            path: /opt/oracle/instantclient_18_5
            state: absent
    
        - name: Move Oracle InstantClient to /opt/oracle
          command: mv /tmp/instantclient_18_5 /opt/oracle
    
        - name: Move oci8 to /usr/lib/php
          command: mv /tmp/oracle_x64_18_5_0_0_0_oci8_so_php_7 /usr/lib/php/20170718/oci8.so
    
        - name: Change ownership for Oracle InstantClient
          file:
            path: '{{ item }}'
            owner: root
            group: root
            recurse: yes
            follow: no
          with_items:
            - /opt/oracle/instantclient_18_5
    
        - name: Ensure log directories
          file:
            path: /opt/oracle/instantclient_18_5/log/diag/clients
            owner: www-data
            group: root
            state: directory
            mode: 0775
            follow: no
    
        - name: Set permissions in log directories
          file:
            path: /opt/oracle/instantclient_18_5/log
            owner: www-data
            group: root
            mode: 0775
            recurse: yes
            follow: no
    
        - name: Create symlinks
          file:
            src: /opt/oracle/instantclient_18_5/{{ item }}.so.18.1
            dest: /opt/oracle/instantclient_18_5/{{ item }}.so
            state: link
          with_items:
            - libclntsh
            - libocci
    
        - name: Configure libraries
          template:
            src: etc-ld-oracle
            dest: /etc/ld.so.conf.d/oracle-instantclient.conf
            owner: root
            group: root
            mode: 0644
    
        - name: Update libraries
          command: ldconfig
    
      when: not oci_file.stat.exists