در پست قبلی من توضیح دادم که گیت لب چیه. این پست ادامه سری پست های دیپلوی روی سرور ایران هست که توضیح میدم چطوری پروژه VUEJS یا REACTJS رو با گیت لب دیپلوی کنیم.
اگر پست قبلی رو نخوندید قویا توصیه میکنم یه نگاهی بهش بندازید:
تو این پست کار زیادی نداریم. اکثر توضیحات رو تو پست زیری دادم:
تمام کاری که باید بکنید تو این پست توضیح داده شده ولی اینجا کلید اصلی رو بهتون معرفی میکنم.
منظورم از کلید اصلی اینه که چطوری رو سرور ایران خودمون از طریق گیت لب که ما رو تحریم کرده دیپلوی کنیم.
برای این کار فایل .gitlab-ci.yml خودمونو باید یکم تغییر بدیم.
build site: image: node:6 stage: build only: - master script: - npm install --progress=false - npm run build artifacts: expire_in: 1 week paths: - dist unit test: image: node:6 stage: test only: - master script: - npm install --progress=false - npm run unit deploy: environment: name: production url: http://domain.example/ image: ubuntu stage: deploy variables: PROJECT_ON_SERVER: "/path/to/your/public/folder" only: - master script: - apt-get update -yqq ## ## Install ssh-agent if not already installed, it is required by Docker. ## (change apt-get to yum if you use an RPM-based image) ## - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )' ## Install resync to create mirror between runner and host. - apt-get install -y rsync ## ## Run ssh-agent (inside the build environment) ## - mkdir -p ~/.ssh - echo "$SSH_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/id_rsa - chmod 700 ~/.ssh/id_rsa - eval "$(ssh-agent -s)" - ssh-add ~/.ssh/id_rsa - ssh-keyscan -H $SERVER >> ~/.ssh/known_hosts - rsync -ravzhP --delete -e "ssh $SSH_USER@$SSH_HOST ssh" dist/ $SSH_DEPLOY_USER@"$SSH_DEPLOY_HOST":$PROJECT_ON_SERVER
اگر متوجه نشدید این فایل چی هست و چی میکنه لطفا به پست قبلی من که راجب دیپلوی VUEJS هست مراجعه کنید. اونجا کاملا توضیح دادم.
تنها کاری که من اینجا کردم اینه که خط آخر خودمو به چیزی که این زیر نوشتم تغییر دادم:
rsync -ravzhP --delete -e "ssh $SSH_USER@$SSH_HOST ssh" dist/ $SSH_DEPLOY_USER@"$SSH_DEPLOY_HOST":$PROJECT_ON_SERVER
این قطعه کد میگه که از همون rsync برای جابجایی فایل ها از سرور گیت لب به سرور من استفاده کن ولی نکته ای که داره اینه که من از یه سرور تو یه جای دگ دنیا به عنوان پراکسی استفاده کردم.
یعنی به جای اینکه اطلاعات مستقیم به سرور ایران فرستاده بشه مثلا اول میره تو کانادا به سرور پراکسی من بعد از کانادا میاد ایران تا تحریم رو دور بزنه.
متغیر هایی که تو کد استفاده شده به صورت Private تعریف شدن که چطوری این کارو بکنید هم تو پست قبلی توضیح دادم. بذارید فقط بگم هر کدوم از این متغیر ها چی داخل خودشون دارند:
SSH_USER : نام کاربری اس اس اچ من تو سرور پراکسی یا همون سرور کانادام
SSH_HOST : آی پی یا آدرس سرور پراکسی
SSH_DEPLOY_USER : نام کاربری اس اس اچ من تو سرور اصلیم که تو ایران هست
SSH_DEPLOY_HOST: آی پی یا آدرس سرور اصلی
PROJECT_ON_SERVER : آدرس پوشه دیپلویم رو سرور اصلی
دم شما گرم.
برای مطالعه بیشتر میتونید به نوشته های دیگه من مراجعه کنید