2 ODI設定の管理

この章は、Oracle Cloud MarketplaceにプロビジョニングしたODI設定を管理する場合に役立ちます。

内容は次のとおりです。

2.1 ODI Linuxサービスの操作

次の表は、適用可能なテクノロジおよびスタック・デプロイメントについて、ODI Marketplaceインストールで使用可能なすべてのサービスを示しています:

Linuxサービスの名前 データベース・テクノロジ スタック・デプロイメントのタイプ サポートされるリリース・バージョン 機能
agentodi.service MYSQL、ADB ODI Studio ODI Marketplaceの12.2.1.4.200618バージョンより前のリリースでサポートされます。 サービスを起動および停止し、そのステータスを確認できます。
mysqlodi.service MYSQL ODI Studio ODI Marketplaceの12.2.1.4.200618バージョンより前のリリースでサポートされます。 サービスを起動および停止し、そのステータスを確認できます。
manageodiapps.service MYSQL、ADB ODI Studio ODI MarketplaceのODI Web V12.2.1.4.200618以上のバージョンでのみサポートされます。 サービスのステータスを確認することのみできます。ODIエージェントを起動、停止および再起動するには、次に示すpythonコマンドを使用します。

2.2 Oracle Data Transforms Administratorでのリポジトリの変更

Oracle Data Transformsでリポジトリを変更するには(まだ作成していない場合)、次の手順を実行します:
  1. ODI Studioを起動します。
  2. オプション「リポジトリへの接続」を選択します。
  3. 「+」アイコンを使用して新規ログインを作成し、接続の詳細を指定します。
  4. 「テスト」をクリックし、テスト接続に成功したら「OK」をクリックします。
  5. 「Oracle Data Integratorログイン」ダイアログで「OK」をクリックします。

2.3 ODIアプリケーション・サーバーのリポジトリの切替え

既存のODI VMインスタンスから既存のADBまたはDBCSリポジトリに切り替えることができます。

ノート:

リポジトリ間を切り替えることができるのは、スタック・モードとリポジトリ・モードのリポジトリが一致する場合のみです。

ODIアプリケーション・サーバーでは、次のテクノロジのリポジトリを切り替えることができます:

  • ADBからADBへの切替え
  • MYSQLからADBまたはDBCSへの切替え

    ノート:

    ただし、逆方向(ADBまたはDBCSからMYSQLへの復帰)はサポートされていません。
  • DBCSからDBCSへの切替え
  • DBCSまたはADBからの切替え

ノート:

次のコマンドを使用して、構成を実行する前にサーバーを停止します:
python manageOdiApps.py shutdown

詳細は、「ODIアプリケーション・サーバーの管理」を参照してください。

ADBリポジトリ間の切替え

変換プロジェクトを開発したADBリポジトリがすでに存在し、同じリポジトリで開発を続行する場合、次の手順に従って新しい(作成直後の) ADBリポジトリから既存のADBリポジトリに切り替えます:

  1. $MW_HOME/odi/common/scriptsの場所にodi-setup.propertiesファイルを作成し、すでにファイルが存在する場合は、そのファイルの既存のコンテンツをクリアして次のプロパティを追加します:
    dbTech=ADB
    rcuCreationMode=false
    odiSchemaPassword=<valid password>
    odiSchemaUser=<odi schema username>
    odiSupervisorPassword=<odi SUPERVISOR password>
    walletZipLoc=<path_to_zipped_wallet>
    workRepoName=<WORK REPO NAME>
    adwInstancePassword= <adw Instance password>

    ノート:

    • workRepoName=<WORK REPO NAME>は、オプションのプロパティですが、デフォルトの作業リポジトリ名がWORKREPでない場合は、このプロパティを構成する必要があります。
    • adwInstancePassword= <adw Instance password>はオプションのプロパティですが、OPTACHを使用してODIインスタンスにパッチを適用し、構成スクリプトodiMPConfiguration.pyを使用してアップグレード・アシスタント(UA)を実行する場合にのみ、このプロパティを構成します。
  2. $MW_HOME/odi/common/scriptsの場所にrepository.propertiesファイルを作成し、すでにファイルが存在する場合は、そのファイルの既存のコンテンツをクリアして次のプロパティを追加します:
    masterReposDriver=oracle.jdbc.OracleDriver
    masterReposUser=<odi schema username>
    workReposName=<WORK REPO NAME>
  3. $MW_HOME/odi/common/scriptsディレクトリの場所に移動し、次のpythonスクリプトを指定された順序で実行します:
    python odiMPConfiguration.py
    python manageOdiApps.py start

ノート:

構成を実行する前にサーバーを停止してください。この詳細は、「ODIアプリケーション・サーバーの管理」を参照してください。

DBCSリポジトリ間の切替え

