- Vultr VDI with Terraform
- CloudFlare Account - CloudFlare Worker(Wrangler) for Slackbot
- AWS Account(S3) - Terraform state management,
AWS_ACCESS_KEY_ID
,AWS_ACCESS_SECRET_KEY
- Vultr Account - API Key
- Vultr Snapshot ID
- Vultr BlockStorage ID
- Slack Account - Slack Bot - 봇, Hook URL 필요
- Github Action (Github API) - Github Person Access Token
- Vultr 클라우드 비용, Snapshot, Blockstorage 비용이 부과됩니다.
- Terraform State 관리에 필요한 S3 비용이 약간 나올 수 있습니다.
git clone https://github.com/kimjayney/vultr_vdi
cd slackbot
npx wrangler publish
- vultr-vdi bucket을 생성해주세요.
- wrangler 주소쪽으로 향하게 설정해 줍니다. 아래 이미지를 참고하세요. 채팅 메세지가 보내질 때 마다 Slack 서버가 wrangler worker 주소쪽으로 POST 요청을 보냅니다.
- https://imgur.com/a/UnfxhYF
@ServerBot 서버생성/vhf-4c-16gb/사양
- 서버를 생성하는 명령어 입니다. Github Action API를 호출하며, Terraform 으로 수행합니다.@ServerBot 서버삭제
- 서버를 삭제하는 명령어입니다. Github Action API를 호출하며, Terraform 으로 수행합니다.
- AWS_ACCESS_KEY_ID
- AWS_ACCESS_SECRET_KEY - AWS IAM 시크릿 값으로 Github Action이 S3에 접속하여 State를 유지합니다.
- CF_WORKER_URL - Cloudflare worker 배포 시 나오는 주소를 입력합니다.
- SLACK_WEBHOOK_URL
npx wrangler secret put BLOCKSTORAGE_ID
npx wrangler secret put GIT_PAT
npx wrangler secret put GITHUB_ACTION_DEPLOY_YAML_URL
npx wrangler secret put GITHUB_ACTION_DESTROY_YAML_URL
npx wrangler secret put SLACK_WEBHOOK_URL
npx wrangler secret put SNAPSHOT_ID
npx wrangler secret put VULTR_API_KEY
@ServerBot 서버생성/vhf-4c-16gb/사양
- 서버를 생성하는 명령어 입니다. Github Action API를 호출하며, Terraform 으로 수행합니다.@ServerBot 서버삭제
- 서버를 삭제하는 명령어입니다. Github Action API를 호출하며, Terraform 으로 수행합니다.
- https://www.netapp.com/ko/virtual-desktop-infrastructure/what-is-virtual-desktop-infrastructure/
- https://developers.cloudflare.com/workers/tutorials/build-a-slackbot/
- AWS Spot GPU Instance with Terraform
- Linode Terraform
- GCP Terraform
- Conoha Terraform