server server .

server

نحوه تهيه نسخه پشتيبان و بازيابي يك خوشه Kubernetes در vpsgol با استفاده از Velero

مقدمه
Velero يك ابزار پشتيبان مناسب براي خوشه هاي Kubernetes است كه موارد Kubernetes را براي ذخيره سازي مورد به مورد، فشرده سازي و پشتيبان گيري مي كند. همچنين با استفاده از ويژگي هاي اسنپ شات ذخيره سازي واحد ارائه دهنده cloud ، عكس هايي از واليوم هاي مداوم خوشه شما مي گيرد و مي تواند موارد و واليوم هاي ماندگار خوشه را به حالت قبلي بازگرداند.
افزونه vpsgol Velero به شما امكان مي دهد تا از حافظه بلوك vpsgol استفاده كنيد تا از واليوم هاي ماندگار اسنپ شات بگيريد و فضايي به شما ميدهد تا از موارد Kubernetes بك آپ تهيه كنيد. در هنگام اجراي يك خوشه Kubernetes در vpsgol ، اين به شما امكان مي دهد تا به سرعت از وضعيت خوشه خود نسخه پشتيبان تهيه كرده و در صورت بروز مشكل بازيابي كنيد.
در اين آموزش ابزار خط فرمان velero را روي يك دستگاه محلي تنظيم و پيكربندي مي كنيم و مؤلفه سرور مجازي را در خوشه Kubernetes خود مستقر مي كنيم. سپس يك نمونه از برنامه Nginx را استفاده مي كنيم كه از يك واليوم پايدار براي ورود به سيستم استفاده مي كند و سپس يك سناريوي بازيابي مشكل را شبيه سازي مي كند.
پيش نيازها
قبل از شروع اين آموزش ، موارد زير را بايد در اختيار داشته باشيد:
در رايانه محلي خود:
⦁ ابزار خط فرمان kubectl ، پيكربندي شده بايد تا به خوشه شما متصل شود. مي توانيد اطلاعات بيشتري در مورد نصب و پيكربندي ر در مطالب Kubernetes بخوانيد.
⦁ ابزار خط فرمان gitكه مي توانيد نحوه نصب git را در شروع با Git بياموزيد.
در حساب vpsgol خود:
⦁ يك خوشه vpsgol Kubernetes يا يك خوشه Kubernetes (نسخه 1.7.5 يا بالاتر) در دراپلت هاي vpsgol.
⦁ سرور DNS كه در داخل خوشه شما قرار دارد. اگر از vpsgol Kubernetes استفاده مي كنيد ، اين به طور پيش فرض اجرا مي شود. براي كسب اطلاعات بيشتر در مورد پيكربندي يك سرويس DNS Kubernetes ، از ⦁ Customizing DNS Service در مطالب رسمي Kuberentes كمك بگيريد.
⦁ فضاي vpsgol كه موارد پشتيبان گرفته شده Kubernetes شما را ذخيره مي كند. براي يادگيري نحوه ايجاد يك فضا ، از  ⦁ the Spaces product documentation كمك بگيريد.
⦁ يك جفت كليد دسترسي براي vpsgol Space. براي يادگيري نحوه ايجاد مجموعه اي از كليدهاي دستيابي ، از ⦁ How to Manage Administrative Access to Spaces كمك بگيريد.
⦁ يك نشانه دسترسي شخصي براي استفاده با vpsgol API. براي يادگيري نحوه ايجاد يك نشانه دسترسي شخصي ، از ⦁ How to Manage Administrative Access to Spaces كمك بگيريد. اطمينان حاصل كنيد كه توكن ايجاد شده يا استفاده شده از مجوزهاي خواندن / نوشتن و يا اسنپ شات استفاده نميكند.
پس از تنظيم همه اين موارد ، آماده شروع كار با اين راهنما هستيد.

مرحله 1 – نصب مشتري Velero
ابزار پشتيبان گيري Velero شامل يك مشتري نصب شده بر روي رايانه محلي شما و يك سرور مجازي است كه در خوشه Kubernetes شما اجرا مي شود. براي شروع ، مشتري محلي Velero را نصب خواهيم كرد.
در مرورگر وب خود ، به صفحه منتشر شده repo Velero GitHub برويد ، نسخه مربوط به سيستم عامل و معماري سيستم خود را پيدا كنيد و آدرس پيوند را كپي كنيد. براي اهداف اين راهنما ، ما از يك سرور مجازي اوبونتو 18.04 در يك پردازنده x86-64 (يا AMD64) به عنوان دستگاه محلي خود و نسخه Velero v1.2.0 استفاده خواهيم كرد.
توجه: براي دنبال كردن اين راهنما ، بايد v1.2.0 از مشتري Velero را دانلود و نصب كنيد.
سپس ، از خط فرمان روي رايانه محلي خود ، به دايركتوري موقت / tmp برويد و cd را در آن قرار دهيد:
$cd / tmp
از wget و پيوندي كه قبلاً كپي كرده ايد براي دانلود تاربال نسخه استفاده كنيد:
$wget https: // link_copied_from_release_page
پس از اتمام دانلود ، تاربال را با استفاده از tar اكستركت كنيد (توجه داشته باشيد كه نام فايل بسته به نسخه منتشر شده و سيستم عامل شما ممكن است متفاوت باشد):
$tar -xvzf velero-v1.2.0-linux-amd64.tar.gz
ديركتوري / tmp اكنون بايد ديركتوري اكستركت شده velero-v1.2.0-linux-amd64 و همچنين تاربلي كه اخيراً دانلود كرده ايد ، را شامل شود.
تأييد كنيد كه مي توانيد مشتري velero را با اجراي باينري راه اندازي كنيد:
$./velero-v1.2.0-linux-amd64/velero help
شما بايد خروجي راهنمايي زير را مشاهده كنيد:
Output
Velero is a tool for managing disaster recovery, specifically for Kubernetes
cluster resources. It provides a simple, configurable, and operationally robust
way to back up your application state and associated data.

If you’re familiar with kubectl, Velero supports a similar model, allowing you to
execute commands such as ‘velero get backup’ and ‘velero create schedule’. The same
operations can also be performed as ‘velero backup get’ and ‘velero schedule create’.

Uغير مجاز مي باشدe:
velero [command]

Available Commands:
backup Work with backups
backup-location Work with backup storage locations
bug Report a Velero bug
client Velero client related commands
completion Output shell completion code for the specified shell (bash or zsh)
create Create velero resources
delete Delete velero resources
describe Describe velero resources
get Get velero resources
help Help about any command
install Install Velero
plugin Work with plugins
restic Work with restic
restore Work with restores
schedule Work with schedules
snapshot-location Work with snapshot locations
version Print the velero version and associated image
. . .

در اين مرحله بايد velero  قابل اجرا را از ديركتوري موقت tmp  خارج كنيد و آن را به PATH اضافه كنيد. براي افزودن آن به PATH روي يك سيستم اوبونتو كافيست آن را در /usr/local/bin كپي كنيد:
$sudo mv velero-v1.2.0-linux-amd64/velero /usr/local/bin/velero
مرحله 2 – پيكربندي اطلاعات سري
قبل از تنظيم مؤلفه سرور مجازي Velero ، بايد كليدهاي vpsgol Spaces و نشانه هاي API خود را آماده كنيد. مجدداً با استفاده از دستور cd به ديركتوري موقت / tmp برويد:
$ cd / tmp
اكنون يك نسخه از افزونه Velero را براي vpsgol دانلود خواهيم كرد. به صفحه انتشار نسخه هاي Github افزونه برويد و پيوندهايي كه به.tar.gz ختم ميشوند را كپي كنيد.
از wget و پيوندي كه قبلاً كپي كرده ايد براي دانلود تاربال نسخه استفاده كنيد:
$wget https: // link_copied_from_release_page
پس از اتمام دانلود ، تاربل را با استفاده از tar اكستركت كنيد (دوباره توجه داشته باشيد كه نام فايل بسته به نسخه منتشر شده ممكن است متفاوت باشد):
$tar -xvzf v1.0.0.tar.gz
ديركتوري / tmp اكنون بايد پوشه velero-plugin-1.0.0 اكستركت شده و همچنين تاربل كه اخيراً دانلود كرده ايد ، را شامل شود.
سپس cd را در دايركتوري velero-plugin-1.0.0 وارد ميكنيم:
$ cd velero-plugin-1.0.0
اكنون مي توانيم كليدهاي دسترسي را براي vpsgol Space و نشانه API براي استفاده به عنوان Kubernetes Secret ذخيره كنيم. ابتدا با استفاده از ويرايشگر مورد علاقه خود ، فايل examples/cloud-credentials را باز كنيد.
⦁ $ nano examples/cloud-credential
پرونده به شرح زير خواهد بود:
/tmp/velero-plugin-1.0.0/examples/cloud-credentials
[default]
aws_access_key_id=
aws_secret_access_key=

براي استفاده از كليدهاي vpsgol Spaces ، “متغيرهاي” و را ويرايش كنيد. حتماً كاراكترهاي < و > را حذف كنيد.
مرحله بعدي ويرايش فايل 01-velero-secret.patch.yaml است به گونه اي كه شامل نشانه API vpsgol شما باشد. پرونده را در ويرايشگر مورد علاقه خود باز كنيد:

⦁ $ nano examples/01-velero-secret.patch.yaml

مي بايست شبيه به اين باشه:

apiVersion: v1
kind: Secret
stringData:
vpsgol_token:
type: Opaque

براي استفاده از ، كل مكان نگهدار را تغيير دهيد. خط بايد چيزي شبيه به vpsgol_token: 18a0d730c0e0…. باشد: باز هم ، حتماً كاراكترهاي < و > را حذف كنيد.
مرحله 3 – نصب سرور مجازي Velero
نصب Velero شامل تعدادي از موارد Kubernetes است كه همگي براي ايجاد ، برنامه ريزي و مديريت پشتيبان گيري با هم كار مي كنند. velero قابل اجرا كه به تازگي دانلود كرده ايد مي تواند اين موارد را براي شما توليد و نصب كند. دستور نصب velero مراحل آماده سازي اوليه را انجام مي دهد تا براي خوشه شما پشتيبان تهيه شود. به طور خاص:
⦁ يك نام فضا velero ايجاد ميكند.
⦁ حساب سرويس velero را اضافه ميكند.
⦁ قوانين كنترل دسترسي مبتني بر نقش (RBAC) را براي اعطاي مجوز به حساب سرويس velero پيكربندي ميكند.
⦁ تعريف منابع اختصاصي (CRD) را براي منابع خاص Velero نصب ميكند: پشتيبان گيري ، برنامه ريزي، بازيابي ، پيكربندي.
⦁ پلاگين هاي Velero را براي مديريت اسنپ شات و فضاي ذخيره سازي ثبت ميكند.
دستور velero install را با چند گزينه تنظيمات غير پيش فرض اجرا خواهيم كرد. به طور خاص ، شما نياز به ويرايش هر يك از تنظيمات زير در فراخواني واقعي فرمان براي مطابقت با پيكربندي Spaces داريد:
– backup velero-backup: مقدار velero-backups را تغيير دهيد تا با نام فضاي vpsgol Space شما مطابقت داشته باشد. به عنوان مثال اگر فضاي خود را ” backup-bucket ” ناميديد ، اين گزينه به اين شكل است: –bucket backup-bucket
–backup-location-config s3Url=https://nyc3.vpsgolspaces.com,region=nyc3 : URL و منطقه را تغيير دهيد تا مطابق با تنظيمات فضاي شما باشد. به طور خاص ، هر دو بخش nyc3 را ويرايش كنيد تا با منطقه اي كه فضاي شما در آن ميزبان است مطابقت داشته باشد. به عنوان مثال ، اگر فضاي شما در منطقه fra1 ميزباني شود ، اين خط به اين صورت است: –backup-location-config s3Url=https://fra1.vpsgolspaces.com,region=fra1 region=fra1.
شناسه هاي منطقه عبارتند از: nyc3 ، sfo2 ، sgp1 و fra1.
پس از آماده شدن با تنظيمات مناسب مكان bucket و backup ، وقت آن است كه Velero را نصب كنيد. دستور زير را اجرا كنيد ، و در صورت لزوم مقادير خود را جايگزين كنيد:

$velero install
$  –provider velero.io/aws
$ –backup velero backup
$ –plugins velero/velero-plugin-for-aws:v1.0.0,vpsgol/velero-plugin:v1.0.0
$ –backup-location-config s3Url=https://nyc3.vpsgolspaces.com,region=nyc3
$ –use-volume-snapshots=false
$ –secret-file=./examples/cloud-credentials
بايد خروجي زير را مشاهده كنيد:
Output
CustomResourceDefinition/backups.velero.io: attempting to create resource
CustomResourceDefinition/backups.velero.io: created
CustomResourceDefinition/backupstoragelocations.velero.io: attempting to create resource
CustomResourceDefinition/backupstoragelocations.velero.io: created
CustomResourceDefinition/deletebackuprequests.velero.io: attempting to create resource
CustomResourceDefinition/deletebackuprequests.velero.io: created
CustomResourceDefinition/downloadrequests.velero.io: attempting to create resource
CustomResourceDefinition/downloadrequests.velero.io: created
CustomResourceDefinition/podvolumebackups.velero.io: attempting to create resource
CustomResourceDefinition/podvolumebackups.velero.io: created
CustomResourceDefinition/podvolumerestores.velero.io: attempting to create resource
CustomResourceDefinition/podvolumerestores.velero.io: created
CustomResourceDefinition/resticrepositories.velero.io: attempting to create resource
CustomResourceDefinition/resticrepositories.velero.io: created
CustomResourceDefinition/restores.velero.io: attempting to create resource
CustomResourceDefinition/restores.velero.io: created
CustomResourceDefinition/schedules.velero.io: attempting to create resource
CustomResourceDefinition/schedules.velero.io: created
CustomResourceDefinition/serverstatusrequests.velero.io: attempting to create resource
CustomResourceDefinition/serverstatusrequests.velero.io: created
CustomResourceDefinition/volumesnapshotlocations.velero.io: attempting to create resource
CustomResourceDefinition/volumesnapshotlocations.velero.io: created
Waiting for resources to be ready in cluster…
Namespace/velero: attempting to create resource
Namespace/velero: created
ClusterRoleBinding/velero: attempting to create resource
ClusterRoleBinding/velero: created
ServiceAccount/velero: attempting to create resource
ServiceAccount/velero: created
Secret/cloud-credentials: attempting to create resource
Secret/cloud-credentials: created
BackupStorageLocation/default: attempting to create resource
BackupStorageLocation/default: created
Deployment/velero: attempting to create resource
Deployment/velero: created
Velero is installed! ⛵ Use ‘kubectl logs deployment/velero -n velero’ to view the status.

شما ميتوانيد به كارگيري ورودي ها با استفاده از دستور kubect از خروجي را مشاهده كنيد. پس از آماده سازي به كارگيري، ميتوانيد به مرحله بعدي برويد كه پيكربندي سرور مجازي است. به كارگيري موفق شبيه زير خواهد بود (با يك تفاوت ستون AGE):
$ kubectl get deployment/velero –namespace velero
Output
NAME READY UP-TO-DATE AVAILABLE AGE
velero 1/1 1 1 2m

دراين نقطه مولفه سرور مجازي Velero  را در خوشه Kubernetes  به عنوان يك صف آرايي نصب كرده ايد. همچنين كليدهاي فضا را با Velero  و با استفاده از Kubernetes Secret ثبت نموده ايد.

توجه: مي توانيد kubeconfig را كه ابزار خط فرمان velero بايد با فلگ –kubeconfig استفاده كند ، مشخص كنيد. اگر از اين فلگ استفاده نمي كنيد ، velero متغير محيط KUBECONFIG را بررسي كرده و سپس به پيش فرض kubectl  يعني (~/.kube/config) برميگردد.

مرحله 4 – پيكربندي اسنپ شات
هنگامي كه سرور مجازي Velero را نصب كرديم ، گزينه –use-volume-snapshots = false بخشي از دستور بود. از آنجا كه مي خواهيم اسنپ شات از دستگاه هاي ذخيره سازي بلوك موجود در خوشه Kubernetes بگيريم ، بايد به Velero بگوييم كه از پلاگين صحيح براي ذخيره سازي بلوك vpsgol استفاده كند.
دستور زير را اجرا كنيد تا افزونه فعال شود و آن را به عنوان ارائه دهنده اسنپ شات پيش فرض ثبت كنيد:

$velero snapshot-location create default –provider vpsgol.com/velero
خروجي زير را مشاهده خواهيد كرد:
Snapshot volume location “default” configured successfully.

مرحله 5 – اضافه كردن يك نشانه API
در مرحله قبل ، ذخيره بلوك و موارد دخيره را در سرور مجازي Velero ايجاد كرديم. ما افزونه vpsgol / velero: v1.0.0 را با سرور مجازي ثبت كرده ايم و كليدهاي مخفي Spaces را در خوشه نصب كرده ايم.
مرحله آخر افزودن اطلاعات سري cloud-credentials است كه قبلاً براي استفاده از نشانه vpsgol API ما ايجاد كرده ايم. بدون اين نشانه ، افزونه Snapshot قادر به تأييد اعتبار با API vpsgol نخواهد بود.
ما مي توانيم از دستور edit kubectl براي تغيير موضوع آرايش Velero با استفاده از نشانه API استفاده كنيم. با اين حال ، ويرايش موضوعات پيچيده YAML با دست مي تواند خسته كننده و پر خطا باشد. در عوض ، از دستور patch kubectl استفاده خواهيم كرد زيرا Kubernetes از patch موضوعات پشتيباني مي كند. بياييد نگاهي گذرا به مطالب فايل هاي پچ مورد نظر خود بياندازيم.
اولين فايل افزوده examples/01-velero-secret.patch.yaml است كه قبلاً ويرايش كرده ايد. اين براي افزودن نشانه API شما به اطلاعات سري secrets/cloud-credentials طراحي شده است كه از قبل حاوي كليدهاي Spaces شما بود. فايل را cat كنيد:
$cat examples/01-velero-secret.patch.yaml
بايد مانند اين باشد (با نشان شما به جاي نگهدارنده  placeholder):
examples/01-velero-secret.patch.yaml
. . .

apiVersion: v1
kind: Secret
stringData:
vpsgol_token:
type: Opaque

حال بياييد به فايل پچ Deployment نگاه كنيم:
$cat examples/02-velero-deployment.patch.yaml
بايد YAML زير را ببينيد:
examples/02-velero-deployment.patch.yaml
. . .

