簡體   English   中英

將 vagrant 與 Amazon EC2 結合使用

[英]Using vagrant with Amazon EC2

我是 Amazon AWS 和 Vagrant 的新手。

我開設了一個 12 個月的免費帳戶,我想為我的個人項目測試 EC2。 我需要測試QGIS Server軟件。

我沒有創建一個新實例並從頭開始安裝所有依賴項,而是想使用這個 repo ,它提供了 QGIS Server 的 Vagrant 映像和所有需要的軟件來測試它。

我可能可以在我的個人筆記本電腦上執行此操作,但我不確定如何繼續使用 EC2 實例。

看着這個 SO 答案,我似乎可以使用vagrant-aws插件來做到這一點。

但是,它的自述文件還顯示:

當然,在執行此操作之前,您需要為 Vagrant 獲取與 AWS 兼容的 box 文件。

那是什么意思?

任何有經驗的人都可以幫助我理解除了 Vagrant 文件和 Amazon AWS 帳戶之外我還需要什么來完成這項任務?

我需要先創建一個實例還是應該使用 vagrant-aws 插件來創建?

提前謝謝了。

編輯1

我想我做了很大的改進。

所以我通讀了大量文檔,最終得到了一個 Vagrantfile,它是來自mitchellh/vagrant-aws 的文件和來自elpaso/qgis3-server-vagrant 的文件的混合

然后我應該運行vagrant up --provider=aws但我遇到了一些語法錯誤。 我認為我缺乏 Ruby 知識是我在這里的主要障礙。

這是我Vagrantfile (沒有 SECRET AWS 的東西):

# -*- mode: ruby -*-
# vi: set ft=ruby :

# Require the AWS provider plugin
require ‘vagrant-aws’

# Creating and configuring the AWS instance
Vagrant.configure(‘2’) do |config|


  # Use dummy AWS box
  config.vm.box = ‘aws’

  # Disk space (free tier ebs is limited to 30!!!)
  config.disksize.size = '20GB'

  # (taken from https://github.com/elpaso/qgis3-server-vagrant)
  config.vm.network "forwarded_port", guest: 80, host: 8080 # nginx fastcgi
  config.vm.network "forwarded_port", guest: 81, host: 8081 # apache fastcgi
  config.vm.network "forwarded_port", guest: 82, host: 8082 # nginx uwsgi
  config.vm.network "forwarded_port", guest: 83, host: 8083 # nginx mapproxy

  # Specify configuration of AWS provider
  config.vm.provider ‘aws’ do |aws, override|
    # Read AWS authentication information from environment variables
    aws.access_key_id = ‘MY_ACCESS_ID’
    aws.secret_access_key = ‘MY_SECRET_ID’
    # Specify SSH keypair to use
    aws.keypair_name = ‘MY_KEY’
    # Specify region, AMI ID, Instance and security group
    aws.region = ‘eu-west-3’
    aws.ami = ‘ami-38a01045’
    aws.instance_type = ‘t2.micro’
    # Specify username and private key path
    override.ssh.username = ‘umberto’
    override.ssh.private_key_path = ‘path/to/my/key/pair’
  end

    # Install the required software
  config.vm.provision "shell",
    path: "provisioning/setup.sh",
    args: ENV['SHELL_ARGS']

  # Run every time the VM starts
  config.vm.provision "shell",
    path: "provisioning/job.sh",
    args: ENV['SHELL_ARGS'],
    run: "always"

end

我得到的錯誤是:

There is a syntax error in the following Vagrantfile. The syntax error
message is reproduced below for convenience:

/home/umberto/Documents/amazon_aws/qgis3-server-vagrant-AWS/Vagrantfile:35: syntax error, unexpected tIDENTIFIER, expecting keyword_end
  aws.region = ‘eu-west-3’
                              ^
/home/umberto/Documents/amazon_aws/qgis3-server-vagrant-AWS/Vagrantfile:36: syntax error, unexpected tIDENTIFIER, expecting keyword_end
  aws.ami = ‘ami-38a01045’
                              ^
/home/umberto/Documents/amazon_aws/qgis3-server-vagrant-AWS/Vagrantfile:42: syntax error, unexpected keyword_end, expecting end-of-input
  end
     ^

任何有一點Ruby知識的人都可以幫助我嗎? 我想我被困在了最后一步......

您有一些“智能引號”而不是單引號。 改變所有這些:

要像這樣:

'

常規雙引號也應該有效,只是沒有智能引號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM