این راهنما نحوه نصب و استقرار Apigee Edge for Private Cloud و پراکسیهای API را در محیط Google Distributed Cloud (GDC) بدون اتصال به اینترنت شرح میدهد. برای مدیریت زیرساخت و سرویسهای پیشنهادهای GDC air-gapped، ازجمله Apigee Edge for Private Cloud، نیازی به اتصالپذیری به Google Cloud نیست. میتوانید از صفحه کنترل محلی میزبانیشده در محل خود برای همه عملیات استفاده کنید. برای نمای کلی GDC بدون اتصال به اینترنت، نمای کلی را ببینید.
این راهنما برای اپراتورهای Apigee درنظر گرفته شده است که با Apigee Edge for Private Cloud آشنا هستند و درک اولیهای از Kubernetes دارند.
نمای کلی مراحل لازم
برای نصب و استقرار Apigee Edge for Private Cloud در محیط GDC بدون اتصال به اینترنت، اپراتور باید مراحل زیر را تکمیل کند:
- فایلهای نصب Apigee Edge for Private Cloud را دریافت کنید.
- یک مخزن ذخیرهسازی راهاندازی کنید.
- یک گره مخزن راهاندازی کنید.
- استقرار گرههای Apigee.
- یک گره کنترل راهاندازی کنید.
- Ansible را پیکربندی کنید.
- عناصر Apigee را نصب کنید.
- واحدها و سرویسها را مستقر کنید.
- نشانیهای IP بارگذارنده و ارسالکننده Fluent Bit را بهروز کنید.
- سازمان Apigee را آماده کنید.
- اتصالپذیری HTTP را آزمایش کنید.
- «امنیت لایه انتقال» را پیکربندی کنید و HTTPS را آزمایش کنید.
قبلاز شروع
قبلاز شروع فرایند نصب، حتماً مراحل زیر را تکمیل کنید:
- اگر ازقبل پروژه GDC ندارید، پروژهای برای استفاده در نصب ایجاد کنید. برای اطلاعات بیشتر، ایجاد پروژه را ببینید.
- «خط فرمان»
gdcloudرا در ایستگاه کاری متصل به GDC یا در محیط استقرار پیوسته سازمانتان بارگیری، نصب، و پیکربندی کنید. - اطلاعات اعتباری لازم برای استفاده از
gdcloudCLI وkubectlAPI را دریافت کنید. برای اطلاع از مراحل لازم، به اصالتسنجی حساب برای دسترسی مراجعه کنید. - نام کاربری و گذرواژه Apigee را که از مدیر حساب Apigee خود دریافت کردهاید تأیید کنید.
- نام خوشه سرپرست GKE و نام خوشه کاربر GKE را تأیید کنید.
الزامات ظرفیت
نصب Apigee Edge for Private Cloud در GDC به چندین ماشین مجازی (VM) با تخصیص منابع خاص نیاز دارد. این ماشینهای مجازی براساس منابع محاسباتی (RAM، هستههای vCPU) و فضای ذخیرهسازی دیسک محلی هزینه دارند. برای اطلاعات بیشتر، به قیمتگذاری مراجعه کنید.
جدول زیر الزامات منبع برای هر ماشین مجازی را نشان میدهد:
| نوع ماشین مجازی | حافظه دسترسی تصادفی (RAM) | هستههای vCPU | فضای ذخیرهسازی دیسک |
|---|---|---|---|
| گره Repo | ۸ گیگابایت | ۲ هسته vCPU | ۶۴ گیگابایت |
| گره کنترل | ۸ گیگابایت | ۲ هسته vCPU | ۶۴ گیگابایت |
| گرههای مدیریت Apigee API 1، 2، و 3 | ۱۶ گیگابایت حافظه دسترسی تصادفی | ۸ هسته vCPU | ۶۷۰ گیگابایت |
| گرههای مدیریت Apigee API 4 و 5 | ۱۶ گیگابایت حافظه دسترسی تصادفی | ۸ هسته vCPU | ۵۰۰ گیگابایت - ۱ ترابایت |
نقشها و اجازهها
نقشها و اجازههای زیر برای استقرار Apigee Edge for Private Cloud در محیط GDC بدون اتصال به اینترنت لازم است:
- سرپرست پلاتفرم (PA): نقش
IAM Adminرا اختصاص دهید. - اپراتور برنامه (AO): نقشهای زیر را اختصاص دهید:
-
Harbor Instance Admin: دسترسی کامل برای مدیریت نمونههای Harbor در پروژه دارد. -
LoggingTarget Creator:LoggingTargetمنبع سفارشی در فضای نام پروژه ایجاد میکند. -
LoggingTarget Editor:LoggingTargetمنبع سفارشی را در فضای نام پروژه ویرایش میکند. -
Project Bucket Admin: باکتهای فضای ذخیرهسازی و اشیای درون باکتها را مدیریت میکند Project Grafana Viewer: به نمونه پایش در فضای نام پروژه دسترسی پیدا میکند.-
Project NetworkPolicy Admin: خطمشیهای شبکه پروژه را در فضای نام پروژه مدیریت میکند. -
Project VirtualMachine Admin: ماشینهای مجازی را در فضای نام پروژه مدیریت میکند. -
Secret Admin: اسرار Kubernetes را در پروژهها مدیریت میکند. -
Service Configuration Admin: دسترسی خواندن و نوشتن به پیکربندیهای سرویس در فضای نام پروژه دارد. Namespace Admin: همه منابع را در فضاهای نام پروژه مدیریت میکند.
-
- Apigee on GDC air-gapped با سرورهای ساناد ارائه نمیشود و از تجزیهوتحلیل ساناد محلی بهعنوان راهکار موقت استفاده میکند. اگر Apigee on GDC air-gapped در محیطی با سرورهای ساناد خارجی مستقر شده است، مراحلی را که ساناد محلی را پیکربندی میکند با پیکربندی ورودیهای ساناد در سرورهای ساناد جایگزین کنید.
- Apigee on GDC air-gapped شامل سرور SMTP مستقل نمیشود. هرزمان بخواهید میتوانید سرور SMTP را پیکربندی کنید تا اعلانهای ایمیل خروجی برای ایجاد حساب و بازنشانی گذرواژه از «سرور مدیریت» و «واسط کاربر مدیریت» فعال شود. «میاناهای برنامهسازی کاربردی مدیریت» برای مدیریت حساب کاربری Apigee دردسترس باقی میماند. برای کسب اطلاعات بیشتر، پیکربندی سرور SMTP Edge را ببینید.
- Apigee در GDC بدون اتصال به اینترنت، تشخیص و جلوگیری از ورود غیرمجاز را پیادهسازی نمیکند. برای شناسایی و جلوگیری از فعالیتهای مخرب، «سیستم جلوگیری از نفوذ» (IPS) مانند Snort را نصب و پیکربندی کنید.
- سیستمعامل: Rocky Linux 8
- اندازه ماشین: ۸ گیگابایت حافظه دسترسی تصادفی؛ ۲ هسته CPU مجازی؛ ۶۴ گیگابایت فضای ذخیرهسازی دیسک محلی
- اتصالپذیری:
- ورودی: TCP 22 (SSH)
- خروجی: اینترنت
- یادداشتهای انتشار Apigee Edge for Private Cloud را برای جدیدترین نسخه رسمی انتشار پشتیبانیشده برای GDC، همانطور که در ستون Edge for Private Cloud ذکر شده است، بررسی کنید.
- فایل راهاندازی Edge را بارگیری کنید:
curl https://software.apigee.com/apigee/tarball/VERSION/rocky8/archive.tar -o /tmp/archive.tar -u 'APIGEE_USER:APIGEE_PASSWORD'
مکان:
- APIGEE_USER نام کاربریای است که برای سازمان Apigee دریافت کردهاید.
- APIGEE_PASSWORD گذرواژهای است که برای سازمان Apigee دریافت کردهاید.
- VERSION نسخه انتشار Apigee Edge for Private Cloud برای استفاده در GDC است که میخواهید نصب کنید، برای مثال، 4.53.01.
- آخرین فایل Apigee Edge for Private Cloud
bootstrap_VERSION.shرا در/tmp/bootstrap_VERSION.shبارگیری کنید:curl https://software.apigee.com/bootstrap_VERSION.sh -o /tmp/bootstrap_VERSION.sh
در اینجا VERSION جدیدترین نسخه انتشار Apigee Edge for Private Cloud برای استفاده در GDC است که میخواهید نصب کنید، برای مثال، 4.53.01.
- ابزار Edge
apigee-serviceو وابستگیها را نصب کنید:sudo bash /tmp/bootstrap_VERSION.sh apigeeuser=APIGEE_USER apigeepassword=APIGEE_PASSWORD
مکان:
- APIGEE_USER نام کاربریای است که برای سازمان Apigee دریافت کردهاید.
- APIGEE_PASSWORD گذرواژهای است که برای سازمان Apigee دریافت کردهاید.
- VERSION نسخه انتشار Apigee Edge for Private Cloud برای استفاده در GDC است که قصد دارید نصب کنید.
- دستورگان راهاندازی را در گره متصل اجرا کنید:
chmod a+x connected-node_setup.sh \ ./connected-node_setup.sh
در این مرحله، دستورگان فایلهای موردنیاز را در مکانهای زیر تولید میکند (برای مثال، برای نسخه 4.53.01):
/opt/apigee/data/apigee-mirror/apigee-4.53.01.tar.gz/tmp/apigee-nginx/apigee-nginx.tar/tmp/fluentbit/fluentbit.tar/tmp/postgresql14/postgresql14.tar/tmp/ansible-rpms.tar/tmp/apigee-repos.tar
- فایلهای موردنیاز را از گره متصلشده ازطریق SSH به ماشین محلی منتقل کنید:
mkdir apigee-filescd apigee-filesfor file in /opt/apigee/data/apigee-mirror/apigee-4.53.01.tar.gz /tmp/ansible-rpms.tar /tmp/apigee-nginx/apigee-nginx.tar /tmp/fluentbit/fluentbit.tar /tmp/postgresql14/postgresql14.tar /tmp/apigee-repos.tar; do scp -i SSH_PRIVATE_KEY_FILE USER@CONNECTED_NODE_IP:$file . doneمکان:
- SSH_PRIVATE_KEY_FILE مسیر فایل کلید خصوصی SSH است.
- USER نام کاربری گره متصل است.
- CONNECTED_NODE_IP نشانی IP گره متصل است.
- با خوشه سرپرست سازمان اصالتسنجی کنید:
gdcloud auth login --login-config-cert WEB_TLS_CERTgdcloud clusters get-credentials ORG_ADMIN_CLUSTERمکان:
- WEB_TLS_CERT مسیر گواهینامه وب TLS است.
- ORG_ADMIN_CLUSTER نام خوشه GKE سرپرست سازمان است.
- متغیرهای محیط پروژه و باکت را تنظیم کنید:
export PROJECT=PROJECTexport BUCKET=BUCKET_NAMEمکان:
- PROJECT نام پروژه GDC شما است.
- BUCKET_NAME نام سطلی است که میخواهید برای ذخیره کردن فایلهای پشتیبان Apigee Edge for Private Cloud ایجاد کنید.
- پیکربندی دستهبندی را اعمال کنید:
kubectl apply -f - <<EOF apiVersion: object.GDC.goog/v1 kind: Bucket metadata: name: $BUCKET namespace:$PROJECT spec: description: bucket for Apigee backup files storageClass: Standard bucketPolicy : lockingPolicy : defaultObjectRetentionDays: 30 EOFاین پیکربندی سطلی با دوره نگهداری ۳۰ روزه ایجاد میکند.
- ایجاد حساب سرویس در پروژه:
gdcloud iam service-accounts create $BUCKET-sa \ --project=$PROJECT - نقش و اتصال نقش را برای تولید رمز دسترسی به محفظه ایجاد کنید:
kubectl apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: $BUCKET-role namespace: $PROJECT rules: - apiGroups: - object.gdc.goog resourceNames: - $BUCKET resources: - buckets verbs: - get - read-object - write-object --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: $BUCKETrolebinding namespace: $PROJECT roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: $BUCKET-role subjects: - kind: ServiceAccount name: $BUCKET-sa namespace: $PROJECT EOF
- شناسه کلید دسترسی و کلید را از رمز دریافت کنید:
export BUCKET_SECRET=$(kubectl get secret -n $PROJECT -o jsonpath="{range .items[*]}{.metadata.name}{':'}{.metadata.annotations['object\.GDC\.goog/subject']}{'\n'}{end}" | grep $BUCKET | tail -1 | cut -f1 -d :)echo "access-key-id=$(kubectl get secret -n $PROJECT $BUCKET_SECRET -o jsonpath="{.data['access-key-id']}")"echo "access-key=$(kubectl get secret -n $PROJECT $BUCKET_SECRET -o jsonpath="{.data['secret-access-key']}")"برونداد باید شبیه به موارد زیر باشد:
access-key-id=RFdJMzRROVdWWjFYNTJFTzJaTk0= access-key=U3dSdm5FRU5WdDhMckRMRW1QRGV0bE9MRHpCZ0Ntc0cxVFJQdktqdg==
- راز را ایجاد کنید تا بارگذارنده در خوشه GKE کاربر از آن استفاده کند:
- با خوشه GKE کاربر اصالتسنجی کنید:
gdcloud clusters get-credentials USER_CLUSTER
که در آن USER_CLUSTER نام خوشه GKE کاربر است.
- پیکربندی رمز را اعمال کنید:
kubectl apply -f - <<EOF apiVersion: v1 kind: Secret metadata: namespace: $PROJECT name: $BUCKET-secret type: Opaque data: access-key-id: ACCESS_KEY_ID access-key: ACCESS_KEY EOF
مکان:
- ACCESS_KEY_ID شناسه کلید دسترسی است که در مرحله قبل بهدست آمده است.
- ACCESS_KEY کلید دسترسی است که در مرحله قبلی بهدست آمده است.
- با خوشه GKE کاربر اصالتسنجی کنید:
- نقطه پایانی فضای ذخیرهسازی، نام دامنه کاملاً واجدشرایط (FQDN)، و منطقه دستهبندی را دریافت کنید:
- با خوشه سرپرست سازمان اصالتسنجی کنید:
gdcloud clusters get-credentials ORG_ADMIN_CLUSTER
که در آن ORG_ADMIN_CLUSTER نام خوشه GKE سرپرست سازمان است.
- نقطه پایانی فضای ذخیرهسازی، نام دامنه کاملاً واجدشرایط (FQDN)، و منطقه مخزن را دریافت کنید:
kubectl get buckets ${BUCKET} -n $PROJECT -o jsonpath="{'endpoint: '}{.status.endpoint}{'\n'}{'bucket: '}{.status.fullyQualifiedName}{'\n'}{'region: '}{.status.region}{'\n'}"
برونداد باید شبیه به موارد زیر باشد:
endpoint: https://objectstorage.gpu-org.cookie.sesame.street bucket: ez9wo-apigee-backup-bucket region: cookie
- با خوشه سرپرست سازمان اصالتسنجی کنید:
- مقادیر زیر را در فایل
apigee/helm_user_cluster/values-cookie-air-gapped.yamlبهروز کنید:objectstorekeyname: "apigee-backup-bucket-secret" objectstoreurl: "BUCKET_ENDPOINT" objectstorebucket: "BUCKET_FQDN"
مکان:
- BUCKET_ENDPOINT نقطه پایانی مخزن بهدستآمده در مرحله قبلی است.
- BUCKET_FQDN نام دامنه کاملاً واجدشرایط مربوط به سطلی است که در مرحله قبلی بهدست آمده است.
-
apigee/helm_user_cluster/values-cookie-air-gapped.yamlرا بهصورت زیر بهروز کنید:repo_node: enabled: true apigee_node: enabled: false control_node: enabled: false
مطمئن شوید که
repo_nodeفعال باشد و همapigee_nodeو همcontrol_nodeغیرفعال باشند. این گرهها در مرحله بعدی مستقر میشوند. - دریافت اطلاعات اعتباری برای خوشه سرپرست سازمان:
gdcloud clusters get-credentials ORG_ADMIN_CLUSTER
که در آن ORG_ADMIN_CLUSTER نام خوشه GKE سرپرست سازمان است.
- محیط مجازی Python بسازید:
python3 -m venv venv / source venv/bin/activate
- دستورگان پیادهسازی را برای ایجاد گره مخزن اجرا کنید:
python apigee/solution_deploy.py gdc-air-gapped
- SSH را برای گره مخزن پیکربندی کنید:
export NODE=repokubectl create -n $PROJECT -f - <<EOF apiVersion: virtualmachine.GDC.goog/v1 kind: VirtualMachineAccessRequest metadata: generateName: $NODE- spec: ssh: key: | "cat SSH_PUBLIC_KEY_FILE" ttl: 24h user: admin vm: $NODE EOFکه در آن SSH_PUBLIC_KEY_FILE نام فایلی است که حاوی کلید عمومی SSH شما است.
- نشانی IP خارجی را برای گره مخزن دریافت کنید:
kubectl get virtualmachineexternalaccess -n $PROJECT $NODE -ojsonpath='{.status.ingressIP}' - نشانی IP داخلی گره مخزن را دریافت کنید:
kubectl get virtualmachines.virtualmachine.gdc.goog -n $PROJECT $NODE -ojsonpath='{.status.network.interfaces[1].ipAddresses[0]}' apigee-4.53.01apigee-nginx.tarpostgresql14.tarfluentbit.taransible-rpms.tarapigee-repos.tar- فایل کلید خصوصی SSH را در گره مخزن کپی کنید:
scp -i SSH_PRIVATE_KEY_FILE ~/apigee-files/* admin@REPO_EXTERNAL_IP:/tmp
مکان:
- SSH_PRIVATE_KEY_FILE نام فایلی است که حاوی کلید خصوصی SSH شما است.
- REPO_EXTERNAL_IP نشانی IP خارجی گره مخزن است که در مرحله قبلی بهدست آمده است.
- پوشه حاوی پیکربندیهای Fluent Bit را در گره مخزن بارگذاری کنید:
scp -i SSH-PRIVATE-KEY-FILE -r apigee/scripts/fluent-bit admin@REPO_EXTERNAL_IP:/tmp/fluent-bit
مکان:
- SSH_PRIVATE_KEY_FILE نام فایلی است که حاوی کلید خصوصی SSH شما است.
- REPO_EXTERNAL_IP نشانی IP خارجی گره مخزن است.
-
apigee/scripts/repo_setup.shرا در گره مخزن کپی کنید. - در این دستورگان، REPO_USER و REPO_PASSWORD را با نام کاربری و گذرواژه موردنظر برای مخزن آینهای جایگزین کنید.
- اجرای متن:
chmod a+x repo_setup.sh./repo_setup.shاگر با خطای
No such file or directoryمواجه شدید، دوباره این دستورگان را اجرا کنید. - اتصال به مخزن آینه را بهصورت محلی از گره مخزن آزمایش کنید.
curl http://REPO_USER:REPO_PASSWORD@REPO_INTERNAL_IP:3939/bootstrap_VERSION.sh -o /tmp/bootstrap_VERSION.shcurl http://REPO_USER:REPO_PASSWORD@REPO_INTERNAL_IP:3939/apigee/release/VERSION/repodata/repomd.xmlVERSION را با نسخه Apigee Edge for Private Cloud که میخواهید نصب کنید جایگزین کنید.
-
REPO_INTERNAL_IP،REPO_USER_NAME، وREPO_PASSWORDرا درapigee/helm/scripts/apigee_setup.shبا مقادیر موردنظر جایگزین کنید. - مقادیر را بهعنوان متغیرهای محیط صادر کنید:
export REPO_IP=REPO_INTERNAL_IPexport REPO_USER=REPO_USER_NAMEexport REPO_PASSWORD=REPO_PASSWORD apigee_nodeرا درapigee/helm/values-cookie-air-gapped.yamlهمانطور که نشان داده شده است فعال کنید::apigee_node: enabled: true
- برای ایجاد گرههای Apigee، دستورگان استقرار را اجرا کنید:
source venv/bin/activatepython apigee/solution_deploy.py gdc-air-gapped - با خوشه سرپرست سازمان اصالتسنجی کنید:
gdcloud clusters get-credentials ORG_ADMIN_CLUSTER
که در آن ORG_ADMIN_CLUSTER نام خوشه GKE سرپرست سازمان است.
- برای هر گره، کلید SSH ایجاد کنید:
for i in 1 2 3 4 5; do kubectl create -n $PROJECT -f - <<EOF apiVersion: virtualmachine.GDC.goog/v1 kind: VirtualMachineAccessRequest metadata: generateName: node$i spec: ssh: key: | "cat SSH_PUBLIC_KEY_FILE" ttl: 24h user: admin vm: node$i EOF doneکه در آن SSH_PUBLIC_KEY_FILE نام فایلی است که حاوی کلید عمومی SSH شما است.
- نشانیهای IP خارجی را برای گرههای Apigee دریافت کنید:
for i in 1 2 3 4 5; do kubectl get virtualmachineexternalaccess -n $PROJECT node$i -ojsonpath='{.status.ingressIP}' echo done - نشانیهای IP داخلی را برای گرههای Apigee دریافت کنید:
for i in 1 2 3 4 5; do kubectl get virtualmachines.virtualmachine.gdc.goog -n $PROJECT node$i -ojsonpath='{.status.network.interfaces[1].ipAddresses[0]}' echo done - (اختیاری) بررسی کنید که آیا دستورگان راهاندازی در گرههای Apigee باموفقیت اجرا میشوند:
- بااستفاده از SSH به گره بروید و فرمان زیر را اجرا کنید:
sudo journalctl -u cloud-final -f
- گزارشهای مشابه موارد زیر را پیدا کنید:
Aug 29 18:17:00 172.20.128.117 cloud-init[1895]: Complete! Aug 29 18:17:00 172.20.128.117 cloud-init[1895]: Finished running the command: . /var/lib/google/startup-scripts/apigee-setup
- بااستفاده از SSH به گره بروید و فرمان زیر را اجرا کنید:
-
REPO_INTERNAL_IP،REPO_USER_NAME، وREPO_PASSWORDرا درapigee/helm/scripts/control_setup.shبا مقادیر موردنظر جایگزین کنید. -
control_nodeرا درapigee/helm/values-cookie-air-gapped.yamlفعال کنید، همانطور که نشان داده شده است:control_node: enabled: true
- برای ایجاد گره کنترل، دستورگان پیادهسازی را اجرا کنید:
source venv/bin/activatepython apigee/solution_deploy.py gdc-air-gapped - دسترسی «پوسته ایمن» به گره کنترل را پیکربندی کنید:
kubectl create -n $PROJECT -f - <<EOF apiVersion: virtualmachine.GDC.goog/v1 kind: VirtualMachineAccessRequest metadata: generateName: control- spec: ssh: key: | "cat SSH_PUBLIC_KEY_FILE" ttl: 24h user: admin vm: control EOF - نشانی IP خارجی را برای گره کنترل دریافت کنید:
kubectl get virtualmachineexternalaccess -n $PROJECT control -ojsonpath='{.status.ingressIP}' - نشانی IP داخلی گره کنترل را دریافت کنید:
kubectl get virtualmachines.virtualmachine.GDC.goog -n $PROJECT control -ojsonpath='{.status.network.interfaces[1].ipAddresses[0]}' - ازطریق SSH به گره کنترل متصل شوید و محیط Ansible را راهاندازی کنید:
cd /home/admincp -r /tmp/apigee-repos .cd apigee-repos/ansible-opdk-accelerator/setup - جایگزین کردن مخازن git راه دور با فایل محلی:
sed -i 's/https:\/\/github.com\/carlosfrias/git+file:\/\/\/home\/admin\/apigee-repos/g' requirements.ymlsed -i 's/\.git$//g' requirements.yml - Install Ansible requirements:
sudo chown -R admin /home/admin/apigee-reposansible-galaxy install -r requirements.yml -f - پیکربندی راهاندازی را بهروزرسانی کنید:
- ویرایش فایل
main.yml:vi ~/apigee-repos/ansible-opdk-accelerator/setup/roles/apigee-opdk-setup-ansible-controller/tasks/main.yml
- تکالیفی را که به دسترسی GitHub نیاز دارند بردارید:
- بررسی Git SSH مخزنهای پیکربندی
- بررسی Git HTTPS مخزنهای پیکربندی
- اجرای کتابچه نمایشی راهاندازی:
cd ~/apigee-repos/ansible-opdk-accelerator/setupansible-playbook setup.yml
- ویرایش فایل
- کلید SSH را برای گرههای Apigee در گره کنترل بارگذاری کنید:
scp -i CONTROL_SSH_PRIVATE_KEY_FILE APIGEE_NODE_SSH_PRIVATE_KEY_FILE admin@CONTROL_EXTERNAL_IP:/home/admin/.ssh/id_rsa
مکان:
- CONTROL_SSH_PRIVATE_KEY_FILE نام فایلی است که حاوی کلید خصوصی SSH گره کنترل شما است.
- APIGEE_NODE_SSH_PRIVATE_KEY_FILE نام فایلی است که حاوی کلید خصوصی SSH گره Apigee شما است.
- CONTROL_EXTERNAL_IP نشانی IP خارجی گره کنترل است.
- فایل پیکربندی فهرستگان Ansible را ایجاد کنید:
- محتوای فایل
apigee/scripts/ansible/prod.cfgرا در فایلprod.cfgکپی کنید:vi ~/.ansible/multi-planet-configurations/prod.cfg
- پوشه
edge-dc1را ایجاد کنید و محتوای فایلapigee/scripts/ansible/edge-dc1را در فایلedge-dc1کپی کنید:mkdir ~/.ansible/inventory/prodvi ~/.ansible/inventory/prod/edge-dc1
- محتوای فایل
- نشانیهای IP داخلی گرههای Apigee را در
edge-dc1بهروز کنید:apigee_000 ansible_host=APIGEE_NODE1_INTERNAL_IPapigee_001 ansible_host=APIGEE_NODE2_INTERNAL_IPapigee_002 ansible_host=APIGEE_NODE3_INTERNAL_IPapigee_003 ansible_host=APIGEE_NODE4_INTERNAL_IPapigee_004 ansible_host=APIGEE_NODE5_INTERNAL_IPدر اینجا مقادیر APIGEE_NODE*_INTERNAL_IP نشانیهای IP داخلی گرههای Apigee است که در مرحله قبلی بهدست آمده است.
- فایل
~/.apigee-secure/credentials.ymlرا با مقادیر زیر پیکربندی کنید:- apigee_repo_user: 'APIGEE_REPO_USER'
- apigee_repo_password: 'APIGEE_REPO_PASSWORD'
- opdk_qpid_mgmt_username: 'OPDK_QPID_MGMT_USERNAME'
- opdk_qpid_mgmt_password: «OPDK_QPID_MGMT_PASSWORD»
مکان:
- APIGEE_REPO_USER نام کاربری برای مخزن Apigee است.
- APIGEE_REPO_PASSWORD گذرواژه مخزن Apigee است.
- OPDK_QPID_MGMT_USERNAME نام کاربری سرور مدیریت Apigee QPID است.
- OPDK_QPID_MGMT_PASSWORD گذرواژه سرور مدیریت Apigee QPID است.
- فایل پروانهای با فایل پروانه Apigee Edge for Private Cloud معتبر اضافه کنید. نام فایل باید
license.txtباشد. - محتوای فایل
~/.apigee-secure/license.txtرا درlicense.txtکه بهتازگی ایجاد کردهاید کپی کنید. - مقادیر زیر را در فایل
~/.apigee/custom-properties.ymlپیکربندی کنید:- opdk_version: 'OPDK_VERSION'
- apigee_repo_url: 'APIGEE_REPO_URL'
مکان:
- OPDK_VERSION نسخه Apigee Edge for Private Cloud است که میخواهید نصب کنید.
- APIGEE_REPO_URL نشانی وب مخزن Apigee است.
- فایل پیکربندی را بهعنوان متغیر محیطی صادر کنید:
export ANSIBLE_CONFIG=~/.ansible/multi-planet-configurations/prod.cfg
- جایگزین کردن مخازن git راه دور با فایلهای محلی:
cd ~/apigee-repos/ansible-opdk-accelerator/installations/multi-node/sed -i 's/https:\/\/github.com\/carlosfrias/git+file:\/\/\/home\/admin\/apigee-repos/g' requirements.ymlsed -i 's/\.git$//g' requirements.yml - الزامات Ansible را نصب کنید:
ansible-galaxy install -r requirements.yml -f
- نقشهای Ansible را وصله کنید:
sed -i 's/private_address/inventory_hostname/g' ~/.ansible/roles/apigee-opdk-settings-cassandra/tasks/main.ymlsed -i 's/include/include_tasks/g' ~/.ansible/roles/apigee-opdk-server-self/tasks/main.ymlsed -i 's/include/include_tasks/g' ~/.ansible/roles/apigee-opdk-setup-silent-installation-config/tasks/main.ymlcat << EOF >> ~/.ansible/roles/apigee-opdk-setup-silent-installation-config/templates/response-file-template.conf.j2 QPID_MGMT_USERNAME= opdk_qpid_mgmt_username QPID_MGMT_PASSWORD= opdk_qpid_mgmt_password EOFsed -i 's/mode: 0700/mode: 0700\n recurse: yes/g' ~/.ansible/roles/apigee-opdk-setup-postgres-config/tasks/main.yml - محتوای فایل
install.ymlرا با محتوایapigee/scripts/ansible/install.ymlجایگزین کنید. - کتابچه نمایشی را برای نصب مؤلفههای Apigee اجرا کنید:
ansible-playbook install.yml
- پیوند بازنشانی گذرواژه کاربر را در واسط کاربر Edge غیرفعال کنید. Apigee on GDC air-gapped شامل سرور SMTP نمیشود. مراحل ذکرشده در غیرفعال کردن پیوند بازنشانی گذرواژه در واسط کاربر Edge را دنبال کنید.
- برای ایجاد نمونه Harbor در پروژه GDC
dev-apigee، دستورالعملهای ایجاد نمونههای ثبت Harbor را دنبال کنید. - برای ایجاد پروژه Harbor بهنام
apigee، دستورالعملهای ایجاد پروژههای Harbor را دنبال کنید. - برای راهاندازی کنترل دسترسی برای پروژه Harbor، دستورالعملهای پیکربندی کنترل دسترسی را دنبال کنید.
- برای پیکربندی اصالتسنجی Docker، دستورالعملهای وارد شدن به سیستم Docker و Helm را دنبال کنید.
- نشانیهای IP را در فایل
apigee/apigee_user_cluster.tomlهمانطور که نشان داده شده است بهروز کنید:mgmt-server-proxy = "APIGEE_NODE1_EXTERNAL_IP" router-proxy1 = "APIGEE_NODE2_EXTERNAL_IP" router-proxy2 = "APIGEE_NODE3_EXTERNAL_IP"
مکان:
- APIGEE_NODE1_EXTERNAL_IP نشانی IP خارجی گره Apigee1 است که در مرحله قبلی بهدست آمده است.
- APIGEE_NODE2_EXTERNAL_IP نشانی IP خارجی گره Apigee2 است که در مرحله قبلی بهدست آمده است.
- APIGEE_NODE3_EXTERNAL_IP نشانی IP خارجی گره Apigee3 است که در مرحله قبلی بهدست آمده است.
- فایل گواهینامه SSL (
server.crt) و فایل کلید (server.key) را برای پیکربندی HTTPS در پوشههایapigee/mgmt-server-proxyوapigee/router-proxyقرار دهید.برای تولید گواهیهای خودامضا، از فرمان زیر استفاده کنید:
openssl req -newkey rsa:4096 -x509 -nodes -keyout server.key -new -out server.crt -subj "/CN=*.apigeetest.com" -sha256 -days 365
- مقدار
SSH-PASSWORDرا برای کاربر ریشه در محتوی بارگذارنده در فایلapigee/uploader/Dockerfileبهروز کنید:RUN echo 'root:SSH_PASSWORD' | chpasswd
- اطلاعات اعتباری خوشه کاربر را دریافت کنید:
gdcloud clusters get-credentials USER_CLUSTER
که در آن USER_CLUSTER نام خوشه GKE کاربر است.
- دستورگان پیادهسازی را برای پیادهسازی واحدها و سرویسها اجرا کنید:
source venv/bin/activatepython apigee/solution_deploy_user_cluster.py gdc-air-gapped - نشانیهای IP خارجی سرویسها را دریافت کنید:
kubectl get svc -n $PROJECT_ID
- بهروزرسانی
SSH_PASSWORD،root، وUPLOADER_EXTERNAL_IPدرapigee/helm/scripts/backup_setup.sh:sshpass -p SSH_PASSWORD scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null apigee-backup* root@UPLOADER_EXTERNAL_IP:/temp/
مکان:
- SSH_PASSWORD گذرواژه کاربر ریشه است.
- UPLOADER_EXTERNAL_IP نشانی IP خارجی سرویس بارگذار است که در مرحله قبلی بهدست آمده است.
- بهروزرسانی
FLUENTBIT_EXTERNAL_IPدرapigee/helm/scripts/apigee_setup.sh:export FLUENTBIT_EXTERNAL_IP=FLUENTBIT_EXTERNAL_IP
- توقف ماشینهای مجازی:
gdcloud clusters get-credentials ORG_ADMIN_CLUSTERexport PROJECT=dev-apigeefor i in 1 2 3 4 5; do gdcloud compute instances stop node$i --project $PROJECT done - نمودار Helm را مجدداً مستقر کنید:
python apigee/solution_deploy.py gdc-air-gapped
- شروع ماشینهای مجازی:
for i in 1 2 3 4 5; do GDCloud compute instances start node$i --project $PROJECT done
- مقادیر زیر را در
apigee/scripts/apigee_org_setup.shهمانطور که نشان داده شده است بهروز کنید. پارامترهای دیگر را درصورت نیاز بهروزرسانی کنید.IP1=APIGEE_NODE1_INTERNAL_IP VHOST_ALIAS="APIGEE_NODE2_EXTERNAL_IP:9001 APIGEE_NODE3_EXTERNAL_IP:9001"
مکان:
- APIGEE_NODE1_INTERNAL_IP نشانی IP داخلی گره Apigee است که در مرحله قبلی بهدست آمده است.
- APIGEE_NODE2_EXTERNAL_IP نشانی IP خارجی گره Apigee2 است که در مرحله قبلی بهدست آمده است.
- APIGEE_NODE3_EXTERNAL_IP نشانی IP خارجی گره Apigee3 است که در مرحله قبلی بهدست آمده است.
- دستورگان را در node1 اجرا کنید تا سازمان را آماده کنید:
chmod a+x apigee_org_setup.sh./apigee_org_setup.sh - دریافت نشانی IP خارجی سرویس
apigee-elb:gdcloud clusters get-credentials USER_CLUSTERexport PROJECT=dev-apigeekubectl get svc apigee-elb -n $PROJECTکه در آن USER_CLUSTER نام خوشه GKE کاربر است.
این سرویس بهعنوان نقطه پایانی برای «واسط کاربر Edge»، Management API، و پراکسی API عمل میکند.
- APIGEE_ELB_EXTERNAL_IP نشانی IP خارجی سرویس
apigee-elbاست که در مرحله قبلی بهدست آمده است. - ORG_NAME نام سازمان Apigee است.
- ENV_NAME نام محیط Apigee است.
- به سیستم واسط کاربر Edge وارد شوید.
- در صفحه پراکسیهای API، روی ایجاد کلیک کنید تا پراکسی API جدیدی ایجاد کنید.
- در صفحه جزئیات پراکسی، مقادیر زیر را وارد کنید:
- نوع پراکسی: بدون هدف را انتخاب کنید.
- نام پراکسی:
ok - مسیر پایه:
/ok - هدف:
http://APIGEE_ELB_EXTERNAL_IP:9001
- برای ایجاد پراکسی API، روی ایجاد کلیک کنید.
- درخواست HTTP به
/okارسال کنید:curl -i http://APIGEE_ELB_EXTERNAL_IP:9001/ok
- تأیید کنید که پاسخ
200 OKاست. - مراحل ایجاد keystore/truststore و نام مستعار
را برای ایجاد گواهینامه خودامضا با مقادیر زیر دنبال کنید:
- KeyStore: myTestKeystore
- KeyAlias: myKeyAlias
- نام معمول: apigeetest.com
- برای ایجاد میزبان مجازی با نام
api.apigeetest.com، یک فراخوانی API انجام دهید:curl -v -H "Content-Type:application/xml" \ -u "opdk@apigee.com:Apigee123!" "http://APIGEE_ELB_EXTERNAL_IP:8080/v1/o/ORG_NAME/e//virtualhosts" \ -d '<VirtualHost name="secure"> <HostAliases> <HostAlias>api.apigeetest.com</HostAlias> </HostAliases> <Interfaces/> <Port>9005</Port> <OCSPStapling>off</OCSPStapling> <SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>false</ClientAuthEnabled> <KeyStore>myTestKeystore</KeyStore> <KeyAlias>myKeyAlias</KeyAlias> </SSLInfo> </VirtualHost>'
مکان:
- APIGEE_ELB_EXTERNAL_IP نشانی IP خارجی سرویس
apigee-elbاست که در مرحله قبلی بهدست آمده است. - ORG_NAME نام سازمان Apigee است.
- ENV_NAME نام محیط Apigee است که میزبان مجازی باید در آن ایجاد شود.
- APIGEE_ELB_EXTERNAL_IP نشانی IP خارجی سرویس
- بااستفاده از میزبان مجازی امن، پراکسی API ایجاد کنید.
- در مسیریابها، وضوح ساناد را برای میزبانهای مجازی پیکربندی کنید:
echo '127.0.0.1 api.apigeetest.com' | sudo tee -a /etc/hosts
- با ارسال درخواست HTTPS به نقطه پایانی، تأیید کنید که میزبانهای مجازی بهصورت محلی کار میکنند:
curl https://api.apigeetest.com:9005/ok -v -k
- پیکربندی تفکیک نام ساناد برای نقطه پایانی:
echo 'APIGEE_ELB_EXTERNAL_IP apigeetest.com' | sudo tee -a /etc/hosts
که در آن APIGEE_ELB_EXTERNAL_IP نشانی IP خارجی سرویس
apigee-elbاست که در مرحله قبلی بهدست آمده است. - در مرورگر وب به
https://apigeetest.com/okبروید و تأیید کنید که کار میکند. - فایل انبار کلید را از فایل گواهینامه SSL و فایل کلید تولید کنید:
openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -out keystore.pkcs12keytool -importkeystore -srckeystore keystore.pkcs12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype jks - فایل انبار کلید را در پوشه Apigee در node1 قرار دهید:
scp -i SSH_PRIVATE_KEY_FILE keystore.jks admin@APIGEE_NODE1_EXTERNAL_IP:/home/admin/
مکان:
- SSH_PRIVATE_KEY_FILE نام فایلی است که حاوی کلید خصوصی SSH گره Apigee شما است.
- APIGEE_NODE1_EXTERNAL_IP نشانی IP خارجی گره Apigee1 است که در مرحله قبلی بهدست آمده است.
- بااستفاده از SSH به node1 بروید و فایل انبار کلید را به پوشه Apigee منتقل کنید:
sudo mv keystore.jks /opt/apigee/customer/application/
- فایل پیکربندی SSL را ایجاد کنید:
sudo vi /tmp/sslConfigFile
- مقدار
KEY-PASS-PHRASEرا همانطور که نشان داده شده است بهروز کنید:HTTPSPORT=9443 DISABLE_HTTP=n KEY_ALGO=JKS KEY_FILE_PATH=/opt/apigee/customer/application/keystore.jks KEY_PASS=KEY_PASS_PHRASE
- پیکربندی SSL بااستفاده از فایل پیکربندی:
sudo chown apigee:apigee /tmp/sslConfigFile/opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f /tmp/sslConfigFile - پیکربندی تفکیک ساناد برای «واسط کاربر Edge»:
echo 'APIGEE_ELB_EXTERNAL_IP ui.apigeetest.com' | sudo tee -a /etc/hosts
که در آن APIGEE_ELB_EXTERNAL_IP نشانی IP خارجی سرویس
apigee-elbاست که در مرحله قبلی بهدست آمده است. - در مرورگر وب به
https://ui.apigeetest.com:9443دسترسی پیدا کنید و تأیید کنید که کار میکند. برای جزئیات بیشتر، به راهنما مراجعه کنید. - مالک فایل انبار کلید را پیکربندی کنید (از همان مالک «واسط کاربر Edge» استفاده کنید):
sudo chown apigee:apigee /opt/apigee/customer/application/keystore.jks
- فایل داراییها را ایجاد کنید:
sudo vi /opt/apigee/customer/application/management-server.properties
- برای اعمال تغییرات، سرور مدیریت را بازراهاندازی کنید:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- تأیید کنید که HTTPS بهصورت محلی کار میکند:
curl -u "opdk@apigee.com:Apigee123!" "https://localhost:8443/v1/users" -k
- از مشتری، در مرورگر به https://apigeetest.com:8443/v1/users دسترسی پیدا کنید. نام کاربری و گذرواژه سرپرست را وارد کنید تا تأیید کنید اطلاعات اعتباری بهدرستی پیکربندی شده است.
برای کسب اطلاعات بیشتر درباره اعطای نقشها و اجازههای GDC بدون اتصال به اینترنت، اعطای دسترسی و لغو آن را ببینید.
محدودیتها
محدودیتهای زیر برای Apigee در GDC air-gapped اعمال میشود:
دریافت فایلهای موردنیاز
برای دریافت فایلهای نصب، ابتدا باید گره متصلی را راهاندازی کنید و سپس فایلها را بارگیری کنید.
راهاندازی گره متصل
گره متصل یک ماشین مجازی واحد خارج از GDC است که از آن برای بارگیری فایلهای نصب استفاده میکنید. این ماشین مجازی به دسترسی به اینترنت نیاز دارد و فقط برای فرایند نصب استفاده میشود.
گره متصل به ظرفیت و پیکربندی زیر نیاز دارد:
برای ایجاد گره متصل، دستورالعملهای ایجاد و شروع نمونه ماشین مجازی را دنبال کنید. پساز ایجاد ماشین مجازی، دستورالعملهای اتصال به ماشینهای مجازی Linux را دنبال کنید. برای اتصال به ماشین مجازی. برای فهرست سیستمعاملهای پشتیبانیشده، سیستمعاملهای پشتیبانیشده GDC را ببینید.
بارگیری فایلهای نصب
برای بارگیری فایلهای نصب:
راهاندازی کردن مخزن ذخیرهسازی
در این مرحله، اپراتور GDC یک مخزن فضای ذخیرهسازی در پروژه GDC راهاندازی میکند تا فایلهای پشتیبان Apigee Edge for Private Cloud را در آن ذخیره کند.
ایجاد کردن مخزن ذخیرهسازی
برای ایجاد باکت فضای ذخیرهسازی در پروژه GDC:
پیکربندی دسترسی به سطل
برای پیکربندی دسترسی به سطل ذخیرهسازی:
راهاندازی گره مخزن
در این مرحله، اپراتور GDC یک گره مخزن را برای میزبانی مخزن آینهای Apigee Edge for Private Cloud راهاندازی میکند.
ایجاد گره مخزن
برای ایجاد گره مخزن:
پیکربندی دسترسی گره مخزن
برای پیکربندی دسترسی به گره مخزن:
بارگذاری فایلهای نصب
در این مرحله، کارگزار GDC جدیدترین نسخه فایلهای زیر را در گره مخزن بارگذاری میکند:
برای بارگذاری فایلهای نصب:
پیکربندی مخزن آینهای
برای پیکربندی مخزن آینهای:
مستقر کردن گرههای Apigee
در این مرحله، اپراتور GDC گرههای مدیریت Apigee API را مستقر میکند.
ایجاد گرههای Apigee
برای ایجاد گرههای مدیریت Apigee API:
پیکربندی دسترسی گره Apigee
دسترسی به گرههای مدیریت Apigee API را پیکربندی کنید:
راهاندازی گره کنترل
در این مرحله، اپراتور GDC یک گره کنترل برای مدیریت نصبهای Apigee راهاندازی میکند.
ایجاد گره کنترل
برای ایجاد گره کنترل:
پیکربندی دسترسی گره کنترل
برای پیکربندی دسترسی گره کنترل:
پیکربندی Ansible
در این مرحله، اپراتور GDC محیط را در گره کنترل راهاندازی میکند.
برای پیکربندی محیط Ansible:
نصب مؤلفههای Apigee
در این مرحله، عامل GDC مؤلفههای Apigee را بااستفاده از Ansible نصب میکند.
برای نصب عناصر Apigee:
پیادهسازی واحدها و سرویسها
در این مرحله، واحدهای بارگذار، پراکسی معکوس، ترازکننده بار، و گزارشگیری و سرویسها را مستقر میکنید.
برای استقرار غلافها و سرویسها:
بهروزرسانی IPهای بارگذارنده و انتقالدهنده Fluent Bit
در این مرحله، نشانیهای IP بارگذار و ارسالکننده Fluent Bit را در نسخه پشتیبان و نوشتارهای راهاندازی Apigee بهروزرسانی میکنید.
بهروزرسانی کردن دستورگان راهاندازی مستلزم بازراهاندازی گرههای Apigee است. برای بازراهاندازی گرهها:
سازمان Apigee را آماده کنید
در این مرحله، اپراتور GDC سازمان Apigee را با اجرای یک اسکریپت راهاندازی روی node1 آماده میکند.
برای آمادهسازی سازمان Apigee:
آزمایش اتصالپذیری HTTP
در این مرحله، اتصالپذیری HTTP را برای «میانای برنامهسازی کاربردی مدیریت» و پراکسی API آزمایش خواهید کرد.
برای آزمایش اتصالپذیری HTTP:
امتحان کردن Management API
برای آزمایش کردن Management API، درخواست HTTP را به نقطه پایان ارسال کنید:
curl -u "opdk@apigee.com:Apigee123!" "http://APIGEE_ELB_EXTERNAL_IP:8080/v1/o/ORG_NAME/e/ENV_NAME/provisioning/axstatus"
مکان:
آزمایش پراکسی میانای برنامهسازی کاربردی
برای آزمایش کردن پراکسی میانای برنامهسازی کاربردی:
پیکربندی «امنیت لایه انتقال» و آزمایش HTTPS
در این مرحله، اپراتور GDC «امنیت لایه انتقال» (TLS) را برای پراکسی API، «میانای کاربر Edge»، و «میانای برنامهسازی کاربردی مدیریت» پیکربندی میکند.
پیکربندی «امنیت لایه انتقال» برای پراکسی میانای برنامهسازی کاربردی
پیکربندی «امنیت لایه انتقال» برای «واسط کاربر Edge»
برای پیکربندی «امنیت لایه انتقال» برای «میانای کاربری Edge»:
پیکربندی «امنیت لایه انتقال» برای «میانای برنامهسازی کاربردی مدیریت»
برای پیکربندی «امنیت لایه انتقال» برای «میانای برنامهسازی کاربردی مدیریت»:
مقدار KEY_PASS_PHRASE را با گذرواژه انبار کلید جایگزین کنید، همانطور که نشان داده شده است:
conf_webserver_ssl.enabled=true # Leave conf_webserver_http.turn.off set to false # because many Edge internal calls use HTTP. conf_webserver_http.turn.off=false conf_webserver_ssl.port=8443 conf_webserver_keystore.path=/opt/apigee/customer/application/keystore.jks # Enter the obfuscated keystore password below. conf_webserver_keystore.password=KEY_PASS_PHRASE