変換プロジェクトを開発したDBCSリポジトリがすでに存在し、同じリポジトリで開発を続行する場合、次の手順に従って新しい(作成直後の)DBCSリポジトリから既存のDBCSリポジトリに切り替えます:

  1. $MW_HOME/odi/common/scriptsの場所にodi-setup.propertiesファイルを作成し、すでにファイルが存在する場合は、そのファイルの既存のコンテンツをクリアして次のプロパティを追加します:
    dbTech=DBCS
    dbHost=<IP Address of the DBCS Instance>
    dbPort=<port of DBCS Instance>
    dbServiceName=<Service Name of DBCS Instance>
    odiSchemaUser=<odi schema username>
    odiSchemaPassword=<valid password>
    odiSupervisorPassword=<odi SUPERVISOR password>
    workRepoName=<WORK REPO NAME>
  2. $MW_HOME/odi/common/scriptsの場所にrepository.propertiesファイルを作成し、すでにファイルが存在する場合は、そのファイルの既存のコンテンツをクリアして次のプロパティを追加します:
    masterReposDriver=oracle.jdbc.OracleDriver
    masterReposUser=<odi schema username>
    workReposName=<WORK REPO NAME>
  3. $MW_HOME/odi/common/scriptsディレクトリの場所に移動し、次のpythonスクリプトを指定された順序で実行します:
    python odiMPConfiguration.py
    python manageOdiApps.py start

2.4 ODIアプリケーション・サーバーの管理

次のコマンドは、Oracle Cloud MarketplaceでプロビジョニングされているODIインスタンスに関連付けられたODIアプリケーション・サーバーを管理するために役立ちます。

ODI Studioで使用できるアプリケーションは:

APPODIAGENT

ODIアプリケーション・サーバーを使用して、ODIアプリケーション・サーバーにデプロイされたすべてのODIアプリケーションを管理できます。

$MW_HOME/odi/common/scriptsの場所に移動し、次のコマンドを実行します:

  • (oracleユーザーとして)サービスのステータスを確認するには、次のコマンドを使用します:
    systemctl status manageodiapps.service

    ノート:

    このコマンドを使用してサービスを起動または停止することはできません。
  • サービスを起動するには、次のコマンドを使用します:
    python manageOdiApps.py start
  • サービスを停止するには、次のコマンドを使用します:
    python manageOdiApps.py shutdown
  • サービスを再起動するには、次のコマンドを使用します:
    python manageOdiApps.py restart

    ノート:

    前述のpython manageOdiApps.pyコマンドのいずれかを実行すると、端末にjettyサーバーを実行するためのセッションが保持されます。他の操作を実行する場合は、新しい端末を開きます。
  • サービスに関連付けられたすべてのアプリケーションを起動するには、次のコマンドを使用します:
    python manageOdiApps.py start -apps=<allowed values>
    
    allowed values: all or APPODIAGENT with combination separated by ","
  • サービスに関連付けられたすべてのアプリケーションを停止するには、次のコマンドを使用します:
    python manageOdiApps.py stop -apps=<allowed values>
    
    allowed values: all or APPODIAGENT with combination separated by ","

    ノート:

    コマンドpython manageOdiApps.pyを実行すると、odiagent.logおよびodi_adp_rest_txt.logという2つのログ・ファイルが作成されます。ファイルの場所の詳細は、「ログ・ファイルの場所」を参照してください。
  • サービスに関連付けられたすべてのアプリケーションのステータスを取得するには、次のコマンドを使用します:
    python manageOdiApps.py status
  • ODI Marketplaceの12.2.1.4.200618リリース・バージョンより前にこのスタックをプロビジョニングした場合、またはODI Studioでこのスタックをプロビジョニングした場合、次の手順に従ってODIエージェントのライフサイクルを管理します:
    • ODIエージェントを停止するには:
      python stopAgent.py
    • ODIエージェントを起動するには:
      python startAgent.py $MW_HOME

2.5 ODI資格証明の管理

データベースのODIスキーマ・パスワードまたはODIリポジトリのSUPERVISORパスワードを更新した場合、manageCredentials.pyスクリプトを使用して、ODIアプリケーション・サーバーを正常に起動するために必要なODI資格証明を更新または管理できます。

$MW_HOME/odi/common/scriptsの場所に移動し、次のコマンドを実行します:

S.No. キー名
1 odiSchemaPassword
2 odiSupervisorPassword
資格証明ストアに資格証明キーを設定するには、次のコマンドを使用します:
python manageCredentials.py set <Key Name>=<value>

Linuxシェルが内容を解析せず、文字列を正確な値として扱うように、パスワード文字列を一重引用符で囲みます。たとえば:

python manageCredentials.py set odiSchemaPassword='pas$word'

資格証明ストアに格納された資格証明キー値を取得するには、次のコマンドを使用します:

python manageCredentials.py read <key Name>

2.6 プロキシ設定の構成

