Terraform을 사용하여 AWS EC2 기반 도커 호스트의 빌드를 자동화 한 다음 원격 exec 옵션을 사용하여 도커 파일을 다운로드하고 빌드 및 실행합니다. Terraform과 Serverspec 통합
나는 Serverspec와 함께이 통합하기를 희망 싶지만 두 가지를 해결하기 위해 고군분투 : Serverspec에 새로 만든 AWS EC2 인스턴스의 외부 DNS를 전달하는가장 좋은 방법.
ec2 사용자 계정을 사용하여 Amazon Linux AMI에서 올바르게 실행되도록 Serverspec의 SSH 옵션을 구성하는 방법.
나는 일반적으로 미리 정의 된 키 쌍을 사용하여 EC2 인스턴스에 연결하고 암호를 사용하지 않을 것이다, 그러나 ServerSpec은 sudo를 -p 형식으로 서버에서 명령을 실행하는 것 같다.
많은 조언을 주시면 감사하겠습니다. spec_helper.rb의
내용 또한 (마스크) 올바른 EC2 외부 DNS를 강제로 다음과 같이 편집 rakefile를 사용
require 'serverspec'
require 'net/ssh'
set :ssh_options, :user => 'ec2-user'
:
require 'rake'
require 'rspec/core/rake_task'
hosts = %w(
ec2-nn-nn-nn-nnn.eu-west-1.compute.amazonaws.com
)
set :ssh_options, :user => 'ec2-user'
task :spec => 'spec:all'
namespace :spec do
task :all => hosts.map {|h| 'spec:' + h.split('.')[0] }
hosts.each do |host|
short_name = host.split('.')[0]
role = short_name.match(/[^0-9]+/)[0]
desc "Run serverspec to #{host}"
RSpec::Core::RakeTask.new(short_name) do |t|
ENV['TARGET_HOST'] = host
t.pattern = "spec/Nexus/*_spec.rb"
end
end
end
. 호출하는 것이 훨씬 쉽습니다. 그러나 더 나은 방법으로 사용하고있는 나의 유스 케이스에는 다른 트레이드 오프가있을 것이라고 확신한다. – user1229364