0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[OCI]Autonomous Databaseのウォレットをダウンロードして環境に合わせて配置するシェルスクリプトを書いてみた

Last updated at Posted at 2022-11-08

Autonomous Databaseのウォレットファイルをダウンロードして環境に合わせてファイルを修正、配置するシェルスクリプトを書いてみた時のメモ(OCI CLIがセットアップされている前提)

<シェルスクリプトの動作>
1.OCI CLIを使ってAutonomous Databaseのウォレット(Zipファイル)をダウンロード
2.ダウンロードしたZipファイルを解凍
3.sqlnet.oraを環境変数に合わせて書換え
4.解凍したファイル一式を環境変数に合わせて移動

deploy_wallet.sh
#! /bin/bash

# ADBのOCIDとウォレットのパスワードを入力させる
read -p "OCID of ADB: " OCID
read -p "Password for Wallet: " PASSWORD

# 環境変数の表示
echo "TNS_ADMIN:" $TNS_ADMIN    
echo "ORACLE_HOME:" $ORACLE_HOME

# /tmpに移動
cd /tmp

# OCI CLIでウォレット(Zipファイル)を/tmp/new_wallet.zipとしてダウンロード
oci db autonomous-database generate-wallet --autonomous-database-id $OCID --file /tmp/new_wallet.zip --password $PASSWORD

# Zipファイル解凍用のディレクトリを作成
mkdir new_wallet

# Zipファイルを/tmp/new_walletに解凍
unzip new_wallet.zip -d ./new_wallet

# /tmp/new_walletに移動
cd new_wallet

# 環境変数TNS_ADMINが設定されている場合
if [ $TNS_ADMIN ]; then
        echo "Wallet Location:" $TNS_ADMIN
# sqlnet.oraファイル内のWALLET_LOCATIONのDIRECTORYを$TNS_ADMINの値に変更
        sed -i.bak -e "s|?/network/admin|$TNS_ADMIN|" sqlnet.ora
# 解凍したファイル一式を$TNS_ADMINに移動
        sudo mv ./* $TNS_ADMIN
# 環境変数TNS_ADMINが設定されていない場合
else
        echo "Wallet Location:" $ORACLE_HOME/network/admin
# sqlnet.oraファイル内のWALLET_LOCATIONのDIRECTORYを$ORACLE_HOME/network/adminの値に変更
        sed -i.bak -e "s|?|$ORACLE_HOME|" sqlnet.ora
# 解凍したファイル一式を$ORACLE_HOME/network/admin/に移動
        sudo mv ./* $ORACLE_HOME/network/admin/
fi

# /tmpに移動
cd /tmp

# /tmp/new_walletを削除
rm -r new_wallet

パーミッションを変更

[opc@tools ~]$ chmod +x deploy_wallet.sh

環境変数TNS_ADMINが設定されている場合の実行ログ

[opc@tools ~]$ ./deploy_wallet.sh 
OCID of ADB: ocid1.autonomousdatabase.oc1.ap-tokyo-1.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Password for Wallet: Oracle#1
TNS_ADMIN: /home/opc/wallet
ORACLE_HOME: /usr/lib/oracle/21/client64/lib
Archive:  new_wallet.zip
  inflating: ./new_wallet/ewallet.pem  
  inflating: ./new_wallet/README     
  inflating: ./new_wallet/cwallet.sso  
  inflating: ./new_wallet/tnsnames.ora  
  inflating: ./new_wallet/truststore.jks  
  inflating: ./new_wallet/ojdbc.properties  
  inflating: ./new_wallet/sqlnet.ora  
  inflating: ./new_wallet/ewallet.p12  
  inflating: ./new_wallet/keystore.jks  
Wallet Location: /home/opc/wallet
[opc@tools ~]$

実行結果の確認

[opc@tools ~]$ cd $TNS_ADMIN
[opc@tools wallet]$ ls
cwallet.sso  ewallet.pem   ojdbc.properties  sqlnet.ora      tnsnames.ora
ewallet.p12  keystore.jks  README            sqlnet.ora.bak  truststore.jks
[opc@tools wallet]$ cat sqlnet.ora
WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="/home/opc/wallet")))
SSL_SERVER_DN_MATCH=yes
[opc@tools wallet]$ 

環境変数TNS_ADMINが設定されていない場合の実行ログ

[opc@tools ~]$ ./deploy_wallet.sh 
OCID of ADB: ocid1.autonomousdatabase.oc1.ap-tokyo-1.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Password for Wallet: Demo#1Demo#1
TNS_ADMIN:
ORACLE_HOME: /usr/lib/oracle/21/client64/lib
Archive:  new_wallet.zip
  inflating: ./new_wallet/ewallet.pem  
  inflating: ./new_wallet/README     
  inflating: ./new_wallet/cwallet.sso  
  inflating: ./new_wallet/tnsnames.ora  
  inflating: ./new_wallet/truststore.jks  
  inflating: ./new_wallet/ojdbc.properties  
  inflating: ./new_wallet/sqlnet.ora  
  inflating: ./new_wallet/ewallet.p12  
  inflating: ./new_wallet/keystore.jks  
Wallet Location: /usr/lib/oracle/21/client64/lib/network/admin
[opc@tools ~]$

実行結果の確認

[opc@tools ~]$ cd $ORACLE_HOME/network/admin
[opc@tools admin]$ ls
cwallet.sso  ewallet.pem   ojdbc.properties  sqlnet.ora      tnsnames.ora
ewallet.p12  keystore.jks  README            sqlnet.ora.bak  truststore.jks
[opc@tools admin]$ cat sqlnet.ora
WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="/usr/lib/oracle/21/client64/lib/network/admin")))
SSL_SERVER_DN_MATCH=yes
[opc@tools admin]
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?