این راهنما نحوه نصب و استقرار Apigee Edge را برای پراکسی های Cloud و API خصوصی در یک محیط Google Distributed Cloud (GDC) با شکاف هوا توضیح می دهد. پیشنهادات با شکاف هوای GDC ، از جمله Apigee Edge برای Private Cloud، برای مدیریت زیرساختها و خدمات نیازی به اتصال به Google Cloud ندارند. شما می توانید از یک هواپیمای کنترل محلی که در محل شما میزبانی شده است برای همه عملیات استفاده کنید. برای یک نمای کلی از GDC air-gapped، به نمای کلی مراجعه کنید.
این راهنما برای اپراتورهای Apigee در نظر گرفته شده است که با Apigee Edge for Private Cloud آشنا هستند و درک اولیه ای از Kubernetes دارند.
مروری بر مراحل مورد نیاز
برای نصب و استقرار Apigee Edge برای Private Cloud در محیط GDC دارای شکاف هوا، اپراتور باید مراحل زیر را انجام دهد:
- فایل های نصب Apigee Edge را برای Private Cloud دریافت کنید.
- یک سطل ذخیره سازی راه اندازی کنید.
- یک گره مخزن راه اندازی کنید.
- استقرار گره های Apigee
- یک گره کنترلی راه اندازی کنید.
- Ansible را پیکربندی کنید.
- کامپوننت های Apigee را نصب کنید.
- پادها و خدمات را مستقر کنید.
- IP های آپلود کننده و فلوئنت بیت فورواردر را به روز کنید.
- در سازمان Apigee.
- تست اتصال HTTP
- TLS را پیکربندی کنید و HTTPS را آزمایش کنید.
قبل از شروع
قبل از شروع مراحل نصب، مطمئن شوید که مراحل زیر را انجام داده اید:
- اگر قبلاً ندارید، یک پروژه GDC برای استفاده برای نصب ایجاد کنید. برای اطلاعات بیشتر، به ایجاد پروژه مراجعه کنید.
-
gdcloud
CLI را در یک ایستگاه کاری متصل به GDC یا در محیط استقرار مداوم سازمان خود دانلود، نصب و پیکربندی کنید . - اعتبار مورد نیاز برای استفاده از
gdcloud
CLI وkubectl
API را دریافت کنید. برای دسترسی به مراحل مورد نیاز، به تأیید اعتبار حساب خود مراجعه کنید. - نام کاربری و رمز عبور Apigee را که از مدیر حساب Apigee خود دریافت کرده اید را تأیید کنید.
- نام خوشه مدیریت GKE و نام خوشه کاربری GKE خود را تأیید کنید.
ظرفیت مورد نیاز
نصب Apigee Edge برای Private Cloud در GDC به چندین ماشین مجازی (VM) با تخصیص منابع خاص نیاز دارد. این ماشینهای مجازی بر اساس منابع محاسباتی (رم، هستههای vCPU) و ذخیرهسازی دیسک محلی، هزینههایی را متحمل میشوند. برای اطلاعات بیشتر، قیمت را ببینید.
جدول زیر منابع مورد نیاز برای هر VM را نشان می دهد:
نوع VM | RAM | هسته های vCPU | ذخیره سازی دیسک |
---|---|---|---|
گره رپو | 8 گیگابایت | هسته های 2-vCPU | 64 گیگابایت |
گره کنترل | 8 گیگابایت | هسته های 2-vCPU | 64 گیگابایت |
گره های مدیریت API Apigee 1، 2 و 3 | 16 گیگابایت رم | هسته های 8-vCPU | 670 گیگابایت |
گره های مدیریت Apigee API 4 و 5 | 16 گیگابایت رم | هسته های 8-vCPU | 500 گیگابایت - 1 ترابایت |
نقش ها و مجوزها
نقش ها و مجوزهای زیر برای استقرار Apigee Edge برای Private Cloud در یک محیط GDC دارای شکاف هوا مورد نیاز است:
- مدیر پلتفرم (PA): نقش
IAM Admin
را تعیین کنید. - اپراتور برنامه (AO): نقش های زیر را اختصاص دهید:
-
Harbor Instance Admin
: دسترسی کامل به مدیریت نمونه های بندر در یک پروژه دارد. -
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 در GDC air-gapped با سرورهای DNS ارائه نمی شود و از وضوح DNS محلی به عنوان راه حل استفاده می کند. اگر Apigee در GDC air-gapped در محیطی با سرورهای DNS خارجی مستقر است، مراحل پیکربندی DNS محلی را با پیکربندی ورودیهای DNS در سرورهای DNS جایگزین کنید.
- Apigee در GDC air-gapped یک سرور SMTP مستقل را شامل نمی شود. میتوانید در هر زمان یک سرور SMTP را پیکربندی کنید تا اعلانهای ایمیل خروجی برای ایجاد حساب و بازنشانی رمز عبور از مدیریت سرور و رابط مدیریتی فعال شود. APIهای مدیریت برای مدیریت حساب کاربری Apigee در دسترس هستند. برای اطلاعات بیشتر به پیکربندی سرور SMTP Edge مراجعه کنید.
- Apigee در GDC air-gapped تشخیص و پیشگیری از نفوذ را اجرا نمی کند. یک سیستم پیشگیری از نفوذ (IPS) مانند Snort را برای شناسایی و جلوگیری از فعالیت های مخرب نصب و پیکربندی کنید.
- سیستم عامل: Rocky Linux 8
- اندازه دستگاه: 8 گیگابایت رم؛ هسته های 2-vCPU؛ 64 گیگابایت فضای ذخیره سازی دیسک محلی
- قابلیت اتصال:
- ورودی: TCP 22 (SSH)
- خروجی: اینترنت
- همانطور که در ستون Edge for Private Cloud ذکر شده است، یادداشتهای انتشار Apigee Edge برای آخرین نسخه رسمی که برای GDC پشتیبانی میشود، بررسی کنید.
- فایل راه اندازی 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 برای Private Cloud برای استفاده در GDC است که قصد نصب آن را دارید، به عنوان مثال، 4.53.01 .
- آخرین فایل Apigee Edge را برای 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 برای 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 برای 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-files
cd apigee-files
for 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_CERT
gdcloud clusters get-credentials ORG_ADMIN_CLUSTER
کجا:
- WEB_TLS_CERT مسیر گواهی وب TLS است.
- ORG_ADMIN_CLUSTER نام خوشه GKE مدیر سازمان است.
- متغیرهای محیط پروژه و سطل را تنظیم کنید:
export PROJECT=PROJECT
export BUCKET=BUCKET_NAME
کجا:
- PROJECT نام پروژه GDC شما است.
- BUCKET_NAME نام سطلی است که میخواهید برای ذخیره فایلهای پشتیبان Apigee Edge برای 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
این پیکربندی یک سطل با دوره نگهداری 30 روز ایجاد می کند.
- ایجاد یک حساب سرویس در پروژه:
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 مدیر سازمان است.
- ایجاد یک محیط مجازی پایتون:
python3 -m venv venv / source venv/bin/activate
- اسکریپت deploy را برای ایجاد گره مخزن اجرا کنید:
python apigee/solution_deploy.py gdc-air-gapped
- SSH را برای گره مخزن پیکربندی کنید:
export NODE=repo
kubectl 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.01
-
apigee-nginx.tar
-
postgresql14.tar
-
fluentbit.tar
-
ansible-rpms.tar
-
apigee-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 خارجی گره مخزن است که در مرحله قبل به دست آمد.
- پوشه حاوی پیکربندی های فلوئنت بیت را در گره مخزن آپلود کنید:
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.sh
curl http://REPO_USER:REPO_PASSWORD@REPO_INTERNAL_IP:3939/apigee/release/VERSION/repodata/repomd.xml
VERSION با Apigee Edge برای Private Cloud که می خواهید نصب کنید جایگزین کنید.
-
REPO_INTERNAL_IP
،REPO_USER_NAME
، وREPO_PASSWORD
را درapigee/helm/scripts/apigee_setup.sh
با مقادیر دلخواه جایگزین کنید. - مقادیر را به عنوان متغیرهای محیطی صادر کنید:
export REPO_IP=REPO_INTERNAL_IP
export REPO_USER=REPO_USER_NAME
export REPO_PASSWORD=REPO_PASSWORD
- مطابق شکل،
apigee_node
درapigee/helm/values-cookie-air-gapped.yaml
فعال کنید::apigee_node: enabled: true
- اسکریپت deploy را برای ایجاد گره های Apigee اجرا کنید:
source venv/bin/activate
python 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
- اسکریپت deploy را برای ایجاد گره کنترل اجرا کنید:
source venv/bin/activate
python apigee/solution_deploy.py gdc-air-gapped
- پیکربندی دسترسی SSH به گره کنترل:
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/admin
cp -r /tmp/apigee-repos .
cd apigee-repos/ansible-opdk-accelerator/setup
- مخازن گیت راه دور را با فایل محلی جایگزین کنید:
sed -i 's/https:\/\/github.com\/carlosfrias/git+file:\/\/\/home\/admin\/apigee-repos/g' requirements.yml
sed -i 's/\.git$//g' requirements.yml
- Install Ansible requirements:
sudo chown -R admin /home/admin/apigee-repos
ansible-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 مخازن پیکربندی
- تسویه حساب HTTPS مخازن پیکربندی
- برنامه راه اندازی را اجرا کنید:
cd ~/apigee-repos/ansible-opdk-accelerator/setup
ansible-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/prod
vi ~/.ansible/inventory/prod/edge-dc1
- محتوای فایل
- آدرس های IP داخلی گره های Apigee را در
edge-dc1
به روز کنید:apigee_000 ansible_host=APIGEE_NODE1_INTERNAL_IP
apigee_001 ansible_host=APIGEE_NODE2_INTERNAL_IP
apigee_002 ansible_host=APIGEE_NODE3_INTERNAL_IP
apigee_003 ansible_host=APIGEE_NODE4_INTERNAL_IP
apigee_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 برای 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 برای Private Cloud است که می خواهید نصب کنید.
- APIGEE_REPO_URL نشانی اینترنتی مخزن Apigee است.
- فایل پیکربندی را به عنوان یک متغیر محیطی صادر کنید:
export ANSIBLE_CONFIG=~/.ansible/multi-planet-configurations/prod.cfg
- مخازن گیت راه دور را با فایل های محلی جایگزین کنید:
cd ~/apigee-repos/ansible-opdk-accelerator/installations/multi-node/
sed -i 's/https:\/\/github.com\/carlosfrias/git+file:\/\/\/home\/admin\/apigee-repos/g' requirements.yml
sed -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.yml
sed -i 's/include/include_tasks/g' ~/.ansible/roles/apigee-opdk-server-self/tasks/main.yml
sed -i 's/include/include_tasks/g' ~/.ansible/roles/apigee-opdk-setup-silent-installation-config/tasks/main.yml
cat << 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 EOF
sed -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، playbook را اجرا کنید:
ansible-playbook install.yml
- پیوند بازنشانی رمز عبور کاربر را در رابط کاربری Edge غیرفعال کنید. Apigee در GDC air-gapped شامل سرور SMTP نیست. مراحل را در غیرفعال کردن پیوند بازنشانی رمز عبور در رابط کاربری Edge دنبال کنید.
- دستورالعملهای موجود در Create Harbor Registry Instances را دنبال کنید تا یک نمونه Harbor در پروژه GDC
dev-apigee
ایجاد کنید. - برای ایجاد پروژه بندرگاه به نام
apigee
، دستورالعملهای موجود در پروژههای ایجاد بندرگاه را دنبال کنید. - دستورالعمل های موجود در پیکربندی کنترل دسترسی را برای تنظیم کنترل دسترسی برای پروژه هاربر دنبال کنید.
- دستورالعمل های Sign into Docker and Helm را برای پیکربندی احراز هویت Docker دنبال کنید.
- آدرس های 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 خارجی Apigee node1 است که در مرحله قبل به دست آمده است.
- APIGEE_NODE2_EXTERNAL_IP آدرس IP خارجی Apigee node2 است که در مرحله قبلی بدست آمده است.
- APIGEE_NODE3_EXTERNAL_IP آدرس IP خارجی Apigee node3 است که در مرحله قبلی بدست آمده است.
- فایل گواهی 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 است.
- اسکریپت deploy را برای استقرار پادها و سرویس ها اجرا کنید:
source venv/bin/activate
python 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
- VM ها را متوقف کنید:
gdcloud clusters get-credentials ORG_ADMIN_CLUSTER
export PROJECT=dev-apigee
for i in 1 2 3 4 5; do gdcloud compute instances stop node$i --project $PROJECT done
- باز استقرار نمودار هلم:
python apigee/solution_deploy.py gdc-air-gapped
- VM ها را راه اندازی کنید:
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 node1 است که در مرحله قبلی به دست آمده است.
- APIGEE_NODE2_EXTERNAL_IP آدرس IP خارجی Apigee node2 است که در مرحله قبلی بدست آمده است.
- APIGEE_NODE3_EXTERNAL_IP آدرس IP خارجی Apigee node3 است که در مرحله قبلی بدست آمده است.
- اسکریپت را روی node1 اجرا کنید تا در سازمان حضور داشته باشید:
chmod a+x apigee_org_setup.sh
./apigee_org_setup.sh
- آدرس IP خارجی سرویس
apigee-elb
را دریافت کنید:gdcloud clusters get-credentials USER_CLUSTER
export PROJECT=dev-apigee
kubectl get svc apigee-elb -n $PROJECT
جایی که USER_CLUSTER نام خوشه کاربر GKE است.
این سرویس به عنوان نقطه پایانی برای Edge UI، مدیریت API و پروکسی API عمل می کند.
- APIGEE_ELB_EXTERNAL_IP آدرس IP خارجی سرویس
apigee-elb
است که در مرحله قبلی به دست آمده است. - ORG_NAME نام سازمان Apigee است.
- ENV_NAME نام محیط Apigee است.
- وارد رابط کاربری Edge شوید.
- در صفحه API Proxies ، روی Create کلیک کنید تا یک پروکسی API جدید ایجاد کنید.
- در صفحه جزئیات پروکسی ، مقادیر زیر را وارد کنید:
- نوع پروکسی: بدون هدف را انتخاب کنید.
- نام پروکسی:
ok
- مسیر پایه:
/ok
- هدف:
http:// APIGEE_ELB_EXTERNAL_IP :9001
- برای ایجاد پروکسی API روی Create کلیک کنید.
- یک درخواست HTTP به
/ok
ارسال کنید:curl -i http://APIGEE_ELB_EXTERNAL_IP:9001/ok
- تأیید کنید که پاسخ
200 OK
است. - برای ایجاد یک گواهی خودامضا با مقادیر زیر، مراحل موجود در Create a keystore/truststore و نام مستعار را دنبال کنید:
- فروشگاه کلید: 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 ایجاد کنید.
- در روترها، وضوح DNS را برای میزبان های مجازی پیکربندی کنید:
echo '127.0.0.1 api.apigeetest.com' | sudo tee -a /etc/hosts
- با ارسال یک درخواست HTTPS به نقطه پایانی، تأیید کنید که میزبان های مجازی به صورت محلی کار می کنند:
curl https://api.apigeetest.com:9005/ok -v -k
- وضوح DNS را برای نقطه پایانی پیکربندی کنید:
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.pkcs12
keytool -importkeystore -srckeystore keystore.pkcs12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype jks
- فایل keystore را در پوشه 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 خارجی Apigee node1 است که در مرحله قبل به دست آمده است.
- SSH به node1 و فایل keystore را به پوشه 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
- وضوح DNS را برای رابط کاربری 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
دسترسی پیدا کنید و کارکرد آن را تأیید کنید. برای جزئیات بیشتر، به راهنما مراجعه کنید. - مالک را برای فایل keystore پیکربندی کنید (از همان فایل Edge UI استفاده کنید):
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 اعمال می شود:
فایل های مورد نیاز را دریافت کنید
برای دریافت فایل های نصب، ابتدا باید یک گره متصل را راه اندازی کنید و سپس فایل ها را دانلود کنید.
یک گره متصل را راه اندازی کنید
گره متصل یک VM منفرد خارج از GDC است که برای دانلود فایل های نصب استفاده می کنید. این ماشین مجازی نیاز به دسترسی به اینترنت دارد و فقط برای مراحل نصب استفاده می شود.
گره متصل به ظرفیت و پیکربندی زیر نیاز دارد:
برای ایجاد گره متصل، دستورالعملهای موجود در Create را دنبال کنید و یک نمونه VM را شروع کنید . پس از ایجاد VM، دستورالعمل های اتصال به ماشین های مجازی لینوکس را دنبال کنید. برای اتصال به VM برای لیستی از سیستم عامل های پشتیبانی شده GDC را ببینید.
فایل های نصب را دانلود کنید
برای دانلود فایل های نصب:
سطل ذخیره سازی را تنظیم کنید
در این مرحله، اپراتور GDC یک سطل ذخیره سازی در پروژه GDC برای ذخیره فایل های پشتیبان Apigee Edge برای Private Cloud راه اندازی می کند.
یک سطل ذخیره سازی ایجاد کنید
برای ایجاد یک سطل ذخیره سازی در پروژه GDC:
دسترسی سطلی را پیکربندی کنید
برای پیکربندی دسترسی به سطل ذخیره سازی:
گره مخزن را راه اندازی کنید
در این مرحله، اپراتور GDC یک گره مخزن را برای میزبانی Apigee Edge for Private Cloud mirror تنظیم می کند.
یک گره مخزن ایجاد کنید
برای ایجاد یک گره مخزن:
دسترسی به گره مخزن را پیکربندی کنید
برای پیکربندی دسترسی به گره مخزن:
فایل های نصب را آپلود کنید
در این مرحله، اپراتور GDC آخرین نسخه فایل های زیر را در گره مخزن آپلود می کند:
برای آپلود فایل های نصب:
مخزن آینه را پیکربندی کنید
برای پیکربندی مخزن آینه:
استقرار گره های Apigee
در این مرحله، اپراتور GDC گره های مدیریتی Apigee API را مستقر می کند.
گره های Apigee ایجاد کنید
برای ایجاد گره های مدیریت Apigee API:
دسترسی به گره Apigee را پیکربندی کنید
دسترسی به گره های مدیریت Apigee API را پیکربندی کنید:
گره کنترل را تنظیم کنید
در این مرحله، اپراتور GDC یک گره کنترلی را برای مدیریت نصب های Apigee راه اندازی می کند.
یک گره کنترلی ایجاد کنید
برای ایجاد یک گره کنترل:
دسترسی به گره کنترل را پیکربندی کنید
برای پیکربندی دسترسی گره کنترل:
Ansible را پیکربندی کنید
در این مرحله اپراتور GDC تنظیم می کند محیط روی گره کنترل
برای پیکربندی محیط Ansible:
کامپوننت های Apigee را نصب کنید
در این مرحله اپراتور GDC کامپوننت های Apigee را با استفاده از Ansible نصب می کند.
برای نصب کامپوننت های Apigee:
پادها و خدمات را مستقر کنید
در این مرحله، آپلودکننده، پروکسی معکوس، متعادل کننده بار، و غلاف ها و سرویس های گزارش را مستقر خواهید کرد.
برای استقرار پادها و خدمات:
آی پی های آپلود کننده و فلوئنت بیت فورواردر را به روز کنید
در این مرحله، آیپیهای ارسالکننده و Fluent Bit Forwarder را در اسکریپتهای راهاندازی پشتیبان و Apigee بهروزرسانی میکنید.
به روز رسانی اسکریپت راه اندازی نیاز به راه اندازی مجدد گره های Apigee دارد. برای راه اندازی مجدد گره ها:
در سازمان Apigee
در این مرحله، اپراتور GDC با اجرای یک اسکریپت راهاندازی در node1 ، سازمان Apigee را نصب میکند.
برای حضور در سازمان Apigee:
تست اتصال HTTP
در این مرحله، اتصال HTTP را برای مدیریت API و پروکسی API آزمایش خواهید کرد.
برای تست اتصال HTTP:
مدیریت API را تست کنید
برای آزمایش مدیریت API، یک درخواست HTTP به نقطه پایانی ارسال کنید:
curl -u "opdk@apigee.com:Apigee123!" "http://APIGEE_ELB_EXTERNAL_IP:8080/v1/o/ORG_NAME/e/ENV_NAME/provisioning/axstatus"
کجا:
پروکسی API را تست کنید
برای آزمایش پروکسی API:
TLS را پیکربندی کنید و HTTPS را آزمایش کنید
در این مرحله، اپراتور GDC امنیت لایه حمل و نقل (TLS) را برای پراکسی API، Edge UI و Management API پیکربندی می کند.
TLS را برای پراکسی API پیکربندی کنید
TLS را برای رابط کاربری Edge پیکربندی کنید
برای پیکربندی TLS برای رابط کاربری Edge:
TLS را برای مدیریت API پیکربندی کنید
برای پیکربندی TLS برای مدیریت API:
همانطور که نشان داده شده است، مقدار KEY_PASS_PHRASE
را با رمز عبور keystore جایگزین کنید:
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