-
Notifications
You must be signed in to change notification settings - Fork 0
LOGBOOK 2020.03.06 FRI
ghilbut edited this page Mar 8, 2020
·
1 revision
- MacBook Pro (15-inch, 2017)
- macOS Catalina 10.15.3
- 모노리포
build-your-first-service │ ├ django │ ├ terraform │ ├ environments │ │ ├ common │ │ ├ develop │ │ └ release │ └ modules │ ├ vue.js │ ├ LICENSE └ README.md
- Stacks
- Terraform 0.12
- Django 3.0
- Vue.js 2
iOS(?)Android(?)
$ mkdir django django/src
$ cd django
$ pipenv --python 3.8
$ pipenv install django~=3.0.4
$ pipenv run django-admin startproject byfs ./src
$ pipenv run ./src/manage.py runserver 0:8000
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
February 26, 2020 - 04:50:11
Django version 3.0.3, using settings 'byfs.settings'
Starting development server at http://0:8000/
Quit the server with CONTROL-C.
- 브라우저로 아래의 주소에 접속하여 확인할 수 있다.
http://localhost:8000
-
django/docker-compose.yml
version: '3.7' networks: byfs: services: mysql: container_name: mysql command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci environment: - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-rootpw} - MYSQL_DATABASE=${MYSQL_DATABASE:-byfs} - MYSQL_USER=${MYSQL_USER:-byfs} - MYSQL_PASSWORD=${MYSQL_PASSWORD:-byfspw} image: mysql:5.7 networks: - byfs ports: - 3306:3306 restart: always volumes: - ./db/mysql/data:/var/lib/mysql - ./db/mysql/init:/docker-entrypoint-initdb.d
# run MySQL $ docker-compose up -d # stop MySQL $ docker-compose down
- django/src/byfs/settings.py
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': os.environ.get('BYFS_DB_DEFAULT_NAME', 'byfs'), 'HOST': os.environ.get('BYFS_DB_DEFAULT_HOST', '127.0.0.1'), 'PORT': os.environ.get('BYFS_DB_DEFAULT_PORT', '3306'), 'USER': os.environ.get('BYFS_DB_DEFAULT_USER', 'byfs'), 'PASSWORD': os.environ.get('BYFS_DB_DEFAULT_PASSWORD', 'byfspw'), 'CONN_MAX_AGE': 60, } }
$ pipenv install mysqlclient~=1.4.6
$ pipenv run ./src/manage.py makemigrations
$ pipenv run ./src/manage.py migrate
$ pipenv run ./src/manage.py createsuperuser
Username (leave blank to use 'ghilbut'): ↵
Email address: ↵
Password: ********↵
Password (again): ********↵
Superuser created successfully.
pipenv run ./src/manage.py runserver 0:8000
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
March 06, 2020 - 12:06:50
Django version 3.0.4, using settings 'byfs.settings'
Starting development server at http://0:8000/
Quit the server with CONTROL-C.
- 아래 주소로 접속하여 로그인이 가능한지 확인한다.
http://localhost:8000/admin
Name: byfs-terraform
Name: byfs
Tags
- Name: byfs
- organization: platform
- owner: devops
Inline Policy
-
Name: terraform-states
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation", "s3:ListBucketMultipartUploads" ], "Resource": [ "arn:aws:s3:::byfs-terraform" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectACL", "s3:GetObject", "s3:GetObjectACL", "s3:DeleteObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::byfs-terraform/*" ] } ] }
-
~/.aws/credentials
... [byfs] aws_access_key_id=******** aws_secret_access_key=********
-
terraform/environments/common/main.tf
terraform { required_version = "~> 0.12.6" backend s3 { # s3://<bucket>/<workspace_key_prefix>/<workspace-name>/<key> bucket = "byfs-terraform" key = "terraform.tfstate" profile = "byfs-terraform" region = "ap-northeast-2" encrypt = true } } provider aws { region = var.aws_region profile = var.aws_profile }
-
terraform/environments/common/variables.tf
variable aws_region { type = string default = "ap-northeast-2" } variable aws_profile { type = string default = "byfs" }
$ terraform init
$ terraform apply