otto에 Laavel 구축

6516 단어 PHPLaravelotto
PHPer는 Successor to Vagrantotto를 시험적으로 사용했습니다.다음은 OSX El Capitan입니다. otto는 2015/10/03 현재 0.1.1을 사용하여 수행합니다.

otto 설정


https://ottoproject.io/downloads.html에서 바이너리 파일을 다운로드하여 적당한 곳에 두다.
$ otto version
Otto v0.1.1

Laavel 설치


Composier를 사용하여 적절한 위치에 설치합니다.
$ composer create-project laravel/laravel --prefer-dist
.
.
()

otto 사용


구성하다


문서를 읽을 때Appfile가 필요할 것 같아서 설정합니다.
$ cd laravel
$ vi Appfile

뭐라고 써야 할지 몰라서name과 type만 씁니다.
Appfile
application {
        name = "otto-sample"
        type = "php"
}
그런 다음 comple 명령을 실행합니다.
$ otto compile
==> Loading Appfile...
==> Fetching all Appfile dependencies...
==> Compiling...
    Application:    otto-sample (php)
    Project:        laravel
    Infrastructure: aws (simple)

    Compiling infra...
    Compiling foundation: consul
==> Compiling main application...
==> Compilation success!
    This means that Otto is now ready to start a development environment,
    deploy this application, build the supporting infastructure, and
    more. See the help for more information.

    Supporting files to enable Otto to manage your application from
    development to deployment have been placed in the output directory.
    These files can be manually inspected to determine what Otto will do.
순식간에 끝났다.PHP와 인식(?)맞은 것 같은데.

개발 환경을 만들다


이것도 dev 명령일 뿐이야.Vagrant에는 1.7.4가 필요하지만 업데이트가 필요하면 해드립니다.Virtualbox는 설치되지 않은 것 같지만 5.0.6을 미리 설치했습니다.
$ otto dev
==> Creating local development environment with Vagrant if it doesn't exist...
    Raw Vagrant output will begin streaming in below. Otto does
    not create this output. It is mirrored directly from Vagrant
    while the development environment is being created.

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'hashicorp/precise64'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'hashicorp/precise64' is up to date...
.
.
.
(略)
==> Development environment successfully created!
    IP address: 172.16.1.76
Vagrant로 같이 있는 것 같은데.이번에 IP가 할당되었습니다172.16.1.76.참고로 이 IP 주소는요.
$ otto dev address
구문을 사용합니다.이제 제대로 된 환경에서 SSH 를 실행해 봅시다.
$ otto dev ssh
vagrant@precise64:/vagrant$ php -v
PHP 5.6.13-1+deb.sury.org~precise+3 (cli)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
vagrant@precise64:/vagrant$ php artisan serve --host=0.0.0.0 --port=8080
그리고 방문http://172.16.1.76:8080하면...

간단하다!!!

설계를 진행하다


infra가 aws로 여겨지는 것 같아서 이렇게 디자인을 해봤어요.먼저 infra 명령을 실행합니다.중간에 AWS의 키와 비밀번호를 입력해야 합니다. 지시에 따라 입력하십시오.Terraform이 설치되어 있는 것 같습니다.
$ otto infra
==> Detecting infrastructure credentials for: laravel (aws)
    Cached and encrypted infrastructure credentials found.
    Otto will now ask you for the password to decrypt these
    credentials.
.
.
.
==> Downloading terraform v0.6.3...
    URL: https://dl.bintray.com/mitchellh/terraform/terraform_0.6.3_darwin_amd64.zip
대단합니다. 점점 따라가지 못합니다. 다음은build 명령입니다.여기서는 앱이 git에 관리되지 않으면 원활하게 진행되지 않기 때문에 라벨을 먼저 제출한다.
# Laravelのキーを生成します。
$ php artisan key:generate
# config/app.phpのSomeRandomStringとなっているところを表示されたキーに変更します。
$ vi config/app.php
$ git init
$ git add .
$ git commit -m "commit for otto"
다음은build 명령입니다.방금 비밀번호를 들었기 때문에 입력하세요.이번에 페이커랑 콘슬이 설치된 것 같은데.AMI를 만드는 인상에 appache 등이 설치된 것 같다.마치...(땀)
$ otto build
==> Querying infrastructure data for build...
==> Building deployment archive...
==> Building deployment artifact with Packer...
    Raw Packer output will begin streaming in below. Otto
    does not create this output. It is mirrored directly from
    Packer while the build is being run.

otto output will be in this color.

==> otto: Prevalidating AMI Name...
==> otto: Inspecting the source AMI...
==> otto: Creating temporary keypair: packer 560fb781-530f-6230-d69e-0bdb6f6ba205
==> otto: Creating temporary security group for this instance...
==> otto: Authorizing access to port 22 the temporary security group...
==> otto: Launching a source AWS instance.
.
.
.
(略)
==> Build success!
    The build was completed successfully and stored within
    the directory service, meaning other members of your team
    don't need to rebuild this same version and can deploy it
    immediately.
그럼 마지막으로 deploy 명령입니다.비밀번호를 다시 묻다.
$ otto deploy
aws_security_group.app: Creating...
  description:                         "" => "Managed by Terraform"
.
.
.
(略)
Outputs:

  url = http://xxxxxxx.compute-1.amazonaws.com/
성공한 것 같아!액세스를 나타내는 URL을 표시합니다...그렇게 말하고 싶었지만 Fobidden이 됐어요.
생성된 EC2를 SSH 조사한 결과 apche 설정이 거의 없어 mod-rewrite가 듣고 있지 않은 것 같다.
당분간 방문http://xxxxxxx.compute-1.amazonaws.com/public/하면 표시할 수 있습니다.이 근처의 설정을 다시 확인하고 싶습니다.

청소하다


기존에 만든 것을 모두 버리라는 명령도 준비했다.aws 안전팀 등도 적당하니까 꺼주세요.
$ otto deploy destroy
$ otto infra destroy
$ otto dev destroy

총결산


나는 otto로 라벨을 설계했다.솔직히 너무 세서 어떻게 쓰는지 거의 모르겠지만 사용법의 흐름을 파악한 것 같아서 디테일을 조금씩 보고 싶어요.

좋은 웹페이지 즐겨찾기