ネットワークによっては、ODIのプロキシを設定できます。プロキシは、特定のホスト(Oracle Object Storageなど)へのアクセスに必要になる場合があります。

ノート:

OCIネットワーク構成に応じて、プロキシ・ホストを介したアクセスが必要な場合と不要な場合があります。プロキシを介して接続する場合、プロキシ・アドレス/ポートまたはソース・データサーバーがOCI VCN構成を通じて許可されていることを確認してください。

次でプロキシを設定できます:

  • ODI StudioまたはODI Studio Administrator
  • ODIエージェント
  • ODIアプリケーション・サーバー

ODI StudioおよびOracle Data Transforms Administratorでプロキシを設定するには、「ツール」→「プリファレンス」→「Webブラウザとプロキシ」に移動し、ネットワークのプロキシを設定します。

ODI Marketplaceの12.2.1.4.200618リリース・バージョンより前にこのスタックをプロビジョニングした場合、次の手順に従ってODIエージェントのプロキシを設定します:

ノート:

下位互換性を確保するため、スクリプトのstartAgent.pyおよびstopAgent.pyを使用してODIエージェントのライフサイクルを管理します。
  1. $MW_HOME/oracle/odi/common/scriptsの場所で、ファイルstartAgent.pyを見つけて編集し、プロパティ-Drepo.props=の後に次の行を追加します
    -Xms1024m -Xmx4048 -cp
    -Dhttp.proxyHost=www-proxy-xxx.com -Dhttp.proxyPort=80 
    -Dhttps.proxyHost=www-proxy-xxx.com -Dhttps.proxyPort=80 -cp 

    たとえば、前述の行を追加した後は、ファイルは次のようになります:

    subprocess.call('nohup java 
    -Drepo.props=odi-setup.properties
     -Xms1024m -Xmx4048 -cp
    -Dhttp.proxyHost=www-proxy-xxx.com -Dhttp.proxyPort=80 
    -Dhttps.proxyHost=www-proxy-xxx.com -Dhttps.proxyPort=80 -cp 
    $AGENTCLASSPATH oracle.odi.OdiStandaloneAgentStarter'+' '+oraclediagentPath+" 
    &", shell=True) 
  2. ファイルを保存し、次のコマンドを使用してエージェントを起動します:
    python startAgent.py $MW_HOME

    ノート:

    ファイルstartAgent.pyに余分な行、スペースまたはタブを追加しないようにしてください。行コンテンツ内には-Dオプションのみを追加します。これはPythonスクリプトであり、機能するためには適切な行インデントが必要です。
  3. ODI Studioからスタンドアロン・エージェントをテストして、エージェントが正常に起動しているかどうかを確認します。次に、スタンドアロン・エージェントを使用してパッケージおよびマッピングを実行します。

ノート:

BI Cloud Connectorデータサーバーを使用している場合、プロキシ除外フィールドにBI Cloud Connectorホストを追加する必要がある場合があります。

ODIアプリケーション・サーバーでプロキシを設定するには、次の手順を実行します:

  1. スクリプト・ファイルmanageOdiApps.pyを開きます。
  2. ファイル内で次の行を見つけます:
    JETTY_SERVER_COMMAND_STR = 'java -DAPP_LOGS='+APP_LOGS+' -Dconfig.template.file=../../apps/webapps.template.yaml -Dapps.config=../../apps/webapps.yaml -Drepo.props=odi-setup.properties -Drestrepo.props=repository.properties -Djetty.enabled=true -Dagent.logging.config=../logging/agent-logging-config.xml -cp $CLASSPATH oracle.odi.setup.util.ODIMPJettyServerAppsManager
  3. 前述の行の後で、-cpの前に次の行を追加します:
    -Dhttp.proxyHost=<proxyhost> -Dhttp.proxyPort=<proxy port> -Dhttps.proxyHost=<proxyhost> -Dhttps.proxyPort=<proxy port>
  4. ファイルを保存します。
  5. ODIアプリケーション・サーバーを再起動します。

2.7 電子メール配信サービスの構成

Oracle Cloud Marketplace Email Deliveryは、受信者の受信ボックスに到達する必要がある大量の電子メールを送信するための高速で信頼性の高い管理ソリューションを提供する電子メール送信サービスです。

電子メール配信には、確認メッセージ、不正検出アラート、多要素認証、パスワード・リセットなど、ミッション・クリティカルな通信のためにアプリケーション生成の電子メールの送信に必要なツールが用意されています。コンソール内で電子メール配信サービスを設定できます。電子メール配信を使用して電子メールの送信を開始するには、次のステップを実行します:
  • ユーザーのSMTP資格証明の生成
  • 権限の設定
  • 承認済送信者の作成
  • 承認済送信者ドメインでのSPFの構成
  • SMTP接続の構成
  • 電子メールの送信の開始

ノート:

電子メール配信サービスを構成する前に、SMTP資格証明を生成し、電子メールの承認済送信者を作成する権限があることを確認してください。また、送信電子メールを送信するには、電子メールの承認済送信者がIAMポリシー権限を持つグループに属している必要があります。詳細は、OCIドキュメントのユーザーのSMTP資格証明の生成に関する項を参照してください。

SMTP資格証明の生成

電子メール配信を介して電子メールを送信するには、Simple Mail Transfer Protocol (SMTP)資格証明が必要です。各ユーザーは、最大2つのSMTP資格証明に制限されます。3つ以上が必要な場合は、SMTP資格証明を他の既存のユーザーに生成するか、複数のユーザーを作成する必要があります。

  • ユーザーのSMTP資格証明を生成するには、Oracle Cloud Infrastructureにログインし、「電子メール配信」「資格証明の管理」に移動して、「SMTP資格証明の生成」オプションを選択します。SMTPユーザー名およびパスワードの詳細を生成できます。今後の参照用に生成されたパスワードをコピーします。「閉じる」をクリックします。

権限の設定

電子メールの承認済送信者は、電子メールを送信するためのIAMポリシー権限を持つグループに属している必要があります。承認済送信者は、承認済送信者を管理する権限を持つコンパートメントに存在する必要があります。承認済送信者がルート・コンパートメントに存在する場合、テナント全体の承認済送信者を管理するポリシーを作成する必要があります。

次のポリシー・ステートメントを追加して、odi_groupが承認済送信者を管理できるようにします:

Allow dynamic-group odi_group to use approved-senders in compartment odi

ポリシーおよびポリシー構文の詳細は、ポリシーの基本に関する項を参照してください。

電子メールの承認済送信者の作成

Oracle Cloud Infrastructureを介して電子メールを送信するすべての「差出人:」アドレスに承認済送信者を設定する必要があります。設定しないと、電子メールは拒否されます。承認済送信者はコンパートメントに関連付けられ、承認済送信者が構成されたリージョンにのみ存在します。

ノート:

承認済送信者はルート・コンパートメントに作成しないでください。

ルート以外のコンパートメントに承認済送信者を作成すると、ポリシーをそのコンパートメントに固有にできます。

  • 電子メールの承認済送信者を作成するには、Oracle Cloud Infrastructureにログインし、「電子メール配信」「電子メールの承認済送信者」に移動して、「承認済送信者の作成」オプションを選択します。

    ノート:

    インスタンスにすでに作成されているユーザーに対してこのオプションを構成します。

    たとえば、opc@oracle-odi-inst-3mnc.localdomainです。oracle-odi-inst-3mncはホスト名です。

承認済送信者ドメインでのSPFの構成

SPFを構成します(必要な場合)。コンソールの「承認済送信者」セクションでは、承認済送信者ごとにSPFレコードの検証が提供されます。SPFはoraclegovcloud.comのサブドメインには必須で、それ以外の場合は推奨です。

SPFの構成ステップの詳細は、SPFの構成に関する項を参照してください。

SMTP接続の構成

電子メール接続を保護するには、OCI電子メールSMTPホストからSSL/TLS CAの詳細を取得します

  1. opcユーザーおよびsudo suとしてsshを使用してインスタンスにログインし、ディレクトリnss-config-drを作成してから、certutilを実行して両方のNSSデータベースのキーおよび証明書を管理します。
    [root@localhost ~]# mkdir /etc/certs
    [root@localhost ~]# cd /etc/certs
    [root@localhost certs]# certutil -N -d /etc/certs/
    Enter a password which will be used to encrypt your keys.
    The password should be at least 8 characters long,
    and should contain at least one non-alphabetic character.
    Enter new password:
    Re-enter password:
    [root@localhost certs]# ls
    cert8.db key3.db secmod.db
    [root@localhost certs]#
  2. SMTPドメインCAの詳細を取得するには、SMTPホストに対してopenssl s_clientを実行します。

    ノート:

    • アッシュバーンにある場合: openssl s_client -showcerts -connect smtp.us-ashburn-1.oraclecloud.com:587 -starttls smtp > /etc/certs/mycerts-ashburn
    • フェニックスにある場合: openssl s_client -showcerts -connect smtp.us-phoenix-1.oraclecloud.com:587 -starttls smtp > /etc/certs/mycerts-phoenix
    たとえば:
    [root@localhost certs]# openssl s_client -showcerts -connect smtp.us-phoenix-1.oraclecloud.com:587 -starttls smtp > /etc/certs/mycerts-phoenix
    depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root CA
    verify return:1
    depth=1 C = US, O = DigiCert Inc, CN = DigiCert SHA2 Secure Server CA
    verify return:1
    depth=0 C = US, ST = California, L = Redwood City, O = Oracle Corporation, OU = Oracle DYN-DEV US, CN = smtp.us-phoenix-1.oraclecloud.com
    verify return:1
    250 Ok
    [root@localhost certs]#
  3. mycerts-phoenixまたはashburncatを実行し、--BEGIN CERTIFICATE--および--END CERTIFICATE--を含む各証明書をコピーして、それぞれのファイルに貼り付けます。
    たとえば -
    ocismtp-phoenix1.pem ocismtp-phoenix2.pem ocismtp-phoenix3.pem
    [root@localhost certs]# ls -la | grep -i ocism
    -rw-r--r--. 1 root root 2443 Jan 31 18:00 ocismtp-phoenix1.pem
    -rw-r--r--. 1 root root 1648 Jan 31 18:01 ocismtp-phoenix2.pem
    -rw-r--r--. 1 root root 1338 Jan 31 18:01 ocismtp-phoenix3.pem
    [root@localhost certs]#
     
    [root@localhost certs]# cat ocismtp-phoenix1.pem
    -----BEGIN CERTIFICATE-----
    MIIG3jCCBcagAwIBAgIQDD6TwDfguDbn1CI1U46l0zANBgkqhkiG9w0BAQsFADBN
    MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E
    aWdpQ2VydCBTSEEyIFNlY3VyZSBTZXJ2ZXIgQ0EwHhcNMTgxMjA3MDAwMDAwWhcN
    MjEwMTA1MTIwMDAwWjCBnjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3Ju
    aWExFTATBgNVBAcTDFJlZHdvb2QgQ2l0eTEbMBkGA1UEChMST3JhY2xlIENvcnBv
    cmF0aW9uMRowGAYDVQQLExFPcmFjbGUgRFlOLURFViBVUzEqMCgGA1UEAxMhc210
    cC51cy1waG9lbml4LTEub3JhY2xlY2xvdWQuY29tMIIBIjANBgkqhkiG9w0BAQEF
    AAOCAQ8AMIIBCgKCAQEA2ZUXc/xjwwlmsaSKxy2e0Y3K9UeWs/MQSBkQALC0+Pi9
    tIdS7BLmYtpTjGmUpwiNzG9pMYHpWjQlQFkxNpqd6JwegpgdEG/8SnbrhH9kRsRg
    MG8kRNZiJYsDrpwLnjE74gNIjVldqbcMHmBinfKbfFAcPzp5sqOFw3hfSz8TU45A
    7UHfbWmF3HiLF+Ozhnr0cUdiVb79HVYH4fm15V4uwewj/ZvALmK000jdOaeOgOna
    vrx30WSqfkoqOpferIrW4a6wsrj82vaAjuxgBU3rbuaJb2KFYYes3SeUoFkFAZp7
    URMy3DZD7MmgmWIXnjGu75xqF4Ul/uEF6cjnYeuDpwIDAQABo4IDZjCCA2IwHwYD
    VR0jBBgwFoAUD4BhHIIxYdUvKOeNRji0LOHG2eIwHQYDVR0OBBYEFCN96Xt5uS1q
    xt2ZgTWONBD4VHfdMCwGA1UdEQQlMCOCIXNtdHAudXMtcGhvZW5peC0xLm9yYWNs
    ZWNsb3VkLmNvbTAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEG
    CCsGAQUFBwMCMGsGA1UdHwRkMGIwL6AtoCuGKWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0
    LmNvbS9zc2NhLXNoYTItZzYuY3JsMC+gLaArhilodHRwOi8vY3JsNC5kaWdpY2Vy
    dC5jb20vc3NjYS1zaGEyLWc2LmNybDBMBgNVHSAERTBDMDcGCWCGSAGG/WwBATAq
    MCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BTMAgGBmeB
    DAECAjB8BggrBgEFBQcBAQRwMG4wJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRp
    Z2ljZXJ0LmNvbTBGBggrBgEFBQcwAoY6aHR0cDovL2NhY2VydHMuZGlnaWNlcnQu
    Y29tL0RpZ2lDZXJ0U0hBMlNlY3VyZVNlcnZlckNBLmNydDAJBgNVHRMEAjAAMIIB
    fQYKKwYBBAHWeQIEAgSCAW0EggFpAWcAdgDuS723dc5guuFCaR+r4Z5mow9+X7By
    2IMAxHuJeqj9ywAAAWeJXuinAAAEAwBHMEUCIQDqeInMySXAN1UDIJOLG3v/ViBJ
    xsY3lK2JY/zwebUaugIgepOPAwKQdVrnY7CMCzWGGGqJbLgkFWIRMGK0FUJ8+RsA
    dQCHdb/nWXz4jEOZX73zbv9WjUdWNv9KtWDBtOr/XqCDDwAAAWeJXumPAAAEAwBG
    MEQCIA1jRQ0797YV7BLzCANvicAsYk2QdGjCuZ4YxxRgTIs+AiBRztTbnjiT9WGE
    HIRVEJa/Bx7eSlcu7J2gpEZruOWrFwB2ALvZ37wfinG1k5Qjl6qSe0c4V5UKq1Lo
    GpCWZDaOHtGFAAABZ4le6LcAAAQDAEcwRQIgMk9G/KNM9xR3GR9q/2vEB85skPlL
    EgDFVpKBQxQN2f8CIQD2Cn54OAL8HkDDYglLpAjTnzaSUJeP2h07NG90xS5VOjAN
    BgkqhkiG9w0BAQsFAAOCAQEAP8q05wiAKVkvv+Y6l0aPclFiW5/yZmnQeGNE85kx
    CmQgbdeGcNUgQ9PjDaBMhHMErVasq1E//oYjuRuF4bFO9QYYMn2QOuz1p61s+60/
    IDNCP8xJuBAJ61Gu0mAw7mm44Z+jfD1LMdg/xyZwlH9wFZID9lgVdqpvhlLiYRNy
    zBtKfgLhzu2B08T4a/V3w2SaDyhPIED2ry+HV+9B7CnzpmLrSqRFw7kk9ihm9Iwq
    YlyJV3qzO1tIykRALDvYAT50yd+d9ZfTcEQvSrMLoM6N0HJezdTnf67UqwYFF5jT
    KhyG/2LIAn4XGK0AyS8ieCmmEnW1Hku2ykCo4Ls0gdcYOA==
    -----END CERTIFICATE-----
    [root@localhost certs]#
     
    [root@localhost certs]# cat ocismtp-phoenix2.pem
    -----BEGIN CERTIFICATE-----
    MIIElDCCA3ygAwIBAgIQAf2j627KdciIQ4tyS8+8kTANBgkqhkiG9w0BAQsFADBh
    MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
    d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
    QTAeFw0xMzAzMDgxMjAwMDBaFw0yMzAzMDgxMjAwMDBaME0xCzAJBgNVBAYTAlVT
    MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxJzAlBgNVBAMTHkRpZ2lDZXJ0IFNIQTIg
    U2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
    ANyuWJBNwcQwFZA1W248ghX1LFy949v/cUP6ZCWA1O4Yok3wZtAKc24RmDYXZK83
    nf36QYSvx6+M/hpzTc8zl5CilodTgyu5pnVILR1WN3vaMTIa16yrBvSqXUu3R0bd
    KpPDkC55gIDvEwRqFDu1m5K+wgdlTvza/P96rtxcflUxDOg5B6TXvi/TC2rSsd9f
    /ld0Uzs1gN2ujkSYs58O09rg1/RrKatEp0tYhG2SS4HD2nOLEpdIkARFdRrdNzGX
    kujNVA075ME/OV4uuPNcfhCOhkEAjUVmR7ChZc6gqikJTvOX6+guqw9ypzAO+sf0
    /RR3w6RbKFfCs/mC/bdFWJsCAwEAAaOCAVowggFWMBIGA1UdEwEB/wQIMAYBAf8C
    AQAwDgYDVR0PAQH/BAQDAgGGMDQGCCsGAQUFBwEBBCgwJjAkBggrBgEFBQcwAYYY
    aHR0cDovL29jc3AuZGlnaWNlcnQuY29tMHsGA1UdHwR0MHIwN6A1oDOGMWh0dHA6
    Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RDQS5jcmwwN6A1
    oDOGMWh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RD
    QS5jcmwwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
    d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwHQYDVR0OBBYEFA+AYRyCMWHVLyjnjUY4tCzh
    xtniMB8GA1UdIwQYMBaAFAPeUDVW0Uy7ZvCj4hsbw5eyPdFVMA0GCSqGSIb3DQEB
    CwUAA4IBAQAjPt9L0jFCpbZ+QlwaRMxp0Wi0XUvgBCFsS+JtzLHgl4+mUwnNqipl
    5TlPHoOlblyYoiQm5vuh7ZPHLgLGTUq/sELfeNqzqPlt/yGFUzZgTHbO7Djc1lGA
    8MXW5dRNJ2Srm8c+cftIl7gzbckTB+6WohsYFfZcTEDts8Ls/3HB40f/1LkAtDdC
    2iDJ6m6K7hQGrn2iWZiIqBtvLfTyyRRfJs8sjX7tN8Cp1Tm5gr8ZDOo0rwAhaPit
    c+LJMto4JQtV05od8GiG7S5BNO98pVAdvzr508EIDObtHopYJeS4d60tbvVS3bR0
    j6tJLp07kzQoH3jOlOrHvdPJbRzeXDLz
    -----END CERTIFICATE-----
     
    [root@localhost certs]# cat ocismtp-phoenix3.pem
    -----BEGIN CERTIFICATE-----
    MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
    MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
    d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
    QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT
    MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
    b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG
    9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB
    CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97
    nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt
    43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P
    T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4
    gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO
    BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR
    TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw
    DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr
    hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg
    06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF
    PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls
    YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
    CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
    -----END CERTIFICATE-----
    [root@localhost certs]#
    
  4. 次のコマンドを使用して、nss-config-dr /etc/certsにインポートします:
    [root@localhost certs]# certutil -A -n "DigiCert SHA2 Secure Server CA" -t "TC,," -d /etc/certs -i /etc/certs/ocismtp-phoenix1.pem
    [root@localhost certs]#
    [root@localhost certs]# certutil -A -n "DigiCert SHA2 Secure Server CA smtp " -t "TC,," -d /etc/certs -i /etc/certs/ocismtp-phoenix2.pem
    [root@localhost certs]#
    [root@localhost certs]# certutil -A -n "DigiCert SHA2 Secure Server CA smtp2 " -t "TC,," -d /etc/certs -i /etc/certs/ocismtp-phoenix3.pem  
    
  5. インポートが正しく実行されたかどうかを確認するには、コマンドcertutil -L -d /etc/certsを実行します
    [root@localhost certs]# certutil -L -d /etc/certs
    
    Certificate Nickname Trust Attributes
    SSL,S/MIME,JAR/XPIDigiCert SHA2 Secure Server CA CT,,
    
    DigiCert SHA2 Secure Server CA smtp CT,,
    DigiCert SHA2 Secure Server CA smtp2 CT,,  
    

認証付きホストに中継するためのPostFixの構成

  • 最新バージョンのPostfixがcyrus-sasl-*パッケージとともにインストールされていることを確認します。
    [root@localhost ~]# rpm -qa | grep -i postfix
    postfix-2.6.6-8.el6.x86_64
    [root@localhost ~]# yum install postfix
    Loaded plugins: security, ulninfo
    Setting up Install Process
    Package 2:postfix-2.6.6-8.el6.x86_64 already installed and latest version
    Nothing to do
    [root@localhost ~]#
    [root@localhost ~]#yum install -y cyrus-sasl-*

    ノート:

    使用可能なSASLメカニズムはすべて、関連するcyrus-sasl-*パッケージを取得することでシステムにインストールできます。
  • 次の構成ディレクティブをファイル/etc/postfix/main.cfに追加します:
    #OCI SMTP Relay Host:
    #relayhost = <Replace with your OCI SMTP server>
    relayhost = smtp.us-phoenix-1.oraclecloud.com:587
    #SASL Authentication settings:
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
    smtp_sasl_security_options =
    #TSL Settings:
    smtp_tls_loglevel = 2
    smtp_use_tls = yes
    smtpd_tls_security_level = may
    smtp_tls_CApath = /etc/certs
  • SMTP資格証明の生成ステップで作成した資格証明を格納するファイル/etc/postfix/sasl_passwdを作成し、権限が600に設定されていることを確認します。
    #vi /etc/postfix/sasl_passwd
    relay_host:587 username:password
    Example:
    [root@localhost postfix]# cat /etc/postfix/sasl_passwd
    smtp.us-phoenix-1.oraclecloud.com:587 ocid1.user.oc1..aaaaaaaajjcwynf4ebqp32wdpdy6h4lpeknqiyld7s35t2psfmmfw3y4iosq@ocid1.tenancy.oc1..aaaaaaaavcpbui4wu2ttfnipykravgudbooie2eucf3odrsltgwj236epvha.fa.com:pP)QB&[YIz2ehe>7}fj_
    [root@localhost postfix]#
    
    
    [root@localhost postfix]# chmod 600 /etc/postfix/sasl_passwd
    [root@localhost postfix]#  
    
  • Postfixが読み取ることができるsasl_passwd.dbを作成します:
    [root@localhost postfix]# postmap /etc/postfix/sasl_passwd
    [root@localhost postfix]#
    [root@localhost postfix]# ls -l | grep -i passwd
    -rw-------. 1 root root 224 Jan 31 18:17 sasl_passwd
    -rw-------. 1 root root 12288 Jan 31 18:21 sasl_passwd.db
    [root@localhost postfix]#
    