apiVersion: v1
kind: Deployment
spec:
template:
spec:
containers:
– args:
– server
command:
– /velero
env:
– name: vpsgol_TOKEN
valueFrom:
secretKeyRef:
key: vpsgol_token
name: cloud-credentials
name: velero

اين فايل نشان مي دهد كه ما در حال وصله كردن Deployment’s Pod spec هستيم كه به آن velero گفته مي شود. از آنجا كه اين يك پچ است ، ديگر نيازي به مشخص كردن كل خصوصيات يا ابرداده هاي Kubernetes نيست. در اين حالت ، پياده سازي Velero قبلاً با استفاده از cloud-credentials پيكربندي شده است زيرا دستور نصب velero آن را براي ما ايجاد كرده است. بنابراين ، تمام آنچه كه بايد اين پچ انجام دهد ثبت نام vpsgol_token به عنوان متغير محيط با Velero Pod است كه قبلاً مستقر شده است.
بياييد اولين پچ مخفي را با استفاده از دستور patch kubectl اعمال كنيم:

$kubectl patch secret/cloud-credentials -p “$(cat examples/01-velero-secret.patch.yaml)” –namespace velero
بايد خروجي زير را مشاهده كنيد:
secret/cloud-credentials patched

سرانجام ما Deployment را پچ مي كنيم. دستور زير را اجرا كنيد:
$kubectl patch deployment/velero -p “$(cat examples/02-velero-deployment.patch.yaml”) –namespace velero
در صورت موفقيت آميز بودن، خروجي زير را مشاهده خواهيد كرد:
deployment.apps/velero patched

بياييد تأييد كنيم كه آرايش پچ شده با استفاده از kubectl get در فضايvelero كار مي كند:
$kubectl get deployment/velero –namespace velero
بايد خروجي زير را مشاهده كنيد:
NAME READY UP-TO-DATE AVAILABLE AGE
velero 1/1 1 1 12s

در اين مرحله Velero در حال اجرا و كاملاً پيكربندي شده است ، و آماده تهيه نسخه پشتيبان و بازيابي موارد خوشه اي Kubernetes و واليوم هاي پايدار در vpsgol Spaces و Block Storage است.
در بخش بعدي ، ما يك آزمايش سريع انجام خواهيم داد تا اطمينان حاصل كنيم كه عملكرد نسخه پشتيبان و بازيابي همانطور كه انتظار مي رود ، كار مي كند.
مرحله ششم – تست تهيه نسخه پشتيبان و بازيابي فرآيند
اكنون كه Velero را با موفقيت نصب و پيكربندي كرده ايم ، مي توانيم با استفاده از واليوم و سرويس مداوم ، آزمايش Nginx Deployment را ايجاد كنيم. پس از اجراي Deployment ، از پشتيبان گيري استفاده مي كنيم و فرآيند را بازيابي مي كنيم تا اطمينان حاصل شود كه Velero پيكربندي شده و به درستي كار مي كند.
اطمينان حاصل كنيد كه هنوز در دايركتوري /tmp/velero-plugin-1.0.0 كار مي كنيد. دايركتوري examples  حاوي نمونه Nginx به نام nginx-shembull.yaml است.
اين فايل را با استفاده از ويرايشگر مورد نظر خود باز كنيد:
$nano examples/nginx-example.yaml
متن زير را بايد مشاهده كنيد:
Output
. . .

apiVersion: v1
kind: Namespace
metadata:
name: nginx-example
labels:
app: nginx


kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: nginx-logs
namespace: nginx-example
labels:
app: nginx
spec:
storageClassName: do-block-storage
accessModes:
– ReadWriteOnce
resources:
requests:
storage: 5Gi


apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deploy
namespace: nginx-example
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
volumes:
– name: nginx-logs
persistentVolumeClaim:
claimName: nginx-logs
containers:
– image: nginx:stable
name: nginx
ports:
– containerPort: 80
volumeMounts:
– mountPath: “/var/log/nginx”
name: nginx-logs
readOnly: false


apiVersion: v1
kind: Service
metadata:
labels:
app: nginx
name: nginx-svc
namespace: nginx-example
spec:
ports:
– port: 80
targetPort: 80
selector:
app: nginx
type: LoadBalancer

در اين فايل فضاهايي براي موارد زير مشاهده مي كنيم:
⦁ يك نام فضاي Nginx به نام nginx-example
⦁ استقرار Nginx متشكل از يك نمونه كپي شده از تصوير كانتينر nginx:stable
⦁ ادعاي واليوم مداوم 5Gi (به نام log-nginx) با استفاده از do-block-storage در StorageClass
⦁ يك سرويس LoadBalancer كه پورت 80 را در معرض ديد قرار مي دهد
با استفاده از kubectl apply موارد را ايجاد كنيد:
$kubectl apply -f examples/nginx-example.yaml
بايد خروجي زير را مشاهده كنيد:
Output
namespace/nginx-example created
persistentvolumeclaim/nginx-logs created
deployment.apps/nginx-deploy created
service/nginx-svc created

بررسي كنيد كه استقرار موفق باشد:
$kubectl get deployments –namespace=nginx-example
بايد براي سرويس my-nginx هم CLUSTER-IP داخلي و هم EXTERNAL-IP را مشاهده كنيد:
Output
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx-svc LoadBalancer 10.245.147.61 159.203.48.191 80:30232/TCP 3m1s

به EXTERNAL-IP توجه داشته باشيد و آن را به سمت استفاده از مرورگرتان هدايت كنيد.
هنگامي كه در دسترس قرار گرفت به 1 رسيد ، IP خارجي تعادل بار Nginx را با استفاده از kubectl دريافت كنيد:

شما بايد صفحه خوشامدگويي NGINX زير را ببينيد:

اين نشان مي دهد كه Nginx Deployme شما و خدمات به روز و در حال اجرا هستند.
قبل از شبيه سازي سناريوي فاجعه ما ، ابتدا ورود به دسترسي Nginx (كه در يك حجم مداوم متصل به Nginx Pod ذخيره شده) را بررسي كنيد:
$kubectl get pods –namespace nginx-example
Output
NAME READY STATUS RESTARTS AGE
nginx-deploy-694c85cdc8-vknsk 1/1 Running 0 4m14s

اكنون ، داخل كانتينر در حال اجرا Nginx وارد شويد تا به يك پوسته در داخل آن برسيد:
$kubectl exec -it nginx-deploy-694c85cdc8-vknsk –namespace nginx-example — /bin/bash

به محض ورود به كانتينر Nginx برويد ، ورودهاي دسترسي Nginx را cat كنيد:

