개발 환경에는 클라우드의 더 큰 공유 리소스에 대한 쿼리를 실행하는 로컬 VM이 포함됩니다.시험용 주방 - 로컬 사용자 로그인을 Chef 속성으로 전달하려면 어떻게해야합니까?
로컬 사용자의 로그인이 SSH 및 DB 연결을 정의하는 데 사용되는 Chef 역할로 속성으로 전달되는 방식으로 설정되었습니다.
현재 Vagrant 파일에서 Ruby를 사용하여 로그인을 제거하고 vm.provision을 사용하여 게스트 VM의 파일 시스템에/tmp 파일을 만듭니다. 로컬 VM의 Chef 역할은 해당 파일의 내용을 읽고이 값을 속성으로 전달합니다.
Vagrantfile : 요리사 실행하는 동안
# -*- mode: ruby -*-
# vi: set ft=ruby :
(snip)
require 'etc'
user = Etc.getlogin
(snip)
analytics.vm.provision :shell, inline: "echo #{user} > /tmp/remote_user"
는/tmp를/REMOTE_USER의 내용을 읽습니다 다음
remote_user = File.open("/tmp/remote_user", "r").read.strip
sandbox = "_#{remote_user}"
default_attributes "remote_user" => remote_user,
"sandbox" => sandbox,
는 다음과 같이 현재 사용자의 로그인을 추가하는 더 좋은 방법이 있나요 지역 요리사에 대한 속성이 실행됩니까?
그렇지 않은 경우 .kitchen.yml에있는 이전 Vagrantfile의 기능을 어떻게 복제 할 수 있습니까?
다른 방법으로, 당신은 속성을 할 수있는 : foo는 <% ='whoami' %> 은 사용자 이름으로 바로 이동합니다. –