Postfixの起動

[root@localhost postfix]# chkconfig postfix on
[root@localhost postfix]# service postfix start
[root@localhost postfix]# service postfix status
master (pid 12162) is running...
[root@localhost postfix]#
 
If you are running Oracle Linux 7 run
#systemctl start --now postfix

ファイアウォール・ポートの構成

SMTPクライアント・マシン(電子メールの送信元となるVM)のファイアウォール・リストにこれらのポートを追加します

sudo firewall-cmd --zone=public --permanent --add-port=25/tcp
sudo firewall-cmd --zone=public --permanent --add-port=587/tcp
sudo firewall-cmd --reload

電子メールの送信の開始

  • 電子メールを送信します
    approval is : user@<instancename.localdomain> e.g. opc@oracle-odi-inst-31up.localdomain
    In this case, login as user and test it with mailx
    [user@localhost ~]$ echo "test" | mailx -v -s "OCI Test Message [mailx]" user@oracle.com
    Mail Delivery Status Report will be mailed to <user>.
    [user@localhost ~]
    
  • /var/log/maillogでエラー・メッセージを確認します:
    Jan 31 18:24:36 localhost postfix/pickup[13812]: ECF9BA00B4: uid=501 from=<user>
    Jan 31 18:24:36 localhost postfix/cleanup[14692]: ECF9BA00B4: message-id=<20190131182436.ECF9BA00B4@localhost.sub12182009561.cnvmau.oraclevcn.com>
    Jan 31 18:24:36 localhost postfix/qmgr[12172]: ECF9BA00B4: from=<user@localhost.sub12182009561.cnvmau.oraclevcn.com>, size=549, nrcpt=1 (queue active)
    Jan 31 18:24:36 localhost postfix/smtp[14694]: initializing the client-side TLS engine
    Jan 31 18:24:37 localhost postfix/smtp[14694]: setting up TLS connection to smtp.us-phoenix-1.oraclecloud.com[Public IP]:587
    Jan 31 18:24:37 localhost postfix/smtp[14694]: smtp.us-phoenix-1.oraclecloud.com[Public IP]:587: TLS cipher list "ALL:+RC4:@STRENGTH"
    Jan 31 18:24:37 localhost postfix/smtp[14694]: SSL_connect:before/connect initialization
    Jan 31 18:24:37 localhost postfix/smtp[14694]: SSL_connect:SSLv2/v3 write client hello A
    Jan 31 18:24:37 localhost postfix/smtp[14694]: SSL_connect:SSLv3 read server hello A
    Jan 31 18:24:37 localhost postfix/smtp[14694]: smtp.us-phoenix-1.oraclecloud.com [Public IP]:587: certificate verification depth=2 verify=1 subject=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA
    Jan 31 18:24:37 localhost postfix/smtp[14694]: smtp.us-phoenix-1.oraclecloud.com[Public IP]:587: certificate verification depth=1 verify=1 subject=/C=US/O=DigiCert Inc/CN=DigiCert SHA2 Secure Server CA
    Jan 31 18:24:37 localhost postfix/smtp[14694]: smtp.us-phoenix-1.oraclecloud.com [Public IP]:587: certificate verification depth=0 verify=1 subject=/C=US/ST=California/L=Redwood City/O=Oracle Corporation/OU=Oracle DYN-DEV US/CN=smtp.us-phoenix-1.oraclecloud.com
    Jan 31 18:24:37 localhost postfix/smtp[14694]: SSL_connect:SSLv3 read server certificate A
    Jan 31 18:24:37 localhost postfix/smtp[14694]: SSL_connect:SSLv3 read server key exchange A
    Jan 31 18:24:37 localhost postfix/smtp[14694]: SSL_connect:SSLv3 read server done A
    Jan 31 18:24:37 localhost postfix/smtp[14694]: SSL_connect:SSLv3 write client key exchange A
    Jan 31 18:24:37 localhost postfix/smtp[14694]: SSL_connect:SSLv3 write change cipher spec A
    Jan 31 18:24:37 localhost postfix/smtp[14694]: SSL_connect:SSLv3 write finished A
    Jan 31 18:24:37 localhost postfix/smtp[14694]: SSL_connect:SSLv3 flush data
    Jan 31 18:24:37 localhost postfix/smtp[14694]: SSL_connect:SSLv3 read finished A
    Jan 31 18:24:37 localhost postfix/smtp[14694]: Trusted TLS connection established to smtp.us-phoenix-1.oraclecloud.com[public ip]:587: TLSv1.2 with cipher DHE-RSA-AES256-SHA256 (256/256 bits)
    Jan 31 18:24:38 localhost postfix/smtp[14694]: ECF9BA00B4: to=<user@oracle.com>, relay=smtp.us-phoenix-1.oraclecloud.com[public ip]:587, delay=1.6, delays=0.02/0.03/0.57/1, dsn=2.0.0, status=sent (250 Ok)
    Jan 31 18:24:38 localhost postfix/cleanup[14692]: 94136A00B8: message-id=<20190131182438.94136A00B8@localhost.sub12182009561.cnvmau.oraclevcn.com>
    Jan 31 18:24:38 localhost postfix/bounce[14696]: ECF9BA00B4: sender delivery status notification: 94136A00
    
  • 電子メールは正しく配信されました:
    -------- Forwarded Message --------
    Subject: OCI Test Message [mailx]
    Date: Thu, 31 Jan 2019 18:24:36 +0000
    From: user@localhost.sub12182009561.cnvmau.oraclevcn.com
    To: user@oracle.com