Vagrant box najbardziej podobny do instancji Amazon EC2

37

Czy są dostępne jakieś „pudełka” do pobrania dla Vagrant, które ściśle odzwierciedlają wersję Linux i pakiety dostępne dla instancji Amazon EC2?

Testuję lokalnie za pomocą Vagrant, obecnie używam Precise32 box. Wdrażam mój kod w instancjach Amazon EC2 za pomocą AMI „Amazon Linux AMI 2013.03”.

Problem, przed którym stoję, polega na tym, że pakiety dostępne do zainstalowania na pudełku Precise32 mają różne nazwy, np

  • php5-fpm - w błądzącym pudełku
  • php54-fpm - w instancji Amazon EC2.

Chociaż mogę to naprawić, używając zmiennych w plikach konfiguracyjnych Puppet do obsługi różnych nazw pakietów, brzmi to trochę jak hack.

Czy są więc dostępne jakieś włóczęgi, które będą ściśle odzwierciedlać środowisko Amazon EC2.

A może mogę powiedzieć włóczęgi, aby używała tego samego źródła pakietów co instancja Amazon EC2?

Aby wyjaśnić jedną rzecz - powodem, dla którego chcę to zrobić, jest to, że mogę przetestować lokalnie bez konieczności wcześniejszego zatwierdzania wszystkiego. Chociaż Vagrant ma wsparcie dla AWS jako dostawcy, to tak naprawdę nie byłoby w stanie przetestować lokalnie.

Danack
źródło
Mam nadzieję, że otrzyma przydatną odpowiedź, chciałbym mieć lokalną instalację Amazon Linux dla tego rodzaju zastosowania.
ceejayoz
1
Nie używasz Amazon Linux?
Michael Hampton
1
@MichaelHampton Często miło jest mieć zbudowaną i obsługiwaną przez Amazon wersję Linuksa. Posiadanie gotowych funkcji, takich jak narzędzia AWS, może być nieocenione.
ceejayoz
@ceejayoz Tak, to przydatne, ale nie tak bardzo, gdy reszta systemu nie działa. Nie byłem pod wrażeniem jakości kompilacji Amazon Linux; zawsze wydaje się, że coś ważnego jest zepsute.
Michael Hampton
YMMV, tak myślę. Jeszcze się nie spotkałem w naszym klastrze nginx / php-fpm / percona.
ceejayoz

Odpowiedzi:

11

Nie, nie ma możliwości używania Amazon Linux poza EC2. Jeśli chcesz użyć pochodnej Red Hat Enterprise Linux (którą jest Amazon Linux), polecam używanie CentOS 6 zarówno w Vagrant, jak i EC2. Znajdziesz tu wiele CentOS bazowe skrzynek tutaj , a oficjalne Amis są wymienione tutaj .

Sciurus
źródło
1
To wydaje się być bardziej podobne niż większość, ale wciąż nieco inne, np. Amazon Linux ma oddzielne PHP 5.3 i PHP 5.4 w swoich pakietach. Myślę, że mój pomysł posiadania środowiska Vagrant, które byłoby wystarczająco blisko, aby pasowało do środowiska Amazon, aby było identyczne dla skryptów instalacyjnych, nie jest możliwe bez dużego nakładu pracy przy tworzeniu niestandardowego pudełka.
Danack
Właśnie, Amazon Linux dodaje dodatkowe i nowsze oprogramowanie poza tym, co obejmują RHEL i CentOS. Dlatego nie polecałbym używania Amazon Linux.
sciurus
1
Dla tych (jak ja), którzy znajdą to ponad 5 lat później, teraz, w 2018 r., Ta odpowiedź nie jest już prawdą:> „nie ma możliwości korzystania z Amazon Linux poza EC2” Amazon udostępnia teraz obrazy maszyn wirtualnych (dla VirtualBox, ansible, VMWare, Windowz-hyper-z-cokolwiek i Docker) Amazon Linux, który jest w zasadzie tylko waniliową najnowszą dystrybucją CentOS, która jest zoptymalizowana i wstępnie skonfigurowana dla EC2 z preinstalowanymi narzędziami API Amazon i pakietami cloudinit, a one całkowicie wspierają i zachęcają uruchomić go na terenie, jak również w AWS: Amazon Linux 2 aws.amazon.com/amazon-linux-2/#Resources
Gigawatt
19

UWAGA: Ta odpowiedź nie polega na znalezieniu włóczęgi „Amazon Linux”. Ta odpowiedź dotyczy pomocy oryginalnemu plakatowi w rozwiązaniu celu wykorzystania tego samego systemu w produkcji, co w dev, którym jest Ubuntu. Jak widać w komentarzach poniżej, OP zgodził się, że to rozwiąże jego problem.


Canonical udostępnia oficjalne AMI Ubuntu na EC2 i odpowiednie oficjalne skrzynki Vagrant do pobrania.

W przypadku Ubuntu 12.04 Precise, interfejsy AMI są wymienione na stronie

http://cloud-images.ubuntu.com/precise/current/

a pola Vagrant są wymienione na

http://cloud-images.ubuntu.com/vagrant/precise/current/

Możesz użyć tego, aby rozpocząć od tej samej podstawowej konfiguracji na EC2, jakiej używasz lokalnie w dev.

Eric Hammond
źródło
1
Nie będą one działać tak jak oparty na RHEL Amazon Linux AMI.
ceejayoz
2
Dzięki, że to rozwiązałoby problem dla mnie, ponieważ nie dbam szczególnie o to, jakiego smaku Linuksa używam. Jednak nadal dobrze byłoby sprawdzić, czy ktoś to rozwiązał, tworząc pudełko Vagrant o smaku Amazon.
Danack
1
@ceejayoz: Proponuję rozwiązanie podstawowego problemu OP polegającego na tym samym obrazie na dev + prod, zmieniając prod zamiast przełączać dev. Nie wszystkie odpowiedzi muszą ograniczać się do założeń, które czytamy w pytaniu. Staramy się pomóc pytającemu rozwiązać rzeczywiste problemy za pomocą praktycznych rozwiązań. „Nie, nie możesz tego zrobić” to prawidłowa odpowiedź, ale doceniam „Możesz osiągnąć swój podstawowy cel przez ...”
Eric Hammond,
6

W dniu 13 grudnia 2017 r. Amazon wydał Amazon Linux 2 . Dzięki temu Amazon zapewnia teraz obrazy do pobrania, które będą działać w VirtualBox, VMWare, MS Hyper-V.

Wcześniej można było użyć obrazu Amazon ECS Docker . To jest nadal dostępne zarówno dla wersji 1, jak i 2.

Spójrz na Uruchamianie Amazon Linux 2 jako lokalu wirtualnej maszyny .

Podejrzewam, że ktoś wkrótce opublikuje włóczęgę. W międzyczasie dość łatwo samodzielnie zbudować skrzynkę podstawową .

Mike D.
źródło
4

Warto również zajrzeć na stronę http://www.packer.io, dzięki której można uzyskać dokładnie taki sam obraz ami dla zewnętrznego włóczęgi

digitaladept
źródło
1
Witaj w Server Fault! Chociaż teoretycznie może to odpowiedzieć na pytanie, lepiej byłoby zawrzeć tutaj istotne części odpowiedzi i podać odnośnik.
slm
1
zauważono, że nie chcesz zaśmiecać odpowiedzi pełną zawartością strony instalacji i użytkowania? ale jeśli taka jest preferencja, zrobię to następnym razem
digitaladept
Parafrazowanie jest w porządku, nie muszą to być pełne szczegóły, ale tylko sedno.
slm
1
Packer nie da ci „dokładnie tego samego obrazu ami dla twojego zewnętrznego włóczęgi”. Rozumiem, że Packer może wziąć podstawowy obraz ami i uruchomić niestandardowy skrypt obsługi administracyjnej, aby utworzyć wyjściowy ami. Może również używać obrazu Vagrant Box (OVF) lub .iso jako podstawy do uruchomienia tego samego skryptu udostępniania w celu utworzenia wyjściowego Vagrant Box. Chociaż skrypt obsługi administracyjnej będzie taki sam, pola podstawowe będą się do pewnego stopnia różnić. Nie można utworzyć włóczęgi bezpośrednio z AMI.
najdalej
@poshest Więc nadal potrzebujemy tego samego środowiska programistycznego i produkcyjnego (takiego jak Ubuntu), aby Vagrant box zachowywał się (prawie) tak samo jak AMI?
Franklin Yu,
2

Amazon Linux oparty jest na Redhat / CentOS, więc nazwy będą pasować bardziej ściśle, jeśli uruchomisz jedną z nich lokalnie.

Systemy Linux oparte na Debian / Ubuntu zmieniają nazwy pakietów, np. „Dev” zamiast „devel” jako przyrostek dla pakietów programistycznych.

Przy okazji, możesz chcieć sprawdzić wyniki „rpm -qa” w instancji Amazon Linux, zmodyfikować je, aby pasowały do ​​nazw pakietów CentOS / Redhat, a następnie pomyśleć o stworzeniu własnej wersji systemu operacyjnego, która będzie ściśle pasować do Amazon.

Bob Roberts
źródło
1

Od 2017 roku tak.

Nazwa Vagrant box to mvbcoding / awslinux hostowany w chmurze Vagrant (jak wszystkie inne publiczne Vagrant boxy).

Możesz uruchomić okno za pomocą następującego polecenia.

vagrant init mvbcoding/awslinux; vagrant up --provider virtualbox
eneset
źródło
witam, czy możesz podać bardziej szczegółową odpowiedź?
bgtvfr
@bgtvfr ma na myśli, że mamy teraz „Vagrant box podobny do instancji Amazon EC2”, to znaczy mvbcoding / awslinux . To jedyne jak awslinuxdotąd nazwane pudełko .
Franklin Yu,
Czy korzystanie z publicznych skrzynek hostowanych w chmurze Vagrant jest bezpieczne? Czy chmura Vagrant przeprowadza audyt przed zaakceptowaniem publicznych skrzynek?
Varun,
Kto wie? Musisz zapytać Mitcha Hashimoto.
eneset