# cat /var/log/nginx/access.log
بايد برخي از ورودي هاي Nginx را مشاهده كنيد:
Output
10.244.0.119 – – [03/Jan/2020:04:43:04 +0000] “GET / HTTP/1.1” 200 612 “-” “Mozilla/5.0 (X11; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0” “-”
10.244.0.119 – – [03/Jan/2020:04:43:04 +0000] “GET /favicon.ico HTTP/1.1” 404 153 “-” “Mozilla/5.0 (X11; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0” “-”

اين موارد را يادداشت كنيد (به ويژه زمانها) ، زيرا ما از آنها براي تأييد موفقيت در روش بازيابي استفاده خواهيم كرد. از pod خارج شويد:
$ exit
اكنون مي توانيم از روش پشتيبان گيري براي كپي كردن همه موارد nginx Kubernetes در Spaces استفاده كنيم و يك اسنپ شات از واليوم مداوم كه هنگام استقرار Nginx ايجاد كرديم را بگيريد.
$ velero backup create nginx-backup –selector app=nginx
برنامه –selector = nginx به سرور مجازي Velero دستور مي دهد تا فقط از موضوعات Kubernetes با انتخابگر ليبل app=nginx پشتيبان تهيه كند.
بايد خروجي زير را مشاهده كنيد:
Output
Backup request “nginx-backup” submitted successfully.
Run `velero backup describe nginx-backup` or `velero backup logs nginx-backup` for more details.

اجراي velero backup describe nginx-backup –details بايد خروجي زير را بعد از يك تأخير كوتاه ارائه دهد:
Output
Name: nginx-backup
Namespace: velero
Labels: velero.io/backup=nginx-backup
velero.io/pv=pvc-6b7f63d7-752b-4537-9bb0-003bed9129ca
velero.io/storage-location=default
Annotations:

Phase: Completed

Namespaces:
Included: *
Excluded:

Resources:
Included: *
Excluded:
Cluster-scoped: auto

Label selector: app=nginx

Storage Location: default

Snapshot PVs: auto

TTL: 720h0m0s

Hooks:

Backup Format Version: 1

Started: 2020-01-02 23:45:30 -0500 EST
Completed: 2020-01-02 23:45:34 -0500 EST

Expiration: 2020-02-01 23:45:30 -0500 EST

Resource List:
apps/v1/Deployment:
– nginx-example/nginx-deploy
apps/v1/ReplicaSet:
– nginx-example/nginx-deploy-694c85cdc8
v1/Endpoints:
– nginx-example/nginx-svc
v1/Namespace:
– nginx-example
v1/PersistentVolume:
– pvc-6b7f63d7-752b-4537-9bb0-003bed9129ca
v1/PersistentVolumeClaim:
– nginx-example/nginx-logs
v1/Pod:
– nginx-example/nginx-deploy-694c85cdc8-vknsk
v1/Service:
– nginx-example/nginx-svc

Persistent Volumes:
pvc-6b7f63d7-752b-4537-9bb0-003bed9129ca:
Snapshot ID: dfe866cc-2de3-11ea-9ec0-0a58ac14e075
Type: ext4
Availability Zone:
IOPS:

اين خروجي نشان مي دهد كه پشتيبان گيري nginx-backup با موفقيت انجام شد. ليست منابع هر يك از موضوعات Kubernetes را كه در نسخه پشتيبان تهيه شده است نشان مي دهد. بخش آخر نشان مي دهد كه از PersistentVolume نيز با استفاده از اسنپ شات فايل سيستم نسخه پشتيبان تهيه شده است.
براي تأييد از داخل كنترل پنل vpsgol Cloud ، به فضاي حاوي فايل هاي پشتيبان Kubernetes خود برويد.
شما بايد يك دايركتوري جديد با نام nginx-backup را ببينيد كه حاوي فايل هاي پشتيبان Velero است.
با استفاده از نوار ناوبري در سمت چپ ، به قسمت تصاوير و سپس اسنپ شات ها برويد. در اسنپ شات ها ، به Volume برويد. شما بايد Snapshot مربوط به PVC ذكر شده در خروجي فوق را مشاهده كنيد.
اكنون مي توانيم فرآيند بازيابي را آزمايش كنيم.
بياييد ابتدا نام فضاي nginx-example را حذف كنيم. با اين كار همه چيز در نام فضا، از جمله Load Balancer و واليوم مداوم حذف مي شود:
$kubectl delete namespace nginx-example
تأييد كنيد كه ديگر نمي توانيد به Nginx در انتهاي Load Balancer دسترسي پيدا كنيد ، و اين كه به كارگيري برنامه nginx-example ديگر در حال اجرا نيست:
$kubectl get deployments –namespace=nginx-example
Output
No resources found in nginx-example namespace.

اكنون مي توانيم دوباره با استفاده از مشتري velero ، فرآيند بازيابي را انجام دهيم:
$ velero restore create –from-backup nginx-backup
در اينجا ما از create  براي ايجاد مورد Velero Restore از موضوع nginx-backup استفاده مي كنيم.
بايد خروجي زير را مشاهده كنيد:
Output
$Restore request “nginx-backup-20200102235032” submitted successfully.
$Run `velero restore describe nginx-backup-20200102235032` or `velero restore logs nginx-backup-20200102235032` for more details.
وضعيت اجراي بازيابي شده را بررسي كنيد:
$kubectl get deployments –namespace=nginx-example
Output
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-deploy 1/1 1 1 58s
ايجاد واليوم مداوم را بررسي كنيد
$kubectl get pvc –namespace=nginx-example
Output
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
nginx-logs Bound pvc-6b7f63d7-752b-4537-9bb0-003bed9129ca 5Gi RWO do-block-storage 75s

بازيابي همچنين LoadBalancer ايجاد كرد. گاهي اوقات سرويس با يك آدرس IP جديد ايجاد مي شود. بايد مجدداً آدرس EXTERNAL-IP را پيدا كنيد:

$kubectl get services –namespace nginx-example
Output
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx-svc LoadBalancer 10.245.15.83 159.203.48.191 80:31217/TCP 97s
براي تأييد به روز رساني و اجراي Nginx ، يك بار ديگر به IP خارجي سرويس Nginx برويد.
در آخر ، ورودهاي مربوط به واليوم پايدار را بازبيني كنيد تا تأييد كنيد كه سابقه ورود پس از بازيابي ، حفظ شده است.
براي اين كار ، يك بار ديگر نام Pod را با استفاده از kubectl get دريافت كنيد:
$kubectl get pods –namespace nginx-example
Output
NAME READY STATUS RESTARTS AGE
nginx-deploy-694c85cdc8-vknsk 1/1 Running 0 2m20s

سپس به آن exec كنيد:
$kubectl exec -it nginx-deploy-694c85cdc8-vknsk –namespace nginx-example — /bin/bash
به محض ورود به كانتينر Nginx، ورودهاي دسترسي به Nginx را cat كنيد:
$cat /var/log/nginx/access.log
Output
10.244.0.119 – – [03/Jan/2020:04:43:04 +0000] “GET / HTTP/1.1” 200 612 “-” “Mozilla/5.0 (X11; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0” “-”
10.244.0.119 – – [03/Jan/2020:04:43:04 +0000] “GET /favicon.ico HTTP/1.1” 404 153 “-” “Mozilla/5.0 (X11; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0” “-”

شما بايد همان اقدامات دسترسي قبل از تهيه نسخه پشتيبان را ببينيد (بازه هاي زماني را يادداشت كنيد) كه تأييد ميكند كه بازيابي واليوم پايدار موفقيت آميز بوده است. توجه داشته باشيد پس از انجام بازيابي ، اگر از صفحه فرود Nginx بازديد كنيد ، ممكن است تلاش هاي بيشتري نياز باشد.
در اين مرحله ، ما با موفقيت از موضوعات Kubernetes خود در فضاهاي vpsgol و واليومهاي پايدار خود با استفاده از اسنپ شات هاي بلوك ذخيره سازي پشتيبان تهيه كرده ايم. ما يك سناريوي فاجعه را شبيه سازي كرديم و سرويس را به برنامه تست Nginx بازيابي كرديم.
نتيجه
در اين راهنما ابزار پشتيبان گيري Velero Kubernetes را روي يك خوشه مبتني بر vpsgol Kubernetes نصب و پيكربندي كرديم. ما اين ابزار را براي تهيه نسخه پشتيبان از موضوعات Kubernetes در vpsgol Spaces و پشتيبان گيري از واليوم هاي مداوم با استفاده از اسنپ شات هاي واليوم ذخيره سازي بلوك پيكربندي كرده ايم.

از Velero همچنين مي توان براي برنامه ريزي پشتيبان گيري منظم از خوشه Kubernetes براي بازيابي در برابر مشكلات استفاده كرد. براي اين كار مي توانيد از دستور velero schedule استفاده كنيد. Velero همچنين مي تواند براي انتقال منابع از يك خوشه به گروه ديگر استفاده شود.
براي كسب اطلاعات بيشتر در مورد vpsgol Spaces ، از مطالب رسمي Spaces كمك بگيريد. براي كسب اطلاعات بيشتر در مورد واليوم هاي ذخيره سازي بلوك ، با مستندات واليوم ذخيره سازي بلوك مشورت كنيد.
اين آموزش بر اساس README موجود در repo GitHub-plugin-plugin-digital-stackPointCloud

 

از اين لينك ها زير مي توانيد آمورش هاي بيشتري براي لينوكس پيدا كنيد :

نحوه نصب Docker Compose در Debian 10

چگونه مي توان با كتابخانه (library) درخواست ها در پايتون شروع به كار كرد

نحوه اجراي صفحه گذاري در MySQL با PHP روي اوبونتو 18.04

نحوه تنظيم پلتفرم Eclipse Theia Cloud IDE در CentOS 7

بسته بندي برنامه Laravel 6 براي توسعه با Docker Compose در اوبونتو 18.04

نحوه بهينه سازي درخواست هاي MySQL با ذخيره سازي غير مجاز مي باشدSQL در اوبونتو 16.04

نحوه استفاده از Ansible براي نصب و راه اندازي وردپرس با LAMP در اوبونتو 18.04

چگونه مي توان پلتفرم كد سرور Cloud IDE را در اوبونتو 18.04 تنظيم كرد (شروع سريع)

چگونه مي توان از رول هاي ansible براي انتزاع محيط زيرساختي خود استفاده كرد

نحوه پيكربندي يك خوشه Galera با MySQL در سرورهاي اوبونتو 18.04

نحوه نصب و استفاده از PostgreSQL در CentOS 7

چگونه مي توان پلتفرم Eclipse Theia Cloud IDE را روي اوبونتو 18.4 تنظيم كرد

نحوه استقرار و مديريت DNS با استفاده از DNSControl در Debian 10

چگونه مي توان پلتفرم Cloud IDE كد سرور را روي CentOS 7 تنظيم كرد

نحوه نصب Apache Kafka در Debian 10

نحوه نصب وردپرس با OpenLiteSpeed ​​در اوبونتو 18.04

چگونه پيكربندي SSH Daemon خود را بر روي يك VPS لينوكس تنظيم كنيد


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۲۰ بهمن ۱۳۹۸ساعت: ۰۲:۳۰:۳۷ توسط:server موضوع:

نحوه نصب و استفاده از PostgreSQL در CentOS 7

مقدمه
سيستم هاي مديريت ديتابيس هاي منطقي يك مؤلفه اصلي بسياري از وب سايت ها و برنامه ها است. آنها روشي ساختاري براي ذخيره ، سازماندهي و دسترسي به اطلاعات را ارائه مي دهند.
PostgreSQL يا Postgres يك سيستم مديريت ديتابيس منطقي است كه اجراي زبان جستجوي SQL را فراهم مي كند. و يك انتخاب متداول براي بسياري از پروژه هاي كوچك و بزرگ است و اين مزيت را دارد كه مطابق با استانداردها مي باشد و داراي بسياري از ويژگي هاي پيشرفته مانند تعاملات مطمئن و همزماني بدون قفل خواندن است.
در اين راهنما؛ Postgres را بر روي سرور مجازي CentOS 7 نصب خواهيد كرد و برخي از روش هاي اصلي براي استفاده از آن را فرا مي گيريد.
پيش نيازها
براي دنبال كردن اين آموزش ، به موارد زير نياز داريد:
يك سرور مجازي CentOS 7 كه با پيروي از راهنماي راه اندازي سرور مجازي اوليه ما با CentOS 7 و مراحل توصيه شده بعدي براي سرورهاي جديد CentOS 7 ما ، شامل كاربر غير ريشه با امتيازات sudo و فايروال تنظيم شده با firewalld پيكربندي شده باشد.
براي راه اندازي firewalld ، بخش پيكربندي يك فايروال اساسي در آموزش ستاپ توصيه شده براي سرورهاي جديد CentOS 7 را دنبال كنيد.
اگر ديتابيس ها بسيار فعال باشند و داراي نشان زماني در سوابق داخلي باشند ، مي توانند به ويژه در برابر تغييرات زمان سيستم آسيب پذير باشند. براي جلوگيري از برخي رفتارهاي متناقض كه در اثر ساعتهاي خارج از همگام سازي ناشي مي شود ، حتماً با دنبال كردن بخش همگام سازي پروتكل زماني شبكه و محدوده هاي زماني پيكربندي در آموزش مراحل اضافي براي سرور مجازيCentOS 7 جديد، همگام سازي پروتكل زماني شبكه را (NTP) تنظيم كنيد. .
مرحله 1 – نصب PostgreSQL
Postgres را مي توان با استفاده از منابع پيش فرض CentOS نصب كرد. اما در مورد نوشتن اين آموزش ، نسخه اي كه در منبع پايه CentOS 7 موجود است منسوخ شده است. بنابراين ، در اين آموزش از منبع رسمي Postgres استفاده خواهد شد.

قبل از اقدام به ايجاد منبع جديد ، جستجوي بسته هاي postgresql را از منبع CentOS-Base حذف كنيد. در غير اين صورت ، وابستگي ها ممكن است نسبت به postgresql تهيه شده توسط منبع پايه برطرف شود.
فايل پيكربندي منبع را با استفاده از ويرايشگر متن مورد نظر خود باز كنيد. در اين آموزش از vim استفاده مي شود:
$sudo vi /etc/yum.repos.d/CentOS-Base.repo
بخش هاي [base] و [update] را پيدا كنيد ، با فشار دادن i وارد حالت insert شويد و خط exclud = postgresql * را در هر دو بخش وارد كنيد. در نتيجه ، فايل شما به شرح زير خواهد بود ، با خطوط جديد برجسته شده است:
/etc/yum.repos.d/CentOS-Base.repo

[base]
name=CentOS-$releasever – Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

exclude=postgresql*

#released updates
[updates]
name=CentOS-$releasever – Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
exclude=postgresql*

پس از اتمام ، ESC را فشار دهيد تا از حالت درج خارج شويد، سپس: wq و ENTER را براي ذخيره و خروج از فايل بزنيد. براي كسب اطلاعات بيشتر در مورد ويرايشگر متن vi و جانشين آن vim ، نصب و استفاده از ويرايشگر متن Vim را در آموزش Cloud Server ببينيد.
اكنون با استفاده از منبع رسمي PostgreSQL براي CentOS ، يك بسته تنظيمات منبع را نصب كنيد:

$sudo yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
هنگامي كه اعلان به شما داده شد ، نصب را با y تأييد كنيد.
منبع PostgreSQL شامل اطلاعات مربوط به همه نسخه هاي موجود PostgreSQL است. با استفاده از دستور زير مي توانيد تمام بسته ها و نسخه هاي موجود را مشاهده كنيد:
$yum list postgresql*
نسخه مورد نظر PostgreSQL را انتخاب و نصب كنيد. در اين راهنما از نسخه PostgreSQL 11 استفاده خواهيد كرد.
براي نصب سرور مجازي PostgreSQL از دستور زير استفاده كنيد:
$sudo yum install postgresql11-server
در طي مراحل نصب از شما خواسته مي شود تا كليد GPG را با اعلاني مانند موارد زير وارد كنيد:

Importing GPG key 0x442DF0F8:
Userid : “PostgreSQL RPM Building Project
Fingerprint: 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8
Package : pgdg-redhat-repo-42.0-5.noarch (installed)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Is this ok [y/N]:

آن را با y تأييد كنيد تا نصب كامل شود.
اكنون كه نرم افزار نصب شده است ، شما براي تهيه خوشه ديتابيس جديد براي PostgreSQL مراحل ابتدايي را انجام خواهيد داد.
مرحله 2 – ايجاد يك خوشه ديتابيس جديد PostgreSQL
شما بايد قبل از استفاده از ديتابيس Postgres ، يك ديتابيس PostgreSQL  جديد ايجاد كنيد. يك خوشه ديتابيس مجموعه اي از بانكهاي داده است كه توسط يك سرور مجازي واحد مديريت مي شود. ايجاد يك خوشه ديتابيس شامل ايجاد دايركتوري هايي است كه در آن داده هاي ديتابيس قرار مي گيرد ، جداول كاتولوگ اشتراكي و بانكهاي اطلاعاتي template1 و postgres. را ايجاد ميكنند.
براي ايجاد يك ديتابيس جديد ، ديتابيس template1 لازم است. هر چيزي كه در آن ذخيره شده باشد ، هنگام ايجاد در يك ديتابيس جديد قرار مي گيرد. ديتابيس postgres يك ديتابيس پيش فرض است كه براي استفاده كاربران ، برنامه هاي كاربردي و برنامه هاي شخص ثالث طراحي شده است.

يك خوشه جديد براي ديتابيس PostgreSQL با initdb ايجاد كنيد:
$ sudo /usr/pgsql-11/bin/postgresql-11-setup initdb
خروجي زير را مشاهده خواهيد كرد:
Initializing database … OK

اكنون PostgreSQL را با استفاده از systemctl شروع و فعال كنيد:
$ sudo systemctl start postgresql-11
$ sudo systemctl enable postgresql-11
خروجي زير را مي دهد
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-11.service to /usr/lib/systemd/system/postgresql-11.service.

اكنون كه PostgreSQL به روز شده و در حال اجرا است ، شما مي توانيد با استفاده از نقش ها ، ياد بگيريد كه چگونه Postgres كار مي كند و تفاوت آن با سيستم هاي مديريت ديتابيس مشابه شما كه ممكن است در گذشته استفاده كرده باشيد چيست.
مرحله 3 – استفاده از نقشها و بانكهاي اطلاعاتي PostgreSQL
به طور پيش فرض ، Postgres از مفهومي به نام نقش ها براي تأييد اعتبار و مجوز استفاده مي كند. اينها از بعضي جهات شبيه به حسابهاي معمولي يونيكس هستند اما Postgres بين كاربران و گروه ها فرق نمي گذارد و در عوض نقش انعطاف پذير تري را ترجيح مي دهد.
پس از نصب ، Postgres براي استفاده احراز هويت شناسايي تنظيم ميشود ، به اين معني كه نقش هاي Postgres با يك حساب كاربري سيستم Unix / Linux مرتبط مي شود. اگر نقشي در Postgres وجود داشته باشد ، يك نام كاربري يونيكس / لينوكس با همين نام قادر به ورود به عنوان آن نقش است.
روش نصب يك حساب كاربري به نام postgres ايجاد كرده است كه با نقش پيش فرض Postgres همراه است. براي استفاده از Postgres مي توانيد وارد آن حساب شويد.
چند روش براي استفاده از اين حساب براي دسترسي به Postgres وجود دارد.
انتقال به حساب Postgres
با تايپ كردن دستور زير به حساب Postgres در سرور مجازي خود سوييچ كنيد:
$ sudo -i -u postgres
اكنون مي توانيد با تايپ اين دستور فوراً به Postgres دسترسي پيدا كنيد:

$ psql
با اين كار شما وارد اعلان PostgreSQL مي شويد و از اينجا مي توانيد بلافاصله با سيستم مديريت ديتابيس ارتباط برقرار كنيد.
با تايپ كردن اين دستور از اعلان PostgreSQL خارج شويد:
Postgres=# q
اين شما را به خط فرمان سريع postgres Linux بازميگرداند. اكنون با دستور زير به حساب sudo اصلي خود برگرديد:
$ exit
دسترسي به يك Postgres سريع بدون تعويض حساب
همچنين مي توانيد دستور مورد نظر خود را با حساب postgres به طور مستقيم با sudo اجرا كنيد.
به عنوان مثال ، در نمونه آخر ، به شما دستور داده شد كه ابتدا با سوييچ كردن به كاربر Postgres و سپس اجراي psql براي باز كردن اعلان Postgres ، سريعاً بهPostgres برسيد. شما مي توانيد اين كار را در يك مرحله با اجراي فرمان واحد psql به عنوان كاربر postgres با sudo انجام دهيد ، مانند اين:
$ sudo -u postgres psql
با اين كار بدون پوسته bash مستقيماً وارد Postgres خواهيد شد.
دوباره مي توانيد با تايپ كردن اين دستور از بخش Postgres تعاملي خارج شويد:
Postgres=# q
در اين مرحله، از حساب Postgres براي رسيدن به اعلان psql استفاده كرديد. اما بسياري از موارد استفاده بيشتر به يك نقش Postgres نياز دارند. براي يادگيري نحوه پيكربندي نقشهاي جديد به خواندن متن ادامه دهيد.
مرحله 4 – ايجاد نقش جديد
در حال حاضر ، شما فقط نقش postgres ها را در ديتابيس پيكربندي كرده ايد. مي توانيد با استفاده از دستور Createrole نقش هاي جديدي را از خط فرمان ايجاد كنيد. فلگ –interactive نام نقش جديد را به شما اعلان ميكند و همچنين سؤال ميكند كه آيا مجوزهاي فوق كاربري بايد داته باشد يا خير.
اگر به عنوان حساب postgres وارد شويد ، مي توانيد با تايپ كردن اين دستور كاربر جديدي ايجاد كنيد:
postgres@server:$ createuser –interactive
در عوض ، اگر ترجيح مي دهيد بدون تغيير حساب عادي خود از sudo براي هر دستور استفاده كنيد ، تايپ كنيد:
$ sudo -u postgres createuser –interactive
اين متن با انتخاب هاي مختلفي شما را باخبر مي كند و بر اساس پاسخ هاي شما ، دستورات درست Postgres را براي ايجاد يك كاربر براي مشخصات شما اجرا مي كند. براي اين آموزش ، يك كاربر sammy ايجاد كنيد و به آن امتيازات فوق كاربر بدهيد:
Enter name of role to add: sammy
Shall the new role be a superuser? (y/n) y

با عبور برخي از فلگ هاي اضافي مي توانيد كنترل بيشتري به دست آوريد. گزينه ها را با مراجعه به صفحه man بررسي كنيد:
$ man createuser
نصب شما در Postgres اكنون كاربر جديدي دارد ، اما شما هنوز هيچ ديتابيسي اضافه نكرده ايد. در بخش بعدي اين روند توضيح داده شده است.
مرحله 5 – ايجاد يك ديتابيس جديد
فرض ديگري كه سيستم تأييد اعتبار Postgres بطور پيش فرض انجام مي دهد اين است كه براي هر نقشي كه براي ورود به سيستم استفاده مي شود ، آن نقش يك ديتابيس با همان نام دارد كه مي تواند به آن دسترسي داشته باشد.
اين بدان معني است كه ، اگر كاربري كه در آخرين بخش ايجاد كرده ايد ، sammy خوانده شود ، اين نقش سعي خواهد كرد به يك ديتابيس وصل شود كه به طور پيش فرض نيز sammy ناميده مي شود. مي توانيد با دستور createdb  ديتابيس مناسب ايجاد كنيد.
اگر به عنوان حساب postgres وارد ميشويد، مطمئناً شما مي توانيد چيزي شبيه اين تايپ خواهيد كرد:
postgres@server:$ createdb sammy
در عوض ، اگر ترجيح مي دهيد بدون تغيير از حساب عادي خود ، از sudo براي هر فرمان استفاده كنيد ، تايپ كنيد:
$ sudo -u postgres createdb sammy
اين انعطاف پذيري در صورت نياز چندين مسير براي ايجاد ديتابيس جديد فراهم مي كند.
اكنون كه يك ديتابيس جديد ايجاد كرده ايد ، با نقش جديد خود وارد آن خواهيد شد.

مرحله ششم – باز كردن اعلان Postgres با نقش جديد
براي ورود به تأييد هويت مبتني بر ident ، به يك كاربر لينوكس با همان نام و نقش ديتابيس Postgres خود نياز داريد.
اگر يك كاربر سازگار با لينوكس در دسترس نداريد ، مي توانيد يكي از آنها را با دستور adduser ايجاد كنيد. شما بايد اين كار را از حساب غير ريشه خود با امتيازات sudo انجام دهيد (به اين معني كه به عنوان كاربر postgres وارد نشده ايد):
$ sudo adduser sammy
پس از در دسترس بودن اين حساب جديد ، مي توانيد با تايپ كردن به ديتابيس سوييچ كنيد و وصل شويد:
$ sudo -i -u sammy
$ psql
يا مي توانيد اين كار را بصورت درون خطي انجام دهيد:
$ sudo -u sammy psql
اين دستور شما را به طور خودكار وارد مي كند.
اگر مي خواهيد كاربر شما به يك ديتابيس ديگر متصل شود ، مي توانيد با مشخص كردن ديتابيس مانند دستور زير اين كار را انجام دهيد:
$ psql -d postgres
پس از ورود به سيستم ، مي توانيد اطلاعات اتصال فعلي خود را با تايپ كردن دستور زير بررسي كنيد:
Sammy=# conninfo
خروجي زير را نشان خواهد داد:
You are connected to database “sammy” as user “sammy” via socket in “/var/run/postgresql” at port “5432”.

اين امر در صورت اتصال به ديتابيس هاي غير پيش فرض يا با كاربران غير پيش فرض مفيد است.
با اتصال به ديتابيس خود ، اكنون مي توانيد ايجاد و حذف جداول را امتحان كنيد.
مرحله 7 – ايجاد و حذف جداول
اكنون كه مي دانيد چگونه به سيستم ديتابيس PostgreSQL وصل شويد ، مي توانيد برخي از وظايف اساسي مديريت Postgres را ياد بگيريد.
ابتدا يك جدول براي ذخيره برخي داده ها ايجاد كنيد. به عنوان نمونه ، جدولي را تهيه خواهيد كرد كه برخي از تجهيزات زمين بازي را شرح مي دهد.
تركيب اصلي اين دستور به شرح زير است:
CREATE TABLE table_name (
column_name1 col_type (field_length) column_constraints,
column_name2 col_type (field_length),
column_name3 col_type (field_length)
);
اين دستورات به جدول اسمي مي دهند و سپس ستون ها و همچنين نوع ستون و حداكثر طول داده هاي ميدان را مشخص مي كنند. همچنين مي توانيد محدوديت هاي جدول را براي هر ستون به صورت اختياري اضافه كنيد.
مي توانيد اطلاعات بيشتري در مورد نحوه ايجاد ، حذف و مديريت جداول در PostgreSQL در يك آموزش Cloud Server دريافت كنيد.
براي اهداف توضيحي ، يك جدول ساده مانند اين ايجاد كنيد:
CREATE TABLE playground (
equip_id serial PRIMARY KEY,
type varchar (50) NOT NULL,
color varchar (25) NOT NULL,
location varchar(25) check (location in (‘north’, ‘south’, ‘west’, ‘east’, ‘northeast’, ‘southeast’, ‘southwest’, ‘northwest’)),
install_date date
);

اين دستورات يك جدول ايجاد مي كند كه تجهيزات زمين بازي را ذخيره مي كند. اين كار با يك شناسه تجهيزات شروع مي شود كه از نوع serial  است. اين نوع داده يك عدد صحيح است كه به طور خودكار رو به افزايش است. شما همچنين به اين ستون محدوديت primary keyرا داده ايد ، به اين معني كه مقادير بايد منحصر به فرد باشند و خنثي نباشند.
براي دو ستون (equip_id و install_date) ، دستورات طول فيلد را مشخص نمي كنند. دليل اين امر اين است كه برخي از انواع ستونها به طول مشخصي نياز ندارند زيرا طول دلالت بر نوع است.
دو دستور بعدي به ترتيب ستونهايي را براي نوع و رنگ تجهيزات ايجاد مي كنند كه هر يك از آنها نمي تواند خالي باشد. دستور بعد از اينها يك ستون مكان و يك محدوديت ايجاد مي كند كه نياز دارد اين مقدار يكي از هشت مقدار ممكن باشد. دستور آخر يك ستون تاريخ ايجاد مي كند كه تاريخ نصب تجهيزات را ثبت مي كند.
مي توانيد جدول جديد خود را با تايپ كردن دستور زير مشاهده كنيد:
Sammy=# d
خروجي زير را نشان مي دهد:
List of relations
Schema | Name | Type | Owner
——–+————————-+———-+——-
public | playground | table | sammy
public | playground_equip_id_seq | sequence | sammy
(2 rows)

جدول زمين بازي شما اينجاست ، اما چيزي به نام playground_equip_id_seq نيز وجود دارد كه از نوع sequence است. اين نمايشي از نوع serial  است كه شما به ستون equip_id خود داده ايد. اين شماره بعدي را در ترتيب دنبال مي كند و به طور خودكار براي ستون هاي اين نوع ايجاد مي شود.
اگر مي خواهيد فقط جدول بدون ترتيب را ببينيد ، مي توانيد تايپ كنيد:
Sammy=# dt
به خروجي زير منجر ميشود:
List of relations
Schema | Name | Type | Owner
——–+————+——-+——-
public | playground | table | sammy
(1 row)

در اين مرحله يك جدول نمونه ايجاد كرده ايد. در مرحله بعد ، سعي در اضافه كردن ، درخواست و حذف مطالب در آن جدول خواهيد كرد.
مرحله 8 – اضافه كردن ، جستجو و حذف داده ها در يك جدول
اكنون كه جدول داريد ، مي توانيد برخي از داده ها را در آن وارد كنيد.
به عنوان نمونه ، با فراخواني جدول موردنظر براي افزودن ، نامگذاري ستونها ، و سپس تهيه داده براي هر ستون ، يك slide و swing را اضافه كنيد:
Sammy=# INSERT INTO playground (type, color, location, install_date) VALUES (‘slide’, ‘blue’, ‘south’, ‘2017-04-28’);
Sammy=# INSERT INTO playground (type, color, location, install_date) VALUES (‘swing’, ‘yellow’, ‘northwest’, ‘2018-08-16’);
شما بايد هنگام وارد كردن داده ها مراقب باشيد تا از معدود مشكلات معمول جلوگيري شود. براي يك ، نام ستون ها را در علامت نق قول نگذاريد ، اما مقادير ستون كه وارد مي كنيد به نقل قول نياز دارند.
نكته ديگري كه بايد در نظر داشته باشيد اين است كه براي ستون equip_id مقداري وارد نمي كنيد. به اين دليل است كه هر زمان كه يك رديف جديد در جدول ايجاد شود ، به طور خودكار شكل ميگيرد.
با تايپ كردن دستور زير اطلاعاتي كه اضافه كرده ايد بازيابي كنيد:
Sammy=# SELECT * FROM playground;
خروجي زير را مشاهده خواهيد كرد:

equip_id | type | color | location | install_date
———-+——-+——–+———–+————–
1 | slide | blue | south | 2017-04-28
2 | swing | yellow | northwest | 2018-08-16
(2 rows)

در اينجا ، مي بينيد كه equip_id شما با موفقيت پر شده است و تمام داده هاي ديگر شما به درستي سازماندهي شده اند.
اگر slide روي زمين بازي خراب شد و مجبور شديد آن را حذف كنيد ، مي توانيد با تايپ كردن دستور زير سطر را از جدول خود حذف نماييد:
Sammy=# DELETE FROM playground WHERE type = ‘slide’;
جدول را دوباره فراخواني كنيد:
Sammy=# SELECT * FROM playground;
موارد زير را مشاهده خواهيد كرد:
equip_id | type | color | location | install_date
———-+——-+——–+———–+————–
2 | swing | yellow | northwest | 2018-08-16
(1 row)

توجه كنيد كه اسلايد شما ديگر جزئي از جدول نيست.
اكنون كه ورودي هاي خود را در جدول خود اضافه كرده ايد و حذف كرده ايد ، مي توانيد ستون ها را اضافه و حذف كنيد.

مرحله 9 – اضافه كردن و حذف ستون ها از يك جدول
پس از ايجاد جدول ، مي توانيد آن را تغيير دهيد تا ستون ها اضافه يا حذف شوند. براي نمايش آخرين بازديد نگهداري براي هر قطعه تجهيزات ، يك ستون اضافه كنيد:
Sammy=# ALTER TABLE playground ADD last_maint date;
اگر اطلاعات جدول خود را دوباره مشاهده كنيد ، مي بينيد كه ستون جديد اضافه شده است (اما هيچ داده اي وارد نشده است(:
Sammy=# SELECT * FROM playground;
خروجي زير را مشاهده خواهيد كرد:
equip_id | type | color | location | install_date | last_maint
———-+——-+——–+———–+————–+————
2 | swing | yellow | northwest | 2018-08-16 |
(1 row)

حذف ستون به همين سادگي است. اگر متوجه شديد كه خدمه كاري شما از يك ابزار جداگانه براي پيگيري تاريخچه نگهداري استفاده مي كنند ، مي توانيد ستون را با تايپ كردن اين دستور حذف كنيد:
Sammy=# ALTER TABLE playground DROP last_maint;
اين ستون last_maint و مقادير موجود در آن را حذف مي كند ، اما تمام داده هاي ديگر را دست نخورده مي گذارد.
با افزودن و حذف ستونها، مي توانيد داده هاي موجود را در مرحله آخر به روز كنيد.
مرحله 10 – به روزرساني داده ها در يك جدول
تاكنون ياد گرفته ايد كه چگونه مي توانيد سوابق را به يك جدول اضافه كنيد و چگونه آنها را حذف كنيد ، اما اين آموزش هنوز نحوه تغيير ورودي هاي موجود را پوشش نداده است.
مي توانيد مقادير ورودي موجود را با فراخواني ركورد مورد نظر خود به روز كنيد و ستون را روي مقدار مورد نظر خود تنظيم كنيد. مي توانيد از سوابق swing  (با هر swing در جدول شما منطبق ميشود) استفاده كنيد و رنگ آن را به رنگ قرمز تغيير دهيد:
Sammy=# UPDATE playground SET color = ‘red’ WHERE type = ‘swing’;
با فراخواني داده ها دوباره مي توانيد تأييد كنيد كه اين عمليات با موفقيت انجام شد:
Sammy=# SELECT * FROM playground;
خروجي زير را مشاهده خواهيد كرد:
equip_id | type | color | location | install_date
———-+——-+——-+———–+————–
2 | swing | red | northwest | 2010-08-16
(1 row)

همانطور كه مشاهده مي كنيد ، اكنون اسلايدها به عنوان قرمز ثبت شده است.
نتيجه
اكنون تنظيم PostgreSQL در سرور مجازي CentOS 7 خود را انجام داده ايد. با اين حال ، هنوز چيزهاي بيشتري براي يادگيري Postgres وجود دارد. در اينجا چند راهنماي ديگر كه نحوه استفاده از Postgres را پوشش مي دهند آورده شده است:
مقايسه سيستم هاي مديريت ديتابيس منطقي
با نحوه ايجاد و مديريت جداول با Postgres آشنا شويد
در مديريت نقش ها و مجوزها حرفه اي تر شويد
فراخواني مهارت در Postgres با Selec

 

از اين لينك ها زير مي توانيد آمورش هاي بيشتري براي لينوكس پيدا كنيد :

نحوه نصب Docker Compose در Debian 10

چگونه مي توان با كتابخانه (library) درخواست ها در پايتون شروع به كار كرد

نحوه اجراي صفحه گذاري در MySQL با PHP روي اوبونتو 18.04

نحوه تنظيم پلتفرم Eclipse Theia Cloud IDE در CentOS 7

بسته بندي برنامه Laravel 6 براي توسعه با Docker Compose در اوبونتو 18.04

نحوه بهينه سازي درخواست هاي MySQL با ذخيره سازي غير مجاز مي باشدSQL در اوبونتو 16.04

نحوه استفاده از Ansible براي نصب و راه اندازي وردپرس با LAMP در اوبونتو 18.04

چگونه مي توان پلتفرم كد سرور Cloud IDE را در اوبونتو 18.04 تنظيم كرد (شروع سريع)

چگونه مي توان از رول هاي ansible براي انتزاع محيط زيرساختي خود استفاده كرد

نحوه پيكربندي يك خوشه Galera با MySQL در سرورهاي اوبونتو 18.04

نحوه تهيه نسخه پشتيبان و بازيابي يك خوشه Kubernetes در vpsgol با استفاده از Velero

چگونه مي توان پلتفرم Eclipse Theia Cloud IDE را روي اوبونتو 18.4 تنظيم كرد

نحوه استقرار و مديريت DNS با استفاده از DNSControl در Debian 10

چگونه مي توان پلتفرم Cloud IDE كد سرور را روي CentOS 7 تنظيم كرد

نحوه نصب Apache Kafka در Debian 10

نحوه نصب وردپرس با OpenLiteSpeed ​​در اوبونتو 18.04

چگونه پيكربندي SSH Daemon خود را بر روي يك VPS لينوكس تنظيم كنيد


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۲۰ بهمن ۱۳۹۸ساعت: ۰۲:۲۹:۵۶ توسط:server موضوع:

چگونه مي توان پلتفرم Eclipse Theia Cloud IDE را روي اوبونتو 18.4 تنظيم كرد

مقدمه
با حركت ابزارهاي گسترش دهنده به سمت cloud ، پذيرش پلتفرم cloud IDE (محيط پيشرفت در هم تنيده) در حال رشد است. Cloud IDE از هر نوع دستگاه مدرن از طريق مرورگرهاي وب قابل دسترسي است و براي سناريوهاي همكاري در زمان واقعي مزاياي بسياري را ارائه مي دهند. كار در يك Cloud IDE ، يك محيط توسعه و آزمايش يكپارچه را براي شما و تيم شما ايجاد مي كند ، در عين حال ناسازگاري هاي پلتفرم را به حداقل مي رساند. چون از طريق مرورگرهاي وب قابل دسترسي است ، Cloud IDE ها از هر نوع دستگاه مدرن در دسترس هستند.
Eclipse Theia يك Cloud IDE قابل توسعه است كه بر روي يك سرور مجازي از راه دور و از يك مرورگر وب قابل دسترسي است. از لحاظ بصري ، طراحي شده است كه به طور مشابه با Microsoft Visual Studio Code ديده شود و با آن كار شود ، به اين معني كه از بسياري از زبان هاي برنامه نويسي پشتيباني مي كند ، داراي يك طرح انعطاف پذير و يك ترمينال يكپارچه است. آنچه Eclipse Theia را از ديگر نرم افزارهاي cloud IDE جدا مي كند قابليت توسعه آن است. مي توان آن را با استفاده از افزونه هاي سفارشي اصلاح كرد ، كه به شما امكان مي دهد يك Cloud IDE متناسب با نيازهاي خود تهيه كنيد.
در اين آموزش ،Eclipse Theia را با استفاده از Docker Compose ، يك ابزار اركستر، به سرور مجازي Ubuntu 18.04 خود منتقل خواهيد كرد. شما آن را در دامنه خود با استفاده از nginx-غير مجاز مي باشد ، يك سيستم خودكار براي Docker قرار مي دهيد كه فرايند پيكربندي Nginx را ساده تر مي كند تا به عنوان يك پروكسي معكوس براي يك container سرويس دهد. شما با استفاده از يك گواهي نامه Let Encrypt TLS رايگان ، كه با استفاده از افزونه تخصصي آن تهيه مي كنيد ، آن را ايمن خواهيد كرد. در پايان ، شما بايد Eclipse Theia را روي سرور مجازي Ubuntu 18.04 خود از طريق HTTPS در دسترس داشته باشيد و از كاربر بخواهيد وارد شود.
پيش نيازها
⦁ يك سرور مجازي Ubuntu 18.04 با امتيازات اصلي و يك حساب ثانويه و غير ريشه. مي توانيد با دنبال كردن راهنماي تنظيم اوليه سرور مجازي ما براي Ubuntu 18.04 ، اين تنظيمات را انجام دهيد. براي اين آموزش كاربر غير ريشه sammy است.
⦁ Docker نصب شده روي سرور مجازي شما. مرحله 1 و مرحله 2 نحوه نصب Docker را در اوبونتو 18.04 دنبال كنيد. براي آشنايي با Docker ، به اكوسيستم Docker: مقدمه اي بر مؤلفه هاي مشترك مراجعه كنيد.
⦁ Docker compose روي سرور مجازي شما نصب است. مرحله 1 نحوه نصب Docker Compose را در اوبونتو 18.04 دنبال كنيد.
⦁ نام دامنه كاملاً ثبت شده. در اين آموزش كلا از theia.your_domain استفاده مي شود. مي توانيد نام دامنه را در Namecheap خريداري كنيد ، يكي از آنها را به صورت رايگان در Freenom دريافت كنيد ، يا از ثبت دامنه مورد نظر خود استفاده كنيد.
⦁ يك ثبت A DNS با theia.your_domain كه به آدرس IP عمومي سرور مجازي شما اشاره ميكند. براي جزئيات بيشتر در مورد چگونگي اضافه كردن آنها مي توانيد اين معرفي را در vpsgol DNS دنبال كنيد.
مرحله 1 – استفاده از پروكسي nginx با Let’s Encrypt
در اين بخش nginx-غير مجاز مي باشد و افزونه Let’s Encrypt را با استفاده از Docker Compose به كار ميگيريد. اين امر امكان تهيه و نوسازي مجوز خودكار TLS را فراهم مي كند ، به طوري كه هنگام استقرار Eclipse Theia از طريق HTTPS در دامنه شما قابل دسترسي خواهد بود.
براي اهداف اين آموزش ، تمام فايل ها را تحت ~ / eclipse-theia ذخيره مي كنيد. با اجراي دستور زير دايركتوري ايجاد كنيد:
⦁ $ mkdir ~/eclipse-theia
به آن مراجعه كنيد:
⦁ $ cd ~/eclipse-theia
پيكربندي Docker Compose را براي nginx-غير مجاز مي باشد در فايلي به نام nginx-غير مجاز مي باشد-compose.yaml ذخيره خواهيد كرد. آن را با استفاده از ويرايشگر متن خود ايجاد كنيد:
⦁ $nano nginx-غير مجاز مي باشد-compose.yaml
خطوط زير را اضافه كنيد:
~/eclipse-theia/nginx-غير مجاز مي باشد-compose.yaml
version: ‘2’

services:
nginx-غير مجاز مي باشد:
restart: always
image: jwilder/nginx-غير مجاز مي باشد
ports:
– “80:80”
– “443:443”
volumes:
– “/etc/nginx/htpasswd:/etc/nginx/htpasswd”
– “/etc/nginx/vhost.d”
– “/usr/share/nginx/html”
– “/var/run/docker.sock:/tmp/docker.sock:ro”
– “/etc/nginx/certs”

letsencrypt-nginx-غير مجاز مي باشد-companion:
restart: always
image: jrcs/letsencrypt-nginx-غير مجاز مي باشد-companion
volumes:
– “/var/run/docker.sock:/var/run/docker.sock:ro”
volumes_from:
– “nginx-غير مجاز مي باشد”

در اينجا شما دو سرويس را تعريف مي كنيد كه Docker Compose اجرا خواهد كرد ، nginx-غير مجاز مي باشد و همراه آن Let’s Encrypt. براي پروكسي ، شما jwilder / nginx-غير مجاز مي باشد را به عنوان تصوير مشخص ميكنيد، پورت هاي HTTP و HTTPS را نقشه برداري مي كنيد ، و حجم هايي را تعريف مي كنيد كه در زمان اجرا در دسترس شما خواهد بود.
حجم ها دايركتوري هايي در سرور مجازي شما هستند كه سرويس تعريف شده به آنها دسترسي كامل خواهد داشت ، كه بعداً براي تنظيم تأييد اعتبار كاربر از آنها استفاده خواهيد كرد. براي دستيابي به اين هدف ، از جلد اول ليست استفاده مي كنيد ، كه دايركتوري محلي / etc / nginx / htpasswd را به همان قسمت موجود در داخل آن نگاشت مي كشد. در آن پوشه ، nginx-غير مجاز مي باشد انتظار دارد فايلي را به نام دامنه هدف پيدا كند ، كه حاوي اطلاعات ورود به سيستم براي احراز هويت كاربر در قالب htpasswd (نام كاربري: hashed_password) است.
براي افزودن ، شما تصوير Docker را نامگذاري مي كنيد و با تعيين يك حجم امكان دسترسي به سوكت Docker را مي دهيد. سپس ، شما مشخص مي كنيد كه اين افزونه بايد دسترسي به حجمهاي تعريف شده براي nginx-غير مجاز مي باشد را ادامه دهد. هر دو سرويس
تنظيمات راه اندازي مجدد دارند ، كه روي ALWAYS تنظيم ميشود و به Docker دستور مي دهد كانتينر را در صورت خرابي يا ريبوت سيستم مجدداً راه اندازي كند.
فايل را ذخيره كنيد و ببنديد.
پيكربندي را با اجراي دستور انجام دهيد:
⦁ $ docker-compose -f nginx-غير مجاز مي باشد-compose.yaml up -d
در اينجا نام فايل nginx-غير مجاز مي باشد-compose.yaml را در پارامتر -f دستور docker-compose مي گذاريد ، كه فايل را براي اجرا مشخص مي كند. سپس ، شما فعل UP را مي گذرانيد كه به آن دستور مي دهد كانتينرها را اجرا كند. پرچم -d حالت جداشده را فعال مي سازد ، به اين معني كه Docker Compose كانتينرها را در پس زمينه اجرا مي كند.
خروجي نهايي به شرح زير خواهد بود:
Output
Creating network “eclipse-theia_default” with the default driver
Pulling nginx-غير مجاز مي باشد (jwilder/nginx-غير مجاز مي باشد:)…
latest: Pulling from jwilder/nginx-غير مجاز مي باشد
8d691f585fa8: Pull complete
5b07f4e08ad0: Pull complete

Digest: sha256:dfc0666b9747a6fc851f5fb9b03e65e957b34c95d9635b4b5d1d6b01104bde28
Status: Downloaded newer image for jwilder/nginx-غير مجاز مي باشد:latest
Pulling letsencrypt-nginx-غير مجاز مي باشد-companion (jrcs/letsencrypt-nginx-غير مجاز مي باشد-companion:)…
latest: Pulling from jrcs/letsencrypt-nginx-غير مجاز مي باشد-companion
89d9c30c1d48: Pull complete
668840c175f8: Pull complete

Digest: sha256:a8d369d84079a923fdec8ce2f85827917a15022b0dae9be73e6a0db03be95b5a
Status: Downloaded newer image for jrcs/letsencrypt-nginx-غير مجاز مي باشد-companion:latest
Creating eclipse-theia_nginx-غير مجاز مي باشد_1 … done
Creating eclipse-theia_letsencrypt-nginx-غير مجاز مي باشد-companion_1 … done

شما nginx-غير مجاز مي باشد و همراهش Let’s Encrypt را با استفاده از Docker Compose به كار گرفته ايد. اكنون مي توانيد Eclipse Theia را در دامنه خود تنظيم كرده و آن را ايمن كنيد.
مرحله 2 – به كارگيري Eclipse Theia دوكر شده
در اين بخش ، فايلي را ايجاد خواهيد كرد كه شامل هر تركيب ورود به سيستم مجاز است كه كاربر بايد آن را وارد كند. سپس Eclipse Theia را با استفاده از Docker Compose به سرور مجازي خود منتقل مي كنيد و با استفاده از nginx-غير مجاز مي باشد آن را در دامنه امن خود قرار مي دهيد.
همانطور كه در مرحله قبل توضيح داده شد ، nginx-غير مجاز مي باشد انتظار دارد كه تركيب هاي ورود به سيستم در فايلي به نام دامنه در معرض ، با فرمت htpasswd قرار بگيرند و در دايركتوري / etc / nginx / htpasswd در كانتينر ذخيره شوند. همانطور كه در پيكربندي nginx-غير مجاز مي باشد مشخص كرده ايم ، دايركتوري محلي كه به دايركتوري مجازي نگاشت مي كند ، نيازي به يكسان بودن ندارد.
براي ايجاد تركيبات ورود ، ابتدا با اجراي دستور زير بايد htpasswd را نصب كنيد:
⦁ $ sudo apt install apache2-utils

پكيج apache2-utils حاوي برنامه htpasswd است.
دايركتوري / etc / nginx / htpasswd را ايجاد كنيد:
⦁ $ sudo mkdir -p /etc/nginx/htpasswd
فايلي ايجاد كنيد كه ورود به سيستم را براي دامنه شما ذخيره كند:

⦁ $ sudo touch /etc/nginx/htpasswd/theia.your_domain

به ياد داشته باشيد theia.your_domain را با دامنه Eclipse Theia خود جايگزين كنيد.
براي افزودن نام كاربري و رمز ورود ، دستور زير را اجرا كنيد:
⦁ $ sudo htpasswd /etc/nginx/htpasswd/theia.your_domain username
USERNAME را با نام كاربري كه مي خواهيد اضافه كنيد جايگزين كنيد. از شما دوبار رمز عبور خواسته مي شود. پس از ارائه آن ، htpasswd نام كاربري و جفت رمز عبور را در انتهاي فايل اضافه مي كند. مي توانيد اين دستور را به هر تعداد ورود به سيستم كه ميخواهيد تكرار كنيد.
اكنون ، پيكربندي را براي استقرار Eclipse Theia ايجاد خواهيد كرد. شما آن را در فايلي به نام eclipse-theia-compose.yaml ذخيره خواهيد كرد. آن را با استفاده از ويرايشگر متن خود ايجاد كنيد:
⦁ $ nano eclipse-theia-compose.yaml
خطوط زير را اضافه كنيد:
~/eclipse-theia/eclipse-theia-compose.yaml
version: ‘2.2’

services:
eclipse-theia:
restart: always
image: theiaide/theia:next
init: true
environment:
– VIRTUAL_HOST=theia.your_domain
– LETSENCRYPT_HOST=theia.your_domain

در اين پيكربندي ، شما يك سرويس واحد به نام eclipse-theia با ريستارت براي ALWAYS و theiaide/theia:next به عنوان تصوير كانتينر تعريف مي كنيد: شما همچنين مي توانيد init را روي true تنظيم كنيد تا به Docker دستور دهيد هنگام اجراي Eclipse Theia در داخل كانتينر ، از init به عنوان مدير اصلي فرآيند استفاده كند.
سپس دو متغير محيط را در بخش environment مشخص مي كنيد: VIRTUAL_HOST و LETSENCRYPT_HOST. اولين مورد به پروكسي nginx منتقل مي شود و به آن مي گويد كانتينر چه دامنه اي را بايد در معرض ديد قرار دهيد ، در حالي كه دومي توسط افزونه Let’s Encrypt آن استفاده مي شود و مشخص مي كند كه براي كدام دامنه درخواست گواهينامه TLS شود. مگر اينكه يك wildcard را به عنوان مقدار VIRTUAL_HOST تعيين كنيد ، اين دو مقدار بايد يكسان باشند.
به ياد داشته باشيد theia.your_domain را با دامنه مورد نظر خود جايگزين كنيد ، سپس فايل را ذخيره كنيد و ببنديد. اكنون با اجراي دستور زير Eclipse Theia را اجرا كنيد:
⦁ $ docker-compose -f eclipse-theia-compose.yaml up -d
خروجي نهايي مشابه زير به نظر مي رسد:
Output

Pulling eclipse-theia (theiaide/theia:next)…
next: Pulling from theiaide/theia
63bc94deeb28: Pull complete
100db3e2539d: Pull complete

Digest: sha256:c36dff04e250f1ac52d13f6d6e15ab3e9b8cad9ad68aba0208312e0788ecb109
Status: Downloaded newer image for theiaide/theia:next
Creating eclipse-theia_eclipse-theia_1 … done

سپس در مرورگر خود به دامنه مورد استفاده براي Eclipse Theia برويد. مرورگر شما فوريتي را به شما نشان مي دهد كه از شما خواسته مي شود وارد شويد. پس از ارائه اطلاعات صحيح ، شما وارد Eclipse Theia مي شويد و بلافاصله رابط كاربري گرافيكي آن را مشاهده مي كنيد. در نوار آدرس
يك پدلاك را مشاهده خواهيد كرد كه نشان مي دهد اتصال امن است. اگر اين را بلافاصله مشاهده نكرديد ، چند دقيقه صبر كنيد تا گواهينامه هاي TLS ارائه شود ، سپس صفحه را مجدد بارگيري كنيد.

اكنون كه مي توانيد به راحتي به cloud IDE خود دسترسي داشته باشيد ، در مرحله بعد شروع به استفاده از ويرايشگر خواهيد كرد.

مرحله 3 – استفاده از رابط Eclipse Theia
در اين بخش به بررسي برخي از ويژگي هاي رابط Eclipse Theia مي پردازيد.
در سمت چپ IDE ، يك رديف عمودي از چهار دكمه وجود دارد كه متداول ترين ويژگي هاي مورد استفاده را در يك صفحه جانبي باز مي كند.
اين نوار قابل تنظيم است بنابراين مي توانيد اين نماها اين نوار قابل سفارشي

 

از اين لينك ها زير مي توانيد آمورش هاي بيشتري براي لينوكس پيدا كنيد :

نحوه نصب Docker Compose در Debian 10

چگونه مي توان با كتابخانه (library) درخواست ها در پايتون شروع به كار كرد

نحوه اجراي صفحه گذاري در MySQL با PHP روي اوبونتو 18.04

نحوه تنظيم پلتفرم Eclipse Theia Cloud IDE در CentOS 7

بسته بندي برنامه Laravel 6 براي توسعه با Docker Compose در اوبونتو 18.04

نحوه بهينه سازي درخواست هاي MySQL با ذخيره سازي غير مجاز مي باشدSQL در اوبونتو 16.04

نحوه استفاده از Ansible براي نصب و راه اندازي وردپرس با LAMP در اوبونتو 18.04

چگونه مي توان پلتفرم كد سرور Cloud IDE را در اوبونتو 18.04 تنظيم كرد (شروع سريع)

چگونه مي توان از رول هاي ansible براي انتزاع محيط زيرساختي خود استفاده كرد

نحوه پيكربندي يك خوشه Galera با MySQL در سرورهاي اوبونتو 18.04

نحوه تهيه نسخه پشتيبان و بازيابي يك خوشه Kubernetes در vpsgol با استفاده از Velero

نحوه نصب و استفاده از PostgreSQL در CentOS 7

نحوه استقرار و مديريت DNS با استفاده از DNSControl در Debian 10

چگونه مي توان پلتفرم Cloud IDE كد سرور را روي CentOS 7 تنظيم كرد

نحوه نصب Apache Kafka در Debian 10

نحوه نصب وردپرس با OpenLiteSpeed ​​در اوبونتو 18.04

چگونه پيكربندي SSH Daemon خود را بر روي يك VPS لينوكس تنظيم كنيد


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۲۰ بهمن ۱۳۹۸ساعت: ۰۲:۲۹:۱۸ توسط:server موضوع:

چگونه پيكربندي SSH Daemon خود را بر روي يك VPS لينوكس تنظيم كنيد

مقدمه
SSH راه اصلي براي اتصال به سرورهاي راه دور لينوكس و يونيكس مانند از طريق خط فرمان است. كه يك اتصال مطمئن فراهم مي كند كه مي توانيد از آن براي اجراي دستورات ، تعامل با سيستم و حتي تونل زدن از ميان ترافيك نامربوط استفاده كنيد.
بيشتر كاربران از اصول اوليه چگونگي شروع و اتصال به يك سرور از راه دور با يك فرمان مانند زير آگاه هستند:
ssh username@remote_server

با اين حال ، گزينه هاي بيشتري در رابطه با پيكربندي Demon SSH وجود دارد كه مي تواند براي افزايش امنيت ، مديريت اتصالات كاربر و غيره مفيد باشد. ما در مورد برخي از گزينه هاي موجود در اختيار شما بحث خواهيم كرد تا كنترل دقيق تري روي دسترسي SSH داشته باشيد. .
ما اين مفاهيم را به طور نمونه از Ubuntu 12.04 VPS استفاده خواهيم كرد ، اما هر توزيع مدرن لينوكس بايد به روشي مشابه عمل كند.
كاوش در فايل پيكربندي SSHD
منبع اصلي پيكربندي مربوط به Demon SSH در فايل / etc / ssh / sshd_config است. توجه داشته باشيد كه اين با فايل ssh_config متفاوت است ، كه پيش فرض سمت مشتري را مشخص مي كند.
اكنون فايل را با امتيازات ادمين باز كنيد:
sudo nano /etc/ssh/sshd_config

شما يك فايل با ويژگي هاي كاملاً متفاوت را مشاهده خواهيد كرد و خوشبختانه (بسته به توزيع خود) نظرهاي زيادي را نيز مشاهده ميكنيد. در حالي كه اكثر توزيع ها كار نسبتاً خوبي براي ايجاد پيش فرض هاي عاقلانه انجام مي دهند ، همچنان جاي بهبود و سفارشي سازي وجود دارد.
بياييد به برخي از گزينه هايي كه قبلاً در فايل ما در اوبونتو 12.04 تنظيم شده اند بپردازيم:
پورت ها و پروتكل ها
پورت 22: پورتي را كه Daemon SSH به دنبال اتصال در آن است ، مشخص مي كند. به طور پيش فرض ، اكثر مشتري ها و سرورها در درگاه 22 كار مي كنند ، اما تغيير دادن آن به درگاه متفاوت مي تواند به طور بالقوه ميزان تلاش ورود به سيستم توسط SSH توسط كاربران مخرب را كاهش دهد.
پروتكل 2: SSH از طريق دو نسخه پروتكل بوده است. مگر اينكه به طور خاص نياز به پشتيباني مشترياني داشته باشيد كه فقط مي توانند در پروتكل 1 كار كنند ، توصيه مي شود اين موارد را رها كنيد.
كليدها و جدايي
HostKey / etc / ssh / ssh_host…: اين خطوط كليدهاي هاست را براي سرور مشخص مي كنند. از اين كليدها براي شناسايي سرور براي اتصال مشتري استفاده مي شود. اگر مشتري قبلاً با سرور ارتباط برقرار كرده باشد ، مي تواند از اين كليد براي اعتبار سنجي اتصال جديد استفاده كند.
UsePrivilegeSeparation yes: اين گزينه به SSH اجازه مي دهد تا فرآيندهاي كودك را افزايش دهد كه فقط امتيازات لازم را براي انجام وظايف خود دارند. اين يك ويژگي ايمني براي جداسازي فرايندها در صورت بهره برداري امنيتي است.
KeyRegenerationInterval and ServerKeyBits: اين گزينه ها روي كليد سرور توليد شده براي پروتكل SSH 1 تأثير مي گذارند. اگر خواستار اتصال كانكشن هاي خود به پروتكل 2 هستيد ، لازم نيست كه نگران اين موضوع باشيد.

ورود به سيستم و محدوديت ها
SyslogFacility and LogLevel : اين گزينه ها نحوه ورود به سيستم را مشخص مي كنند. گزينه اول مربوط به كد تسهيلات براي پيام هاي logging است و گزينه دوم سطح ورود به سيستم يا ميزان جزئيات را مي گويد.
LoginGraceTime 120: تعداد ثانيه هايي است كه سرور قبل از جدا شدن از مشتري در صورت عدم ورود موفق به سيستم ، منتظر مي ماند.
PermitRootLogin yes: اين گزينه امكان SSH را با استفاده از حساب root امكان پذير يا رد مي كند. از آنجا كه حساب روت يكي از مواردي است كه حمله كننده مي داند در دستگاه سرور وجود دارد و از آنجا كه دسترسي نامحدود به دستگاه را فراهم مي كند ، اغلب يك حساب كاربري بسيار هدفمند است. وقتي يك حساب كاربري معمولي را با امتيازات sudo پيكربندي كرديد تنظيم اين گزينه روي حالت “خير” توصيه مي شود.
StrictModes yes: اين به SSH مي گويد كه از پرونده هاي پيكربندي سطح كاربر كه مجوزهاي صحيحي ندارند، چشم پوشي كند. اگر كاربر پرونده هاي پيكربندي خود را به صورت جهاني قابل خواندن قرار دهد ، پيامدهاي امنيتي خواهد داشت. تا زماني كه اين مشكل برطرف شود، بهتر است دسترسي برداشته باشد.
IgnoreRhosts and RhostsRSAAuthentication : اين گزينه ها مشخص مي كند كه آيا احراز هويت به سبك rhost پذيرفته خواهد شد يا خير. اين دستور پروتكل 1 است كه در مورد پروتكل 2 صدق نمي كند.
HostbasedAuthentication no: اين نسخه پروتكل 2 از مورد فوق است. در اصل، اجازه مي دهد تا احراز هويت بر اساس ميزبان مشتري در حال اتصال انجام شود. معمولاً فقط براي محيط هاي ايزوله قابل قبول است ، زيرا امكان جعل اطلاعات منبع وجود دارد. شما مي توانيد اطلاعات ميزبان را در يك فايل /etc/ssh/shosts.equiv يا فايل /etc/hosts.equiv مشخص كنيد. اين خارج از محدوده اين راهنما ميباشد.
PermitEmptyPasswords no: اين گزينه دسترسي SSH را براي حساب هايي كه رمز عبور ندارند در هنگام تأييد رمز عبور محدود مي كند. اين مي تواند يك خطر امنيتي بزرگ باشد و تقريباً هرگز نبايد آن را تغيير دهيد.
ChallengeResponseAuthentication: اين خط يك نوع تأييد پاسخ-چالش را فعال يا غيرفعال مي كند كه مي توان از طريق PAM پيكربندي كرد. اين بحث خارج از محدوده اين راهنما است.

نمايش
X11Forwarding yes: اين گزينه به شما امكان مي دهد تا واسط هاي گرافيكي X11كاربر را براي برنامه هاي روي سرور به دستگاه مشتري منتقل كنيد. اين بدان معني است كه مي توانيد يك برنامه گرافيكي را روي يك سرور شروع كنيد، و با آن در سيستم مشتري تعامل داشته باشيد. مشتري بايد يك سيستم X در دسترس داشته باشد. مي توانيد اين موارد را در OS X نصب كنيد و هر لينوكس دسكتاپي اين قابليت را دارد.
X11DisplayOffset 10: اين يك آفست براي شماره نمايشگر sshd براي ارسال X11 است. اين افست اجازه مي دهد تا SSH باعث ايجاد پنجره هاي X11 شود تا از درگيري با سرور X موجود جلوگيري كند.
PrintMotd no: اين گزينه مشخص مي كند كه Daemon SSH نبايد پيام فايل روز را بخواند و نمايش دهد. اين گاهي اوقات توسط خود shell خوانده مي شود ، بنابراين ممكن است شما نياز به تغيير پرونده هاي ترجيحي shell خود نيز داشته باشيد.
PrintLastLog yes: اين به Daemon SSH مي گويد تا اطلاعات آخرين باري كه وارد سيستم شديد را چاپ كند.

اتصال و محيط
TCPKeepAlive yes: مشخص مي كند كه آيا پيام هاي نگهدارنده TCP به دستگاه مشتري ارسال مي شوند. اين مي تواند به سرور در هنگام بروز مشكل و قطع اتصال كمك كند. اگر اين گزينه غيرفعال باشد ، در صورت بروز مشكل در شبكه ، اتصالات از بين نمي روند ، كه مي تواند خوب باشد ، اما همچنين بدان معني است كه ارتباط كاربران مي تواند از هم قطع شود و همچنان به قفل كردن منابع ادامه دهند.
AcceptEnv LANG LC_ *: اين گزينه به شما امكان مي دهد متغيرهاي محيطي خاصي را از دستگاه مشتري قبول كنيد. در اين مثال خاص ، ما متغيرهاي زبان را مي پذيريم ، كه مي تواند به بخش shell كمك كند كه به درستي براي مشتري نمايش داده شود.
Subsystem sftp /usr/lib/openssh/sftp-serve: زير سيستم هاي خارجي را كه مي توان با SSH استفاده كرد پيكربندي مي كند. در اين مثال سرور SFTP و مسير اجراي آن مشخص شده است.
UsePAM yes: اين مشخص مي كند كه PAM (ماژول هاي تأييد قابل اتصال) براي كمك به تأييد اعتبار كاربران در دسترس خواهد بود.
اين امر به گزينه هاي پيش فرض فعال شده دستگاه Ubuntu 12.04 ما احتياج دارد. در مرحله بعدي، بگذاريد درباره برخي گزينه هاي ديگر صحبت كنيم كه ممكن است براي تنظيم يا تغيير براي شما مفيد باشد.
ساير گزينه هاي SSHD
چندين گزينه ديگر وجود دارد كه مي توانيم براي Daemon SSH خود تعيين كنيم. برخي از اين موارد ممكن است فوراً براي شما مفيد باشد ، در حالي كه برخي ديگر فقط در شرايط خاص مي توانند مفيد باشند. ما در اينجا به همه موارد نمي پردازيم ، اما برخي از موارد مفيد را مرور خواهيم كرد.
فيلتر كاربري و گروهي
برخي گزينه ها به شما امكان مي دهند دقيقاً كنترل كنيد كه كاربران از چه طريق امكان ورود به سيستم از طريق SSH را دارند. اين گزينه ها بايد به صورت انحصاري در نظر گرفته شوند. به عنوان مثال ، گزينه AllowUsers به ​​اين معني است كه از دسترسي ساير كاربران جلوگيري مي شود.
AllowGroups: اين گزينه به شما امكان مي دهد نام گروه ها را روي سرور مشخص كنيد. فقط كاربراني كه عضو يكي از اين گروه ها هستند ، مي توانند وارد سيستم شوند. اين يك ليست سفيد از گروه هايي ايجاد مي كند كه بايد دسترسي داشته باشند.
AllowUsers: مشابه گزينه فوق است ، اما كاربران خاصي را كه مجاز به ورود به سيستم هستند مشخص مي كند. هر كاربر كه در اين ليست نباشد قادر به ورود به سيستم نخواهد بود. و به عنوان يك ليست سفيد كاربري كار مي كند.
DenyGroups: اين گزينه يك ليست سياه از گروههايي را ايجاد مي كند كه نبايد اجازه ورود به سيستم را داشته باشند. كاربراني كه به اين گروه ها تعلق دارند ، اجازه دسترسي ندارند.
DenyUsers: اين يك ليست سياه براي كاربران است. به طور خاص مشخص مي كند كه به كدام يك از كاربران امكان ورود به سيستم از طريق SSH داده نمي شود.
علاوه بر اين ، برخي از گزينه هاي محدود كننده ديگر نيز در دسترس هستند. اينها را مي توان در رابطه با هر يك از گزينه هاي فوق استفاده كرد:
Match: اين گزينه امكان كنترل بسيار دقيق تر بر روي افرادي را دارد كه تحت چه شرايطي مي توانند تأييد كنند. اين مجموعه گزينه هاي متفاوتي را مشخص مي كند كه هنگام اتصال يك كاربر يا گروه خاص بايد از آنها استفاده شود. ما بعداً با جزئيات بيشتري در مورد اين موضوع بحث خواهيم كرد.
RevokenKeys: اين به شما امكان مي دهد ليستي از كليدهاي عمومي ابطال شده را مشخص كنيد. اين كار از ورود كليدهاي ذكر شده براي ورود به سيستم جلوگيري مي كند.
گزينه هاي متفرقه
گزينه هايي وجود دارد كه مي توانيم از آنها استفاده كنيم تا پيكربندي كنيم چه ترافيك شبكه اي را Daemon SSH به آن توجه خواهد كرد:
AddressFamily: اين گزينه مشخص مي كند كه چه نوع آدرس هايي را انتخاب مي كنيد كه اتصالات آن ها را بپذيريد. به طور پيش فرض ، مقدار “هر” است ، اما مي توانيد “inet” را براي آدرسهاي IPv4 يا “inet6” را براي آدرسهاي IPv6 قرار دهيد.
ListenAddress: اين گزينه به شما امكان مي دهد تا به Daemon SSH بگوييد كه در يك آدرس و پورت خاص گوش كند. Daemon به طور پيش فرض تمام آدرسهايي را كه براي اين دستگاه پيكربندي شده است گوش مي دهد.
انواع ديگر گزينه هايي كه در دسترس هستند عبارتند از مواردي كه براي تنظيم تأييد هويت مبتني بر گواهينامه ، گزينه هاي محدود كننده اتصال مانند ClientAliveCountMax و ClientAliveInterval و گزينه هايي مانند ChrootDirectory استفاده مي شود ، كه مي تواند براي قفل كردن ورود به سيستم كاربر به يك فضاي خاص و محيط از پيش تنظيم شده Chroot استفاده شود. .
محدود كردن ورود به سيستم كاربر
ما در بالا به برخي از ابزارهايي كه شما بايد دسترسي كاربران و گروه ها را محدود كنيد ، اشاره كرديم. بياييد كمي با جزئيات بيشتر بحث كنيم.
ابتدايي ترين دستور براي استفاده از اين موارد چيزي شبيه به زير است:
AllowUsers demouser fakeuser madeupuser

همانطور كه مشاهده مي كنيد، ما مي توانيم كاربرهاي مختلفي را از هم جدا كنيم كه در هر يك از اين دستورالعمل ها قرار دارند.
ما همچنين مي توانيم از wild cards استفاده كرده و ورودي ها را نفي كنيم. به عنوان مثال ، اگر مي خواستيم به همه كاربرها به جز “جان” اجازه ورود به سيستم بدهيم ، مي توانيم چيزي شبيه به اين را امتحان كنيم:
AllowUsers * !john
اين نمونه خاص احتمالاً با خط DenyUsers بهتر بيان مي شود:

DenyUsers john
ما همچنين مي توانيم از علامت ? براي مطابقت دقيق با يك حرف استفاده كنيم، به عنوان مثال ميتوانيم از دستور زير استفاده كنيم:

AllowUsers ?im

اين كار اجازه مي دهد تا از حساب هايي مانند “tim” ، “jim” يا “vim” وارد شويد.
با اين حال ما مي توانيم مشخص تر شويم. در هر دو مشخصات كاربر ، مي توانيم از فرم كاربر user@hostname استفاده كنيم تا ورود به مكانهاي منبع خاص مشتري محدود شود. به عنوان مثال ، شما مي توانيد چيزي مانند دستور زير را تايپ كنيد:
AllowUsers demouser@host1.com fakeuser

اين كار باعث مي شود “fakeuser” از هرجاي ديگري وارد سيستم شود ، اما فقط به “demouser” اجازه مي دهد تا از يك هاست مشخص وارد شود.
ما همچنين مي توانيم دسترسي را به صورت ميزبان به ميزبان در خارج از فايل sshd_config از طريق بسته هاي TCP محدود كنيم. اين از طريق فايل هاي /etc/hosts.allow و /etc/hosts.deny پيكربندي ميشود.
به عنوان مثال ، ما مي توانيم دسترسي را به طور خاص بر اساس ترافيك SSH با اضافه كردن خط هايي مانند زير به فايل hosts.allow محدود كنيم:
sshd: .example.com

با فرض اينكه ما در فايل hosts.deny يك خط همراه داريم كه به صورت زير است:
sshd: ALL
اين كار ورود به سيستم را فقط براي افرادي كه از example.com يا يك زير دامنه وارد مي شوند محدود مي كند.
استفاده از گزينه هاي مطابقت براي اضافه كردن استثنائات
ما مي توانيم با استفاده از گزينه هاي “match” گزينه هاي خود را حتي بيشتر كنترل كنيم. گزينه هاي مطابقت با مشخص كردن الگوي معياري كار ميكنند كه تصميم مي گيرند كه گزينه هاي زير استفاده خواهد شد يا خير.
ما يك مطابقت را با استفاده از گزينه Match و سپس مشخص كردن جفت هاي معياري با ارزش كليدي شروع مي كنيم. كليدهاي موجود “كاربر” ، “گروه” ، “ميزبان” و “آدرس” هستند. ما مي توانيم معيارها را با فاصله جدا كنيم و الگوها (user1، user2) را با كاما از هم جدا كنيم. ما همچنين مي توانيم از wild cards و خنثي سازي استفاده كنيم:
Match User !demouser,!fakeuser Group sshusers Host *.example.com

خط بالا فقط در صورتي مطابقت دارد كه كاربر demouser يا fakeuser نباشد ، در صورتي كه كاربر عضو گروه sshusers باشد و در صورت اتصال آن از example.com يا يك زير دامنه استفاده كند.
معيارهاي “آدرس” مي توانند از نماد net Cask CIDR استفاده كنند.
گزينه هايي كه از مشخصات مطابقت پيروي مي كنند بصورت مشروط اعمال مي شوند. دامنه اين گزينه هاي شرطي تا پايان پرونده يا مشخصات مطابقت بعدي است. به همين دليل توصيه مي شود مقادير پيش فرض خود را در بالاي فايل قرار دهيد و استثنائات خود را در انتهاي آن قرار دهيد.

به دليل اين بلوك شرطي ، گزينه هاي موجود تحت مطابقت اغلب بيان ميكنند كه فقط در انطباق فوق اعمال مي شوند. به عنوان مثال ، شرط فوق مي تواند بلوكي مانند اين تحت آن داشته باشد:
Match User !demouser,!fakeuser Group sshusers Host *.example.com
AuthorizedKeysFile /sshusers/keys/%u
PasswordAuthentication yes
X11Forwarding
X11DisplayOffset 15

شما فقط هنگام برخورد با مشخصات انطباق به زير مجموعه گزينه ها دسترسي داريد. براي ديدن ليست كامل ، صفحه sshd_config را ببينيد:
man sshd_config

براي ديدن ليست گزينه هاي موجود ، بخش “مطابقت” را جستجو كنيد.
نتيجه
همانطور كه مشاهده مي كنيد ، مي توانيد مقادير زيادي را در سمت سرور SSH تنظيم كنيد كه در توانايي كاربران براي ورود به سيستم و كيفيت تجربه آنها تأثير مي گذارد. اطمينان حاصل كنيد كه تغييرات خود را قبل از اجراي مقياس گسترده با دقت آزمايش كنيد تا خطاها را پيدا كنيد و اطمينان حاصل كنيد كه محدوديت هاي شما به طور تصادفي روي تعداد كمي از كاربران يا تعداد خيلي زيادي تأثير نمگذارد.
آشنايي با فايل / etc / ssh / sshd_config اولين قدم بزرگ در جهت درك چگونگي كنترل دقيق دسترسي به سرور شماست. و يك مهارت مهم براي هر مدير سيستم لينوكس ميباشد.

 

از اين لينك ها زير مي توانيد آمورش هاي بيشتري براي لينوكس پيدا كنيد :

نحوه نصب Docker Compose در Debian 10

چگونه مي توان با كتابخانه (library) درخواست ها در پايتون شروع به كار كرد

نحوه اجراي صفحه گذاري در MySQL با PHP روي اوبونتو 18.04

نحوه تنظيم پلتفرم Eclipse Theia Cloud IDE در CentOS 7

بسته بندي برنامه Laravel 6 براي توسعه با Docker Compose در اوبونتو 18.04

نحوه بهينه سازي درخواست هاي MySQL با ذخيره سازي غير مجاز مي باشدSQL در اوبونتو 16.04

نحوه استفاده از Ansible براي نصب و راه اندازي وردپرس با LAMP در اوبونتو 18.04

چگونه مي توان پلتفرم كد سرور Cloud IDE را در اوبونتو 18.04 تنظيم كرد (شروع سريع)

چگونه مي توان از رول هاي ansible براي انتزاع محيط زيرساختي خود استفاده كرد

نحوه پيكربندي يك خوشه Galera با MySQL در سرورهاي اوبونتو 18.04

نحوه تهيه نسخه پشتيبان و بازيابي يك خوشه Kubernetes در vpsgol با استفاده از Velero

نحوه نصب و استفاده از PostgreSQL در CentOS 7

چگونه مي توان پلتفرم Eclipse Theia Cloud IDE را روي اوبونتو 18.4 تنظيم كرد

نحوه استقرار و مديريت DNS با استفاده از DNSControl در Debian 10

چگونه مي توان پلتفرم Cloud IDE كد سرور را روي CentOS 7 تنظيم كرد

نحوه نصب Apache Kafka در Debian 10

نحوه نصب وردپرس با OpenLiteSpeed ​​در اوبونتو 18.04


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۲۰ بهمن ۱۳۹۸ساعت: ۰۲:۲۸:۳۸ توسط:server موضوع:

نحوه نصب وردپرس با OpenLiteSpeed ​​در اوبونتو 18.04

مقدمه
WordPress يك سيستم مديريت محتواي منبع باز (CMS) است. WordPress محبوب ترين CMS در جهان است كه به شما امكان مي دهد تا وبلاگ ها و وب سايت هايي را فراتر از پايگاه داده MySQL تنظيم كنيد ، از PHP براي اجراي اسكريپت ها و پردازش محتواي پويا استفاده كنيد.
OpenLiteSpeed ​​ يك سرور وب منبع باز بهينه شده است كه مي توانيد از آن براي مديريت و سرويس وب سايت ها استفاده كنيد. OpenLiteSpeed ​​ داراي برخي ويژگي هاي مفيد است كه آن را به گزينه اي مناسب براي بسياري از نصب ها تبديل مي كند: قوانين بازنويسي سازگار با Apache، يك رابط كاربري مديريت مبتني بر وب و پردازش PHP سفارشي براي بهينه سازي سرور.
اين راهنما روند نصب و تنظيم يك نمونه وردپرس را در Ubuntu 18.04 با استفاده از وب سرور OpenLiteSpeed ​​طي خواهد كرد. از آنجا كه هم WordPress و OpenLiteSpeed ​​مي توانند از طريق يك مرورگر وب مديريت شوند ، اين پيكربندي براي كساني كه دسترسي منظم به بخش SSH ندارند يا كساني كه ممكن است احساس راحتي مديريت يك سرور وب از طريق خط فرمان را نداشته باشند ، ايده آل است.
پيش نيازها
قبل از شروع اين راهنما به موارد زير نياز خواهيد داشت:
يك سرور كه Ubuntu 18.04 را اجرا ميكند با يك ادمين، يك كاربر غير روت و فايروال با استفاده از ufw پيكربندي كرده است. براي تنظيم اين محيط ، آموزش اوليه سرور ما را براي اوبونتو 18.04 دنبال كنيد.
OpenLiteSpeed ​​ بر روي سرور شما نصب شده است. براي راهنمايي در مورد نصب و پيكربندي OpenLiteSpeed ​​به راهنماي ما در مورد نحوه نصب OpenLiteSpeed ​​وب سرور در اوبونتو 18.04 مراجعه كنيد.
MySQL بر روي سرور شما نصب شده است. براي تنظيم اين روش نحوه نصب MySQL را در اوبونتو 18.04 دنبال كنيد.
مرحله 1 – ايجاد يك بانك اطلاعاتي و كاربر بانك اطلاعاتي براي وردپرس
WordPress از MySQL براي مديريت و ذخيره اطلاعات سايت و كاربر استفاده مي كند. شما قبلاً MySQL را نصب كرده ايد ، اما به عنوان يك مرحله مقدماتي به ايجاد يك بانك اطلاعاتي و يك كاربر براي استفاده از وردپرس نياز داريد.
براي شروع كار ، با استفاده از SSH به سرور خود وصل شويد:
ssh sammy @ your_server_IP
سپس وارد حساب ريشه MySQL شويد:

sudo mysql

توجه: اگر مرحله 3 را در پيش نياز آموزش MySQL به پايان رسانده ايد و كاربر root MySQL را براي تأييد اعتبار با افزونه mysql_native_password پيكربندي كرده ايد ، بايد دستور زير را وارد كنيد:
mysql -u root -p

سپس در صورت درخواست رمزعبور كاربر اصلي خود را وارد كنيد.
از تبليغ MySQL ، يك پايگاه داده با دستور زير ايجاد كنيد. در اينجا ، ما اين ديتابيس را براي سادگي وردپرس نام مي گذاريم ، اما شما مي توانيد آن را هرچه دوست داريد نامگذاري كنيد:
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
سپس ، يك كاربر ايجاد كرده و به آن امتيازات بانك اطلاعاتي كه اخيراً ايجاد كرده ايد بدهيد. باز هم ، مي توانيد هر نامي را به اين كاربر بدهيد ، اما براي سادگي ما آن را wordpressuser مي ناميم. همچنين ، حتماً گذرواژه را به يك رمز عبور قوي با انتخاب خود تغيير دهيد:
GRANT ALL PRIVILEGES ON wordpress.* TO ‘wordpressuser’@’localhost’ IDENTIFIED BY ‘password’;
سپس ، PRUSILEGES FLUSH را اجرا كنيد كه به سرور مي گويد جداول اعطاي امتياز را مجدد لود كند و اعمال تغييرات جديد خود را اجرا كنيد ،:
FLUSH PRIVILEGES;
پس از آن ، مي توانيد اعلان MySQL را ببنديد:
exit
اكنون نصب MySQL خود براي كار با WordPress را انجام داده ايد. در مرحله بعد چند افزونه PHP نصب خواهيم كرد.

مرحله 2 – نصب افزونه هاي اضافي PHP
در آموزش پيش نياز OpenLiteSpeed ​​، بسته lsphp73 را نصب كرديد. اين مجموعه اي از PHP بهينه شده براي OpenLiteSpeed ​​ است كه از LiteSpeed ​​SAPI براي ارتباط با برنامه هاي خارجي استفاده مي كند. بسته به نياز شما ، وردپرس ممكن است نياز به ساير افزونه هاي PHP داشته باشد تا بتواند به دلخواه عمل كند.

براي نصب برخي افزونه هاي PHP كه معمولاً با WordPress استفاده مي شود ، دستور زير را اجرا كنيد:
sudo apt install lsphp73-common lsphp73-curl lsphp73-imagick lsphp73-imap lsphp73-json lsphp73-memcached lsphp73-mysql lsphp73-opcache lsphp73-redis
توجه: بسته هاي اين دستور ممكن است تمام موارد استفاده را پوشش ندهد. براي يك ليست كامل از افزونه هاي PHP 7.3 موجود از مخزن LiteSpeed ​​كه در آموزش پيش نياز به سرور خود اضافه كرده ايد ، به Wiki LiteSpeed ​​مراجعه كنيد.
پس از اين ، مي توانيد به سمت دانلود و تنظيم وردپرس در سرور خود برويد.
مرحله 3 – دانلود وردپرس
اكنون كه نرم افزار سرور شما پيكربندي شده است ، مي توانيد WordPress را نصب و تنظيم كنيد. به ويژه به دلايل امنيتي ، هميشه توصيه مي شود كه آخرين نسخه وردپرس را مستقيماً از سايت خودشان دريافت كنيد.
به يك ديركتوري قابل نوشتار برويد و سپس نسخه فشرده شده را با تايپ كردن دستور زير دانلود كنيد:
cd /tmp
curl -O https://wordpress.org/latest.tar.gz
براي ايجاد ساختار دايركتوري وردپرس ، فايل فشرده شده را استخراج كنيد:
tar xzvf latest.tar.gz
ما اين پرونده ها را لحظه به لحظه به ريشه سند منتقل خواهيم كرد ، اما ابتدا چند فايل و فهرست را ايجاد خواهيم كرد كه نصب وردپرس به آنها بستگي دارد.
OpenLiteSpeed ​​ از فايل هاي .htaccess پشتيباني مي كند. اين براي اهداف ما مهم است ، از آنجا كه وردپرس
از فايلهاي .htaccess براي ايجاد و مديريت پرونده هاي ثابت استفاده مي كند.
يك فايل .htaccess ساختگي اضافه كنيد تا بعداً براي استفاده وردپرس در دسترس باشد:
touch /tmp/wordpress/.htaccess

سپس ، فايل پيكربندي نمونه را بر روي نام خانوادگي كه وردپرس ميخواند، كپي كنيد:
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
علاوه بر اين ، دايركتوري upgrade را ايجاد كنيد تا وردپرس هنگام تلاش براي انجام اين كار به تنهايي و به دنبال بروزرساني در نرم افزار خود ، به مشكلات مربوط به مجوزها برخورد نكند:

mkdir /tmp/wordpress/wp-content/upgrade
سپس كل محتواي فهرست را در روت سند خود كپي كنيد.OpenLiteSpeed ​​ با يك ميزبان مجازي پيش فرض به نام Example در ديركتوري / usr / local / lsws / قرار دارد. روت سند براي ميزبان مجازي Example زيرمجموعه html است:
sudo cp -a /tmp/wordpress/. /usr/local/lsws/Example/html/wordpress
توجه كنيد كه اين دستور شامل يك نقطه در انتهاي فهرست منبع است تا نشان دهد كه همه چيزهاي داخل ديركتوري بايد كپي شوند ، از جمله پرونده هاي مخفي (مانند پرونده .htaccess كه ايجاد كرديد):
با اين كار ، شما وردپرس را با موفقيت روي سرور وب خود نصب كرده ايد و برخي از مراحل اوليه تنظيمات را انجام داده ايد. در مرحله بعد ، ما تغييرات ديگري را در پيكربندي انجام خواهيم داد كه امتيازات وردپرس را براي عملكرد ايمن و دسترسي به بانك اطلاعاتي MySQL و حساب كاربري كه قبلاً ايجاد كرده ايد به شما مي دهد.
مرحله 4 – پيكربندي دايركتوري وردپرس
قبل از اينكه بتوانيم فرآيند راه اندازي مبتني بر وب را براي وردپرس طي كنيم ، بايد برخي موارد را در دايركتوري وردپرس خود تنظيم كنيم.
با دادن مالكيت كليه فايل هاي موجود در ديركتوري به كاربر nobody و گروه nogroup ، كه وب سرور OpenLiteSpeed ​​بصورت پيش فرض اجرا مي كند ، شروع كنيد. دستور chown زير به OpenLiteSpeed ​​امكان خواندن و نوشتن فايل ها در دايركتوري وردپرس را اعطا مي كند ، و اين امكان را براي سرويس دهي به وب سايت و انجام به روز رساني هاي خودكار فراهم مي كند:
sudo chown -R nobody:nogroup /usr/local/lsws/Example/html/wordpress
براي تنظيم مجوزهاي صحيح در دايركتوري ها و فايل هاي وردپرس ، دو دستور find اجرا كنيد:
sudo find /usr/local/lsws/Example/html/wordpress/ -type d -exec chmod 750 {} ;
sudo find /usr/local/lsws/Example/html/wordpress/ -type f -exec chmod 640 {} ;
اينها بايد مجوزهاي معقولي براي شروع باشد ، اگرچه برخي از افزونه ها و رويه ها ممكن است نياز به ترفندهاي اضافي داشته باشند.
پس از اين ، شما بايد تغييراتي در پرونده اصلي پيكربندي WordPress انجام دهيد.
با باز كردن فايل ، اولين هدف شما تنظيم برخي كليدهاي مخفي براي ايجاد امنيت براي نصب شما خواهد بود. WordPress يك مولد مطمئن براي اين مقادير فراهم مي كند به طوري كه ديگر نيازي به تلاش براي دستيابي به مقادير خوب از خودتان نيست. اينها فقط به صورت داخلي استفاده مي شود ، بنابراين به مقادير پيچيده و ايمن در اينجا آسيب نمي رساند.
براي گرفتن مقادير ايمن از مولد كليد مخفي WordPress ، تايپ كنيد:
curl -s https://api.wordpress.org/secret-key/1.1/salt/
شما به مقادير منحصر به فردي بر مي گرديد كه چيزي شبيه به اين است:

هشدار! مهم است كه هر بار درخواست مقادير منحصر به فرد كنيد. مقادير نشان داده شده در زير را كپي نكنيد!

خروجي
define(‘AUTH_KEY’, ‘1jl/vqfs define(‘SECURE_AUTH_KEY’, ‘E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3’);
define(‘LOGGED_IN_KEY’, ‘W(50,{W^,OPB%PB define(‘NONCE_KEY’, ‘ll,4UC)7ua+8سرور وب داده شده است كه در هر جا لازم است بنويسيم، مي توانيم به طور صريح روش سيستم فايل را به direct تنظيم كنيم. عدم تنظيم اين با تنظيمات فعلي ما منجر به اعلان وردپرس براي اعتبار FTP در هنگام برخي عملكردهاي خاص ميشود. اين تنظيمات مي تواند در زير تنظيمات اتصال ديتابيس يا هر جاي ديگر فايل اضافه شود: /var/www/wordpress/wp-config.php . . . define(‘DB_NAME’, ‘wordpress’); /** MySQL database username */ define(‘DB_USER’, ‘wordpressuser’); /** MySQL database password */ define(‘DB_PASSWORD’, ‘password’); . . . define(‘FS_METHOD’, ‘direct’); هنگامي كه كارتان تمام شد، فايل را ذخيره كنيد و ببنديد. در اين مرحله ، وردپرس كاملاً در سيستم شما پيكربندي نشده است ، زيرا هنوز لازم است قبل از شروع انتشار مطالب ، چند كار نهايي را اعمال كنيد. براي انجام اين كار ، ابتدا لازم است چند تغيير تنظيمات در نصب OpenLiteSpeed خود اعمال كنيد. مرحله 6 – پيكربندي OpenLiteSpeed در حال حاضر ، شما WordPress را در سرور Ubuntu خود نصب كرده ايد ، اما نصب OpenLiteSpeed ​​شما هنوز براي ارائه آن تنظيم نشده است. در اين مرحله ، ما به رابط اجرايي OpenLiteSpeed ​​دسترسي خواهيم داشت و چند تغيير در پيكربندي سرور شما ايجاد مي كنيم. در مرورگر وب مورد نظر خود، به رابط اداري OpenLiteSpeed ​​برويد. مي توانيد اين را با وارد كردن آدرس IP عمومي سرور خود يا نام دامنه مرتبط با آن ، و به دنبال آن: 7080 در نوار آدرس مرورگر خود بيابيد: https: // server_domain_or_IP: 7080 در آنجا به شما يك صفحه ورود به سيستم ارائه مي شود. نام كاربري و رمز عبوري را كه در آموزش پيش نياز OpenLiteSpeed ​​تعريف كرده ايد وارد كنيد: از كنسول OpenLiteSpeed ​​، در منوي نوار كناري سمت چپ ، بر روي تنظيمات سرور كليك كنيد. سپس به سربرگ External App برويد ، رديف برنامه LiteSpeed ​​SAPI را پيدا كنيد و بر روي دكمه Edit آن كليك كنيد: به ياد بياوريد كه در پيش نياز آموزش OpenLiteSpeed ​​، بسته lsphp73 را نصب كرديد ، تلفيقي از PHP بهينه سازي شده براي كار با OpenLiteSpeed ​​از طريق LiteSpeed ​​SAPI. با اين حال ، تنظيمات پيش فرض در صفحه External App به lsphp اشاره دارد نه lsphp73. به همين دليل ، نصب OpenLiteSpeed ​​شما قادر به اجراي صحيح اسكريپت هاي PHP نيست. براي تصحيح اين امر ، قسمت Name را به lsphp73 تغيير دهيد ، قسمت آدرس را به uds: //tmp/lshttpd/lsphp73.sock تغيير دهيد و قسمت Command را به SERVER_ROOT / lsphp73 / bin / lsphp: پس از ايجاد آن تغييرات ، روي آيكون save در گوشه سمت راست بالاي كادر LiteSpeed ​​SAPI App كليك كنيد. سپس، در منوي سمت چپ روي Virtual Hosts كليك كنيد. در صفحه Virtual Hosts ميزبان مجازي مورد نظر خود را پيدا كنيد و بر روي نماد View آن كليك كنيد. در اينجا ، ما از هاست مجازي مثال پيش فرض استفاده خواهيم كرد: به سربرگ General هاست مجازي برويد. در آنجا بخش General را پيدا كنيد و روي دكمه edit آن كليك كنيد: OpenLiteSpeed ​​ براي ارائه خدمات به دنبال محتويات Document Root ميگردد. از آنجا كه تمام مطالب و فايل هاي وردپرس شما در ديركتوري وردپرس كه قبلا ايجاد شده ذخيره مي شوند، قسمت Document Root را به روز كنيد تا به آن ديركتوري راهنمايي كنيد. براي انجام اين كار ، تنها كاري كه بايد انجام دهيد اضافه كردن وردپرس / به پايان مقدار پيش فرض است: براي ذخيره اين تغيير، روي آيكون save كليك كنيد. در مرحله بعد ، بايد پرونده هاي index.php را فعال كنيد تا از آنها براي پردازش درخواست هايي كه توسط پرونده هاي استاتيك مديريت نمي شوند ، استفاده شود. با اين كار منطق اصلي وردپرس به درستي كار مي كند. در حالي كه هنوز در تب General هستيد، براي يافتن بخش Index Files به پايين برويد و بر روي نماد edit آن كليك كنيد: در قسمت Index Files ، index.html را با index.php پيش ببريد. با قرار دادن index.php قبل از index.html ، به فايلهاي شاخص PHP اجازه مي دهيد كه اولويت داشته باشند. پس از به روزرساني اين قسمت ، مانند عكس خواهد بود قبل از ادامه ، روي آيكون save كليك كنيد. در مرحله بعد ، به سربرگ Rewrite هاست مجازي برويد. بخش Rewrite Control را پيدا كنيد و دكمه ويرايش را فشار دهيد: با كليك بر روي دكمه هاي شعاعي مربوطه ، هر دو گزينه Enable Rewrite و Auto Load را از گزينه هاي .htaccess روي Yes بگذاريد. پيكربندي دستورالعمل هاي بازنويسي در اين روش به شما امكان مي دهد از نصب مجدد لينك ها در نصب وردپرس خود استفاده كنيد: بعد از انجام تغييرات ، روي ذخيره كليك كنيد. هاست مجازي پيش فرض كه همراه با نصب OpenLiteSpeed ​​است شامل برخي از نواحي محافظت شده با رمز عبور براي نمايش ويژگي هاي تأييد اعتبار كاربر OpenLiteSpeed. است. WordPress شامل مكانيزم هاي تأييد اعتبار خاص خود است و ما از هويت مبتني بر پرونده موجود در OpenLiteSpeed ​​استفاده نخواهيم كرد. براي به حداقل رساندن بخش هاي پيكربندي انحرافي فعال در نصب وردپرس ما بايد از اين موارد خلاص شويم. ابتدا بر روي زبانه Security كليك كرده و سپس بر روي دكمه Delete كنار SampleProtectedArea در جدول Realms List كليك كنيد: از شما خواسته مي شود حذف را تأييد كنيد. براي ادامه بر روي delete كليك كنيد در مرحله بعد ، روي سربرگ Context كليك كنيد. در Context List ، محتواي /protected/ را كه با قلمرو امنيتي كه اخيراً حذف كرديد مرتبط بود را حذف كنيد: مجدداً بايد با كليك كردن روي delete ، حذف را تأييد كنيد. شما مي توانيد با اطمينان با استفاده از همان تكنيك ، همه متن هاي ديگر را پاك كنيد ، زيرا ما به آنها احتياج نخواهيم داشت. ما به طور خاص محتواي /protected/ متن را حذف كرديم زيرا در غير اين صورت خطايي به دليل حذف قلمرو امنيت مرتبط با آن ايجاد مي شود (كه ما فقط در تب Security حذف كرده ايم.) پس از آن ، در گوشه سمت راست بالاي كنسول OpenLiteSpeed ​​، آيكون Graceful Restart را فشار دهيد. با اين كار سرور OpenLiteSpeed ​​ دوباره راه اندازي مي شود و باعث مي شود تغييراتي كه ايجاد كرده ايد به مرحله اجرا برسد: با اين كار ، سرور OpenLiteSpe شما كاملاً پيكربندي شده است. اكنون آماده تنظيم وردپرس در مرورگر خود هستيد. مرحله 7 – تكميل نصب از طريق واسط وردپرس اكنون كه پيكربندي سرور كامل شد ، مي توانيم نصب را از طريق رابط وب انجام دهيم. در مرورگر وب خود ، به نام دامنه سرور يا آدرس IP عمومي خود برويد: http: // server_domain_or_IP زباني را كه مي خواهيد استفاده كنيد انتخاب كنيد: در مرحله بعد به صفحه اصلي تنظيمات خواهيد رسيد. يك نام براي سايت وردپرس خود انتخاب كنيد و يك نام كاربري را انتخاب كنيد (توصيه مي شود براي اهداف امنيتي چيزي مانند “ادمين” انتخاب نكنيد). رمزعبور قوي به صورت خودكار ايجاد مي شود. اين رمز عبور را ذخيره كنيد يا يك رمزعبور قوي ديگر را انتخاب كنيد. آدرس ايميل خود را وارد كنيد و انتخاب كنيد آيا مي خواهيد موتورهاي جستجو را از ايندكس كردن سايت خود منع كنيد: پس از آماده شدن ، روي دكمه Install WordPress كليك كنيد. شما به صفحه اي منتهي مي شويد كه وارد سيستم شويد: پس از ورود به سيستم ، شما به داشبورد مديريت وردپرس منتقل مي شويد: از داشبورد ، مي توانيد تغييراتي در تم سايت خود و انتشار محتواي آن ايجاد كنيد. نتيجه با تكميل اين راهنما ، يك نمونه وردپرس را روي سرور اوبونتو 18.04 كه OpenLiteSpeed ​​را اجرا مي كند ، نصب و پيكربندي كرديد. برخي مراحل متداول بعدي بايد براي تنظيمات پيوند مجدد پست هاي شما انتخاب شوند (كه مي توانيد در Settings > Permalinksپيدا كنيد) يا انتخاب يك تم جديد (در Appearance > Themes). اگر اين اولين باري است كه از WordPress استفاده مي كنيد ، كمي رابط را جستجو كنيد تا با CMS جديد خود آشنا شويد.
براي افزايش امنيت سايت جديد وردپرس خود ، توصيه مي كنيم آن را پيكربندي كنيد تا با SSL كار كند تا بتواند از طريق HTTPS محتوا را ارائه دهد. براي نصب LetsEncrypt و تنظيم اين آموزش ، از اسناد OpenLiteSpeed ​​بازديد كنيد.

 

از اين لينك ها زير مي توانيد آمورش هاي بيشتري براي لينوكس پيدا كنيد :

نحوه نصب Docker Compose در Debian 10

چگونه مي توان با كتابخانه (library) درخواست ها در پايتون شروع به كار كرد

نحوه اجراي صفحه گذاري در MySQL با PHP روي اوبونتو 18.04

نحوه تنظيم پلتفرم Eclipse Theia Cloud IDE در CentOS 7

بسته بندي برنامه Laravel 6 براي توسعه با Docker Compose در اوبونتو 18.04

نحوه بهينه سازي درخواست هاي MySQL با ذخيره سازي غير مجاز مي باشدSQL در اوبونتو 16.04

نحوه استفاده از Ansible براي نصب و راه اندازي وردپرس با LAMP در اوبونتو 18.04

چگونه مي توان پلتفرم كد سرور Cloud IDE را در اوبونتو 18.04 تنظيم كرد (شروع سريع)

چگونه مي توان از رول هاي ansible براي انتزاع محيط زيرساختي خود استفاده كرد

نحوه پيكربندي يك خوشه Galera با MySQL در سرورهاي اوبونتو 18.04

نحوه تهيه نسخه پشتيبان و بازيابي يك خوشه Kubernetes در vpsgol با استفاده از Velero

نحوه نصب و استفاده از PostgreSQL در CentOS 7

چگونه مي توان پلتفرم Eclipse Theia Cloud IDE را روي اوبونتو 18.4 تنظيم كرد

نحوه استقرار و مديريت DNS با استفاده از DNSControl در Debian 10

چگونه مي توان پلتفرم Cloud IDE كد سرور را روي CentOS 7 تنظيم كرد

نحوه نصب Apache Kafka در Debian 10

چگونه پيكربندي SSH Daemon خود را بر روي يك VPS لينوكس تنظيم كنيد


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۲۰ بهمن ۱۳۹۸ساعت: ۰۲:۲۷:۴۷ توسط:server موضوع:

نحوه نصب Apache Kafka در Debian 10

Apache Kafka يك كارگزار پيام توزيع شده محبوب است كه براي مديريت حجم زيادي از داده هاي زمان-واقعي طراحي شده است. خوشه كافكا بسيار مقياس پذير و داراي تحمل خطا است و همچنين نسبت به ساير واسطه هاي پيام مانند ActiveMQ و RabbitMQ از توان بسيار بالاتري برخوردار است. اگرچه معمولاً از آن به عنوان يك سيستم پيام رسان انتشار / اشتراك استفاده مي شود ، بسياري از سازمان ها نيز از آن براي جمع آوري ورود به سيستم استفاده مي كنند زيرا فضاي ذخيره سازي مداوم را براي پيام هاي منتشر شده ارائه مي دهد.
يك سيستم پيام رساني انتشار / اشتراك به يك يا چند توليد كننده اجازه مي دهد پيام ها را بدون در نظر گرفتن تعداد مصرف كنندگان يا نحوه پردازش پيام ها منتشر كنند. متقاضيان داراي اشتراك در مورد به روزرساني ها و ايجاد پيام هاي جديد بطور خودكار مطلع مي شوند. اين سيستم نسبت به سيستم هايي كه مشتري ها بطور دوره اي در مورد آن نظرسنجي مي شوند تا مشخص شود كه آيا پيام هاي جديد در دسترس است يا خير، بسيار كارآمدتر و مقياس پذير است.
در اين آموزش ، Apache Kafka 2.1.1 را به صورت ايمن روي سرور Debian 10 نصب و پيكربندي مي كنيد ، سپس با توليد و استفاده از يك پيام Hello World راه اندازي خود را تست مي كنيد. سپس مي توانيد KafkaT را به صورت اختياري براي نظارت بر كافكا نصب كنيد و يك خوشه چند گره كافكا را تنظيم كنيد.
پيش نيازها
براي دنبال كردن ، به موارد زير نياز خواهيد داشت:
يك سرور Debian 10 با حداقل 4 گيگابايت رم و يك كاربر غير ريشه با امتيازات سودو. در صورتي كه كاربر غير ريشه تنظيم نكرده ايد، مراحل ذكر شده در راهنماي راه اندازي سرور اوليه براي Debian 10 را دنبال كنيد.
OpenJDK 11 روي سرور شما نصب شده است. براي نصب اين نسخه ، دستورالعمل هاي نصب Java را با Apt در Debian 10 در مورد نصب نسخه هاي خاص OpenJDK دنبال كنيد. كافكا در جاوا نوشته شده است ، بنابراين به JVM نياز دارد.
توجه: نصب هاي بدون رم 4 گيگابايتي ممكن است باعث شود سرويس كافكا از كار بيفتد، در حالي كه دستگاه مجازي جاوا (JVM) در هنگام راه اندازي يك استثناء Out Of Memory را به همراه داشته باشد.
مرحله 1 – ايجاد كاربر براي كافكا
از آنجا كه كافكا مي تواند درخواست ها را از طريق شبكه انجام دهد ، بهترين كار براي ايجاد يك كاربر اختصاصي براي آن است. در صورت به خطر افتادن سرور كافكا ، اين كار آسيب به دستگاه Debian شما را به حداقل مي رساند. در اين مرحله شما كاربر اختصاصي كافكا را ايجاد خواهيد كرد.
به عنوان كاربر sudo غير ريشه خود وارد شويد ، با دستور useradd كاربري بنام kafka بسازيد:
sudo useradd kafka -m
فلگ -m تضمين مي كند كه يك هوم ديركتوري براي كاربر ايجاد مي شود. اين هوم ديركتوري، / home / kafka ، بعداً به عنوان ديركتوري فضاي كاري شما براي اجراي دستورات عمل خواهد كرد.

رمز عبور را با استفاده از passwd تنظيم كنيد:
sudo passwd kafka
رمز عبوري را كه مي خواهيد براي اين كاربر استفاده كنيد وارد كنيد.
در مرحله بعدي ، كاربر كافكا را با دستور adduser به گروه سودو اضافه كنيد ، تا امتيازات لازم براي نصب وابستگي كافكا را داشته باشد:
sudo adduser kafka sudo
كاربر kafka شما اكنون آماده است. با استفاده از su وارد اين حساب شويد:
su -l kafka
اكنون كه كاربر اختصاصي كافكا را ايجاد كرده ايد ، مي توانيد به دانلود و استخراج باينري هاي كافكا برويد.
مرحله 2 – دانلود و استخراج باينري هاي كافكا
در اين مرحله، باينري هاي كافكا را در پوشه هاي اختصاصي در ديركتوري هوم كاربر kafka خود دانلود و اكستركت مي كنيد.
براي شروع ، دايركتوري را در / home / kafka با نام Downloads براي ذخيره دانلودهاي خود ايجاد كنيد:
mkdir ~/Downloads
در مرحله بعدي، حلقه را با استفاده از apt-get نصب كنيد تا بتوانيد فايلهاي از راه دور را دانلود كنيد:
sudo apt-get update && sudo apt-get install curl
در صورت درخواست، Y را تايپ كنيد تا دانلود curl را تأييد كنيد.
پس از نصب Curl ، از آن براي دانلود باينري هاي كافكا استفاده كنيد:
curl “https://archive.apache.org/dist/kafka/2.1.1/kafka_2.11-2.1.1.tgz” -o ~/Downloads/kafka.tgz
دايركتوري به نام kafka ايجاد كنيد و به اين فهرست تغيير دهيد. اين دايركتوري پايه نصب كافكا خواهد بود:
mkdir ~/kafka && cd ~/kafka
با استفاده از دستور tar ، آرشيوي را كه دانلود كرده ايد استخراج كنيد:
tar -xvzf ~/Downloads/kafka.tgz –strip 1
شما فلگ –strip 1 را براي اطمينان از استخراج محتواي بايگاني در ~ / kafka / و نه در ديركتوري ديگري در داخل آن ، مانند ~ / kafka / kafka_2.12-2.1.1 / مشخص كرده ايد.
اكنون كه باينري ها را با موفقيت دانلود و استخراج كرده ايد ، مي توانيد پيكربندي كافكا را انجام دهيد تا امكان حذف موضوع فراهم شود.
مرحله 3 – پيكربندي سرور كافكا
رفتار پيش فرض كافكا به ما اجازه نمي دهد تا عنوان، دسته بندي، گروه يا نام فيد را براي انتشار پيام ها حذف كنيم. براي تغيير اين، پرونده پيكربندي را ويرايش مي كنيد.
گزينه هاي پيكربندي كافكا در server.properties مشخص شده است. اين پرونده را با nano يا ويرايشگر مورد علاقه خود باز كنيد:
nano ~/kafka/config/server.properties
بياييد تنظيماتي را اضافه كنيم كه به ما امكان حذف عناوين كافكا را مي دهد. خط هايلايت شده زير را در زير فايل اضافه كنيد:
~/kafka/config/server.properties

group.initial.rebalance.delay.ms

delete.topic.enable = true

فايل را ذخيره كنيد و از nano خارج شويد. اكنون كه Kafka را پيكربندي كرده ايد، مي توانيد براي راه اندازي و فعال كردن كافكا در هنگام راه اندازي فايل هاي واحد systemed ايجاد كنيد.
مرحله 4 – ايجاد فايلهاي واحد سيستمي و راه اندازي سرور كافكا
در اين بخش فايلهاي واحد سيستمي براي سرويس كافكا ايجاد مي كنيد. اين به شما كمك مي كند تا خدمات متداول مانند شروع، متوقف كردن و راه اندازي مجدد كافكا را به روشي سازگار با ساير سرويس هاي لينوكس انجام دهيد.
ZooKeeper سرويسي است كه كافكا براي مديريت وضعيت و تنظيمات خوشه اي از آن استفاده مي كند. معمولاً در سيستم هاي توزيع شده به عنوان يك جزء اساسي مورد استفاده قرار مي گيرد. در اين آموزش از Zookeeper براي مديريت اين جنبه هاي كافكا استفاده خواهيد كرد. اگر تمايل داريد اطلاعات بيشتري در مورد آن بدانيد ، به مطالب ZooKeeper رسمي ما مراجعه كنيد.
ابتدا فايل واحد را براي zookeeper ايجاد كنيد:
sudo nano /etc/systemd/system/zookeeper.service
تعريف واحد زير را در پرونده وارد كنيد:
/etc/systemd/system/zookeeper.service
[Unit]
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
User=kafka
ExecStart=/home/kafka/kafka/bin/zookeeper-server-start.sh /home/kafka/kafka/config/zookeeper.properties
ExecStop=/home/kafka/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

بخش [Unit] مشخص مي كند كه ZooKeeper به شبكه نياز دارد و سيستم فايل قبل از شروع آن آماده است.
در بخش [Service] مشخص شده است كه systemd براي شروع و متوقف كردن سرويس بايد از پرونده هاي zookeeper-server-start.sh و zookeeper-server-stop.sh استفاده كند. همچنين مشخص مي كند در صورت خارج شدن غيرطبيعي ، ZooKeeper بايد به طور خودكار مجدداً راه اندازي شود.
در مرحله بعد، فايل سرويس systemd را براي kafka ايجاد كنيد:
sudo nano /etc/systemd/system/kafka.service

تعريف واحد زير را در پرونده وارد كنيد:
/etc/systemd/system/kafka.service
[Unit]
Requires=zookeeper.service
After=zookeeper.service

[Service]
Type=simple
User=kafka
ExecStart=/bin/sh -c ‘/home/kafka/kafka/bin/kafka-server-start.sh /home/kafka/kafka/config/server.properties > /home/kafka/kafka/kafka.log 2>&1’
ExecStop=/home/kafka/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

بخش [Unit] مشخص مي كند كه اين فايل واحد به zookeeper.service بستگي دارد. اين امر اطمينان مي دهد كه با شروع سرويس كافكا ، zookeeper به طور خودكار شروع مي شود.
در بخش [Service] مشخص شده است كه systemd بايد براي شروع و توقف سرويس از فايلهاي پوسته kafka-server-start.sh و kafka-server-stop.sh استفاده كند. همچنين مشخص مي كند در صورت خارج شدن غير عادي ، كافكا بايد به طور خودكار مجدداً راه اندازي شود.
اكنون كه واحدها تعريف شده اند ، كافكا را با دستور زير شروع كنيد:
sudo systemctl start kafka
براي اطمينان از شروع موفقيت آميز سرور ، گزارش هاي ژورنال را براي واحد kafka بررسي كنيد:
sudo journalctl -u kafka
خروجي مشابه موارد زير را مشاهده خواهيد كرد:
Mar 23 13:31:48 kafka systemd[1]: Started kafka.service.

اكنون يك سرور كافكا روي درگاه 9092 داريد كه درگاه پيش فرض براي كافكا است.
شما سرويس kafka را شروع كرده ايد ، اما اگر مي خواهيد سرور خود را دوباره راه اندازي كنيد ، هنوز به طور خودكار شروع نمي شود. براي فعال كردن kafka در بوت سرور ، اين سرور را اجرا كنيد:
sudo systemctl enable kafka
اكنون كه سرويس ها را شروع و فعال كرده ايد ، زمان آن رسيده است كه نصب را بررسي كنيد.
مرحله 5 – تست نصب
بياييد پيام Hello World را منتشر و استفاده كنيم تا مطمئن شويم كه سرور كافكا به درستي رفتار مي كند. انتشار پيام در كافكا به موارد زير بستگي دارد:
تهيه كننده، كه امكان انتشار سوابق و داده ها به عناوين را فراهم مي كند.
مصرف كننده، كه پيام ها و داده ها را از عناوين مي خواند.
ابتدا با تايپ كردن دستور زير عنواني به نام TutorialTopic ايجاد كنيد:
~/kafka/bin/kafka-topics.sh –create –zookeeper localhost:2181 –replication-factor 1 –partitions 1 –topic TutorialTopic
مي توانيد با استفاده از اسكريپت kafka-console-producer.sh يك تهيه كننده از خط فرمان ايجاد كنيد. اين تهيه كننده نام ميزبان ، پورت و نام عنوان سرور كافكا را به عنوان آرگومان ميشناسد.

رشته Hello, World را با تايپ كردن دستور زير براي عنوان TutorialTopic منتشر كنيد:
echo “Hello, World” | ~/kafka/bin/kafka-console-producer.sh –broker-list localhost:9092 –topic TutorialTopic > /dev/null
فلگ – broker-list ليست كارگزاران پيام براي ارسال پيام به آن ها كه در اين مورد localhost: 9092 است را تعيين مي كند. –topic موضوع را به عنوان TutorialTopic تعيين مي كند.
در مرحله بعد ، مي توانيد با استفاده از اسكريپت kafka-console-consumer.sh يك مصرف كننده كافكا ايجاد كنيد. انتظار مي رود نام ميزبان و پورت سرور ZooKeeper و نام تاپيك به عنوان آرگومان باشد.
دستور زير از پيام هاي TutorialTopic استفاده مي كند. توجه داشته باشيد كه از فلگ –from-beginning استفاده كنيد كه امكان استفاده از پيام هايي را كه قبل از شروع مصرف كننده منتشر شده است ، فراهم كند:
~/kafka/bin/kafka-console-consumer.sh –bootstrap-server `localhost:9092` –topic TutorialTopic –from-beginning
–bootstrap-server ليستي از ورودي ها به خوشه كافكا را ارائه مي دهد. در اين حالت ، از localhost استفاده مي كنيد: 9092.
Hello, World را در ترمينال خود مشاهده خواهيد كرد:
خروجي
Hello, World

اين اسكريپت همچنان اجرا مي شود و منتظر انتشار پيام هاي بيشتري براي موضوع خواهد بود. با خيال راحت يك ترمينال جديد باز كنيد و يك تهيه كننده راه اندازي كنيد تا چند پيام ديگر انتشار دهد. شما بايد همه آنها را در خروجي مصرف كننده ببينيد. اگر مي خواهيد در مورد نحوه استفاده از كافكا اطلاعات بيشتري كسب كنيد ، به اطلاعات موجود در لينك كافكا رسمي مراجعه كنيد.
وقتي آزمايش انجام شد ، CTRL + C را فشار دهيد تا اسكريپت مصرف كننده متوقف شود. اكنون كه نصب را آزمايش كرده ايد ، مي توانيد براي اجراي بهتر خوشه كافكا ، به نصب KafkaT برويد.
مرحله 6 – نصب KafkaT (اختياري)
KafkaT ابزاري از Airbnb است كه مشاهده جزئيات مربوط به خوشه كافكا و انجام برخي كارهاي اجرايي از خط فرمان را براي شما آسانتر مي كند. از آنجا كه اين يك Ruby gem است ، براي استفاده از آن به Ruby نياز خواهيد داشت. براي ساختن ساير gemها كه به آن بستگي دارد ، به بسته build-essential نيز احتياج خواهيد داشت. آنها را با استفاده از apt نصب كنيد:
sudo apt install ruby ruby-dev build-essential
اكنون مي توانيد KafkaT را با استفاده از دستور gem نصب كنيد:
sudo CFLAGS=-Wno-error=format-overflow gem install kafkat
گزينه CFLAGS = -Wno-error = format-overflow هشدارهاي فرمت بيش از حد را غيرفعال مي كند و براي gem ZooKeeper ، كه وابسته به KafkaT است ، لازم ميباشد.

KafkaT از .kafkatcfg به عنوان فايل پيكربندي براي تعيين نصب و ورود به فهرست سرورهاي كافكا استفاده مي كند. همچنين بايد داراي ورودي باشد كه KafkaT را به عنوان مثال ZooKeeper به شما نشان دهد.
يك فايل جديد با نام .kafkatcfg ايجاد كنيد:
nano ~/.kafkatcfg
خطوط زير را اضافه كنيد تا اطلاعات لازم در مورد سرور كافكا و مثال Zookeeper خود را مشخص كنيد:
~/.kafkatcfg
{
“kafka_path”: “~/kafka”,
“log_path”: “/tmp/kafka-logs”,
“zk_path”: “localhost:2181”
}

اكنون آماده استفاده از كافكا هستيد. براي شروع ، در اينجا نحوه استفاده از آن براي مشاهده جزئيات مربوط به همه پارتيشن هاي كافكا آورده شده است:
kafkat partitions
خروجي زير را مشاهده خواهيد كرد:
Output
Topic Partition Leader Replicas ISRs
TutorialTopic 0 0 [0] [0]
__consumer_offsets 0 0 [0] [0]

اين خروجي TutorialTopic و همچنين __consumer_offsets يك عنوان داخلي كه توسط كافكا براي ذخيره اطلاعات مربوط به مشتري استفاده مي شود ، نشان مي دهد. با خيال راحت مي توانيد خطوط شروع شده با __consumer_offsets را ناديده بگيريد.
براي كسب اطلاعات بيشتر در مورد KafkaT ، به منبع GitHub آن مراجعه كنيد.
اكنون كه KafkaT را نصب كرديد ، مي توانيد Kafka را به صورت اختياري بر روي خوشه اي از سرورهاي Debian 10 تنظيم كنيد تا يك خوشه چند گره ايجاد شود.
مرحله 7 – تنظيم يك خوشه چند گره (اختياري)
اگر مي خواهيد با استفاده از سرورهاي Debian 10 بيشتر ، يك خوشه چند كاره ايجاد كنيد، مرحله 1 ، مرحله 4 و مرحله 5 را روي هر يك از ماشين هاي جديد تكرار كنيد. علاوه بر اين، براي پرونده هاي ~ / kafka / config / server.properties تغييرات زير را انجام دهيد:

مقدار ويژگي broker.id را طوري تغيير دهيد كه در كل خوشه بي نظير باشد. اين ويژگي به طور منحصر به فرد هر سرور موجود در خوشه را مشخص مي كند و مي تواند هر رشته اي را به عنوان مقدار آن داشته باشد. به عنوان مثال ، “server1” ، “server2” و غيره ، به عنوان شناساگر مفيد خواهند بود.
مقدار ويژگي zookeeper.connect را به گونه اي تغيير دهيد كه همه گره ها به همان مثال ZooKeeper اشاره كنند. اين ويژگي آدرس نمونه ZooKeeper را مشخص مي كند و از قالب : پيروي مي كند. براي اين آموزش ، شما از your_first_server_IP: 2181 استفاده خواهيد كرد و your_first_server_IP را با آدرس IP سرور Debian 10 كه قبلاً تنظيم كرده ايد جايگزين كنيد.
اگر مي خواهيد چندين نمونه ZooKeeper براي خوشه خود داشته باشيد ، مقدار ويژگي zookeeper.connect در هر گره بايد يك رشته يكسان با كاما باشد كه در آن آدرس هاي IP و شماره پورت همه موارد ZooKeeper را نشان مي دهد.
توجه: اگر يك فايروال داريد كه روي سرور Debian 10 با نصب Zookeeper فعال شده است ، حتما پورت 2181 را باز كنيد تا اجازه ورود از ساير گره هاي خوشه را دريافت كنيد.
مرحله 8 – محدود كردن كاربر كافكا
اكنون كه تمام مراحل نصب انجام شده است ، مي توانيد امتيازات ادمين كاربر kafka را حذف كنيد. قبل از انجام اين كار ، مانند هر كاربر سودو غير ريشه خارج شويد و دوباره وارد سيستم شويد. اگر هنوز همان بخش شل را اجرا مي كنيد كه اين آموزش را با آن شروع كرده ايد ، فقط exit تايپ كنيد.
كاربر كافكا را از گروه سودو حذف كنيد:
sudo deluser kafka sudo
براي بهبود بيشتر امنيت سرور كافكا ، رمزعبور كاربر kafka را با استفاده از دستور passwd قفل كنيد. اين اطمينان مي دهد كه هيچ كس نمي تواند با استفاده از اين حساب به طور مستقيم وارد سرور شود:
sudo passwd kafka -l
در اين مرحله فقط كاربر root يا يك كاربر sudo مي توانند با وارد كردن دستور زير به عنوان kafka وارد شوند:
sudo su – kafka
در آينده اگر مي خواهيد قفل آن را باز كنيد ، از passwd با گزينه -u استفاده كنيد:
sudo passwd kafka -u
شما اكنون با موفقيت امتيازات ادمين كاربري kafka را محدود كرده ايد.
نتيجه
اكنون Apache Kafka به طور ايمن روي سرور Debian شما اجرا شده است. شما مي توانيد با ايجاد تهيه كنندگان و مصرف كنندگان از بين مشتري هاي كافكا ، كه براي اكثر زبان هاي برنامه نويسي در دسترس است، از آن در پروژه هاي خود استفاده كنيد. براي كسب اطلاعات بيشتر در مورد كافكا، همچنين مي توانيد با آپاچي كافكا مشورت كنيد.

 

از اين لينك ها زير مي توانيد آمورش هاي بيشتري براي لينوكس پيدا كنيد :

نحوه نصب Docker Compose در Debian 10

چگونه مي توان با كتابخانه (library) درخواست ها در پايتون شروع به كار كرد

نحوه اجراي صفحه گذاري در MySQL با PHP روي اوبونتو 18.04

نحوه تنظيم پلتفرم Eclipse Theia Cloud IDE در CentOS 7

بسته بندي برنامه Laravel 6 براي توسعه با Docker Compose در اوبونتو 18.04

نحوه بهينه سازي درخواست هاي MySQL با ذخيره سازي غير مجاز مي باشدSQL در اوبونتو 16.04

نحوه استفاده از Ansible براي نصب و راه اندازي وردپرس با LAMP در اوبونتو 18.04

چگونه مي توان پلتفرم كد سرور Cloud IDE را در اوبونتو 18.04 تنظيم كرد (شروع سريع)

چگونه مي توان از رول هاي ansible براي انتزاع محيط زيرساختي خود استفاده كرد

نحوه پيكربندي يك خوشه Galera با MySQL در سرورهاي اوبونتو 18.04

نحوه تهيه نسخه پشتيبان و بازيابي يك خوشه Kubernetes در vpsgol با استفاده از Velero

نحوه نصب و استفاده از PostgreSQL در CentOS 7

چگونه مي توان پلتفرم Eclipse Theia Cloud IDE را روي اوبونتو 18.4 تنظيم كرد

نحوه استقرار و مديريت DNS با استفاده از DNSControl در Debian 10

چگونه مي توان پلتفرم Cloud IDE كد سرور را روي CentOS 7 تنظيم كرد

نحوه نصب وردپرس با OpenLiteSpeed ​​در اوبونتو 18.04

چگونه پيكربندي SSH Daemon خود را بر روي يك VPS لينوكس تنظيم كنيد


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۲۰ بهمن ۱۳۹۸ساعت: ۰۲:۲۶:۵۳ توسط:server موضوع: