# 231206 xlead 全部看過一次再來執行動作,會更容易了解 ![image](https://hackmd.io/_uploads/SJLU__pBp.png) oracle vm virtualbox install手順書 `\\sendai-file1-sv\sendai-project\187\187111\共通\個人\志村\NTTComメモ.xlsx` 這是主要網頁的建置 *(目前我ASTON_231213使用的branch是 http://srvnttc2:3000/nttc/rdb-common-apps/src/v4.0.0_hotfix_sc_quasar) 如果不是遠端伺服器的話就要做到可以用外面的VSCODE連到VM的內部 做完之後再往下看 http://10.0.2.15/rdb/prod/svc/#/menu-manage http://192.168.33.10/pfid/dev/#/ http://172.16.3.194/pfid/prod/#/login 這三個網頁是有可能用到的網址,再從這邊延伸 (不代表只有這三個 如果上面可以正常到達首頁,就不用做下面找出.env檔變更成DEV動作 *(我沒有這麼做就可以all_up正常啟動 /root/mongo/rdb-common-apps/dev.env prod -> dev もし変更しなければ、起動できますならいい不用 以上是網頁的基本構造 menu資料夾裡有 無法登入的話看資料夾裡的password.txt檔案 建立密碼 以下是API的使用與建置 #### ■バックアップ基盤 ▼共有フォルダ ``` \\sendai-file1-sv\sendai-project\187\187111\2023_04_07\T-P1-BAK-24-23-1-X\ 舊的 \\sendai-file1-sv\sendai-project\233\233035` *(目前我ASTON_231213用這邊,有空可以逛逛 ``` ▼リポジトリ 這是我目前為止API與CRON的建置處 ``` http://srvnttc2:3000/nttc/PFBK.git http://172.16.11.97:3000/nttc/PFBK.git ``` ![image](https://hackmd.io/_uploads/SJakOBUPa.png) ▼ソースの取得、ブランチ切替え ``` git clone http://172.16.11.97:3000/nttc/PFBK.git git checkout origin develop *(目前我ASTON_231225 用feature_tape ``` ▼環境変数の修正 ``` /PFBK/source/pfbk-dr-cron/.env WEBDAV_URL=http://192.168.33.11:10080/pfbk/webdav/ WEBDAV_USER=pfbk_admin WEBDAV_PASSWORD=DoraemoN123! ※IPアドレスは開発環境に合わせて修正してください ``` ▼コンテナの起動(バックエンド処理のみ) ``` pfbk-dr-cron docker-compose up -d pfbk-dr-webdav docker-compose build docker-compose up -d ``` ▼ファイルにパスワード ``` vi /home/xlead_admin/WebDAV/user.passwd pfbk_admin:WebDAV:cdae7a88b3eea48ba27d88d381ba6366 pfbk_maintenance:WebDAV:df852afd8ffef07f86696c3607e8d94e pfbk_azure_cron:WebDAV:e31027837d18218b4eb16fbe8207abaf pfbk_dr_cron:WebDAV:fa5e1e7eb8b14c114d22476932ffa6be pfbk_dr_api:WebDAV:57508a84513886447ebe3ba376622a9c pfep_endpoint_cron:WebDAV:afe5a650bf31f4b7788e69b05c5cf159 ``` #### ▼起動確認(WEBDAV) ``` スキーマ定義ファイルの存在確認 /home/xlead_admin/WebDAV/user.passwd バックアップディレクトリの作成 cd /mnt/mpatha/xlead/PFBK/WebDAV mkdir ./BACKUP ./BACKUP/DB ./BACKUP/LOG mkdir ./TEMP ./TEMP/DB ./TEMP/LOG APIアクセスの確認 curl --digest -u pfbk_admin:DoraemoN123! --url http://localhost:10080/pfbk/webdav/ -k ``` #### ▼起動確認(CRON) ``` ①テスト用ファイルの作成 cd /mnt/mpatha/xlead/PFBK/WebDAV/data/TEMP/DB vi je2_common_mongo_pfap-com_20230611.gz ※ファイル名が大事、中身は適当でOK ②CRONの実行 docker exec -it pfbk-dr-cron /bin/bash python /work/python/app/pfbk_dr_cron_db.py /home/xlead_admin/PFBK/log/dr-cron ③実行結果の確認 ・下記に作成したファイルが無くなっていること /mnt/mpatha/xlead/PFBK/WebDAV/data/TEMP/DB ・各種ディレクトリが作成され、下記にファイルが移動していること /mnt/mpatha/xlead/PFBK/WebDAV/data/BACKUP/DB/20230611/je2/common ``` 如果沒有成功試試重啟cron container,變更資料夾內容有時須重啟才可以繼續使用webdav 到這裡的時候希望能自己找到一個適合自己的快速啟動cron裡python檔案的方法 #### データモデル ■製造step1 MongoDBコンテナ準備 ``` MongoDBコンテナの作成 Collection(2つ)のセットアップツール作成 サンプルデータの登録 ▼シーケンス \\sendai-file1-sv\sendai-project\187\187111\2023_04_07\T-P1-BAK-24-23-1-X\ 検討_バックアップ基盤_24年度版.md ▼データモデル \\sendai-file1-sv\sendai-project\187\187111\2023_04_07\T-P1-BAK-24-23-1-X\BAK_05_詳細設計\ T-P1-BAK-24-データモデル.drawio.svg ▼サンプル:MongoDBのセットアップソース NTTC/rdb-common-apps_v4.0.0_feature_mongodb-replication/tools/setupPFID ▼作業ブランチ refs/remotes/origin/feature_mongodb ``` 務必看懂データモデル 檔案存放構造,怎麼存進DB,跟WEBDAVE是什麼關西,STATUS是怎麼運作 搭配CODE使用會更能了解,在下面這些檔案中找出webdav的存放路徑, 如何從WEBDAV下載到STORAGE,或者反方向存放 #### *(註一 cron側 ![image](https://hackmd.io/_uploads/Hydbr98IT.png) status 5 -> 7 or 9 ``` \\sendai-file1-sv\sendai-project\187\187111\2023_04_07\T-P1-BAK-24-23-1-X\BAK_05_詳細設計\その他\ バックアップ基盤_v2_データイメージ.xlsx ``` #### pfbk-backup-management *(目前我ASTON_231213使用的branch是 http://srvnttc2:3000/nttc/PFBK/src/feature_archive) ■ソース PFBK/source/pfbk-backup-management/ ▼ビルド docker-compose build ▼起動 bash all_up.sh 部品の取込み手順はこちらの資料を参考に実施してみてください。 ``` \\sendai-file1-sv\sendai-project\233\233035\2023_08_11\T-P1-ID-V2-23-2-X\ 認証認可基盤_提供部品取込手順書.xlsx ``` 不明点は鎌田へ! "----->"部分を増加 ``` backup-management-api: build: ./src/backup-management-api image: backup-management-api:${ENV_BLANCH_COM} networks: - app_net depends_on: - backup-management-db tty: true volumes: - ${docker_containers}:/docker/containers - ./src/backup-management-api/app:/work/python/app environment: PLATFORM: ${PLATFORM} ADMIN_ROLE_ID: ${admin_role_id} ENV_TAG_VAL: ${env_tag_val} GR_TAG_VAL: ${gr_tag_val} SV_TAG_VAL: ${sv_tag_val} SYS_TAG_VAL: ${sys_tag_val} ENV_TAG_FLG: ${env_tag_flg} GR_TAG_FLG: ${gr_tag_flg} SV_TAG_FLG: ${sv_tag_flg} SYS_TAG_FLG: ${sys_tag_flg} SYSTEM_USER_ID: ${VUE_APP_system_user} SYSTEM_USER_PASS: ${system_user_pass} ACCOUNT_MANAGEMENT_ADDRESS: ${pfid_api_url}:${port_nginx} REDIS_CONTAINER: ${acc_redis_container} REDIS_PORT: ${port_account_redis} REDIS_PASS: ${acc_redis_pass} REDIS_SSL: ${acc_redis_ssl} MEMCACHED_CONTAINER: ${memcached_container} CACHE_TIME: ${cache_time} LOCAL_TIMEZONE: ${timezone} LOCK_MESSAGE_ID: ${lock_message_id} LOCK_COUNT_THRESHOLD_LIST: ${lock_count_threshold_list} LOCK_RELEASE_MESSAGE_ID: ${lock_release_message_id} RESET_PASSWORD_MESSAGE_ID: ${reset_password_message_id} REQUEST_MESSAGE_STATUS_ID: ${request_message_status_id} COM_MONGO_CONTAINER: ${backup_management_mongo_container} LOG_LEVEL: ${log_level} COSMOS_DB_CONNECTION_STR: ${cosmos_db_connection_str_com} SMTP_USER: ${smtp_user} SMTP_PASSWORD: ${smtp_password} PFBK_ADMIN_ROLE_ID: ${pfbk_admin_role_id} PFBK_TAG_VAL: ${pfbk_tag_val} -----> PFID_API_PATH: ${VUE_APP_PFID_PATH} restart: always logging: driver: json-file ``` #### ■MailHogコンテナ起動 docker run --name vm_cw_mailhog -p 1025:1025 -p 8025:8025 --net app_net mailhog/mailhog MailHogのUI ``` http://192.168.33.11:8025/ http://172.16.3.194/pfid/prod/#/message-method ``` ![image](https://hackmd.io/_uploads/ByJhFuTrp.png) ![image](https://hackmd.io/_uploads/Syc3YOTBT.png) メッセージ手段の設定変更 ``` 'smtp_host': 'vm_cw_mailhog' 'smtp_port': 1025 'from_name': 'メッセージ管理' 'from_address': 'pfap@xxx.xxx' ``` ##### Swaggerの場所 rdb-common-apps_quasar\docs\api\PFAP-acc-manage-api.yaml SWAGGER要能作用,需要更換TOKEN動作 ![image](https://hackmd.io/_uploads/BJ1vQqIL6.png) 這裡的default要更換成從網頁上得到的token http://172.16.3.194/pfid/prod/#/account-top ![image](https://hackmd.io/_uploads/Hy-hmcIIa.png) 在首頁按下登入後可以從上面圖片中獲得X-Subject-Token メッセージ送信のAPI 裡面的token 要做更換 可以參考archive_daily_verify.py裡面的get_token如何拿到 ``` curl -X 'POST' \ 'http://localhost:80/pfid/dev/id-api/mng/v1/message/send/me-common' \ -H 'accept: application/json' \ -H 'X-Auth-Token: 03a2c13319683f4ed2136bdf8902a39031a36a88bb144f8e5ba2b14285990a1c' \ -H 'Content-Type: application/json' \ -d '{ "user_ids": [ "admin" ], "group_ids": [], "system_role_send": false, "system_roles": [], "system_role_service_id": [], "template_params": { "title": "【テスト】●●●障害通知(ユーザ指定)", "subject": "(テスト送信です)\n\n●●●障害が発生しました。\n\n【発生日時】\nyyyy/mm/dd hh:mm:ss\n\n【障害内容】\nxxx" }}' ``` ``` \\sendai-file1-sv\sendai-project\233\233035\共通\個人\志村\20230908_ヘッダメニュー構築\20230821_Vue3_Quesar移行.xlsx ``` UIのソースをGitにプッシュしたので、プルしてください。 UIを使うために必要な各NGINXの定義ファイルは下記に格納しましたので、参考にしてください。 ``` \\sendai-file1-sv\sendai-project\233\233035\2023_08_11\T-P1-BAK-V2-23-2-X\90.その他\20231114_ui ``` pfep-frontend-nginx_default.conf backup-management-nginx_default.conf pfap-frontend-nginx_default.conf なお、QuasarのHotDeploy環境はNode.jsの更新など色々とOS環境のアップデートが必要なので、 参考まで、HotDeploy環境が構築できた場合のnode_module込みのソースも格納しておきます。 pfbk-vue.tar.gz 這裡面的檔案去自己的網頁那邊找到除了壓縮檔的三個,觀察不同的地方,貼上並重新all_up一次 #### 資産管理のプロパティ[asset]追加 ``` { _id: ObjectId('65269a59d0cfab0007e5f1bc'), archive_name: 'ログ基盤', backup_status: true, owners: [ 'B103164', 'pflog-v2-develop-manager-01' ], quote_size: { 'sum/G': 1, 'limit/%': 80 }, archive_define: [ { define_id: 'snapshot_base', define_name: '共通網 ログ基盤 Baseログ', category_1: 1, category_2: 2 }, { define_id: 'snapshot_pj1', define_name: '共通網 ログ基盤 PJ1ログ', category_1: 1, category_2: 2 }, { define_id: 'H000195758', define_name: 'リソースDB プラットフォーム構築 T-P1-LOG-22-21-1-H', category_1: 2, category_2: 2, asset: { asset_cd: '5030004309', wbs_cd: '03197099930710002', approval_cd: 'MSSカ00793116', approval_title: '【投資】リソースDB プラットフォーム構築 T-P1-LOG-22-21-1の契約締結について [ISMP:SYS0003005]', acquisition_date: '202203' } } ] } ``` 資產配置可以沒有擁有者可以是多數 #### *(註二 ``` rdb-common-apps 起動 PFBK -cronの使用(コンテナ中pythonの実行) -WebDAVの使用(curl) -quasarのデバッグモード mailhog メッセージ送信 ``` 在執行cron時可以看附近的一些檔案比如archive_daily_verify 裡面會有DB的資訊 從SWAGGER中的回覆範例中找到db的輸入資料, 自己製作更新DB的python檔案以達到隨時可以復原DB 大多資料範例都可以在SWAGGER中找到,或是在DATAモデル中找到 (如果從SWAGGER找記得比對DATAモデル選擇正確的資料複製) ![image](https://hackmd.io/_uploads/S1oTB5IL6.png) 以上所有行為要注意自己的IP,畢竟跟我環境不同, 有API問題查看CONTAINER的LOG 比如有API問題 看API相關的container 大部分API相關都會在這裡 docker logs -f dev_backup-management-api_1 有登入問題看ACCOUNT相關container以此類推*(我到現在也只看過這兩種就是 #### *(註3 目前根據資料庫有3類五個 TAPE -management ARCHIVE -management -result BACKUP -management -result #### 補充 API側 可以想像成使用者在網站上所需的行為1-5 CRON側 則是定期執行的動作7-9 API 1-9 的行為說明上是: 有人提出檔案需要備份,從要求到準備好需要備份的檔案,1-5 配合上面的#起動確認(CRON)可以達到7-9 實際上備份到storage是(7),要成為(7)才可以提出下載需求(download status 1) 根據世代管理刪除檔案(9) 找data model中的各個欄位,在API與CRON中的程式碼尋找可以快速了解行為 API相關檔案是,可以透過swagger配合下面檔案去認識 ```PFBK/source/pfbk-backup-management/src/backup-management-api/app/views/cman/viewcman.py``` 以上是我看對話紀錄加上自己得通靈夢到的,希望能讓看的人快速掌握 ---- #### 結語: 到這邊應該要能理解包含以下 1.稍微了解 註一檔案內容,能夠執行註二,了解註3用途 2.熟悉CONTAINER 的基本指令 *(查看LOG,建立,移除CONTAINER 3.能夠以自己建立的DATA放入DB後 透過SEAGGER API與註一的檔案,自行執行API 觀察DB使得result_status能從1-9,觀察其中檔案移動過程,路徑變化 4.能夠使用quasar的dev模式進行hot-reload開發 ![image](https://hackmd.io/_uploads/rkuauc8UT.png) 我ASTON_231213使用的畫面 *(注意有包含左邊側欄,並且能點開顯示,能收縮 5.了解corn側與API側分別的行為 到這邊基本上與上司的對話應該能聽懂7成 這裡有我整包的檔案 \\sendai-file1-sv\sendai-project\187\187111\共通\個人\ソウ\20231213_chen