Jest to sposób zalecany w samouczku Chef Fast Start:
knife ssh name:mynode -a ipaddress -x ubuntu -i mycredentials.pem "sudo chef-client"
To jest naprawdę niezdarne. Czy naprawdę nie ma lepszego sposobu, czy też jest pomysł, że w prawdziwym środowisku produkcyjnym i tak będziesz mieć automatyczną aktualizację węzłów?
Odpowiedzi:
W ten sposób zaczniesz wszystko od samego początku, ale trzeba to zrobić tylko raz. Pierwsze uruchomienie szefa-klienta zwykle włącza i uruchamia demona szefa-klienta jako usługę init.d.
Jeśli naprawdę chcesz to zrobić bardziej elegancko, możesz porzucić nóż-ssh i uruchomić bezpośrednio ssh:
prawdopodobnie będzie to szybsze, ponieważ nóż-ssh przeszukuje serwer Chef, aby pobrać węzły pasujące do wyszukiwanego terminu (w tym przypadku
name:dynode
), czego nie musisz robić, jeśli znasz już adres IP.źródło
ec2 server create
Nóż wtyczki prostu działa ładowania początkowego następuje przez SSH + Chef-klienta. Więc jeśli to sprawi, że poczujesz się lepiej, autorzy Szefa Kuchni nie odkryli niczego szczególnie mądrzejszego.Możesz użyć noża ssh do uruchomienia szefa-klienta na wszystkich polach, które zawierają określoną rolę lub przepis:
Lub jeśli jesteś w EC2:
źródło
Możesz użyć ansible do wdrożenia i uruchomienia szefa-klienta.
$ ansible -i hosts all -a 'chef-client'
ansible można łatwo zainstalować za pomocą pip:
pip install ansible
Twój plik ekwipunku (w przykładzie o nazwie „gospodarze”) może wyglądać następująco:
[all] host1.example.com ansible_user=root host2.example.com ansible_user=root host3.example.com ansibel_user=root
(zauważ, że „wszystko” to nazwa grupy w pliku konfiguracyjnym dla naszego przykładu - jest to dowolne i może być dowolne. Twój plik inwentarza może również zawierać inne grupy, np. [web_wervers], [database_servers], [chef_servers] itp.)
Więc znowu, wszystko razem:
> ansible -i hosts all -a 'chef-client'
albo może:
> ansible -i hosts all -a 'systemctl status'
źródło
Używam Jenkins CI do zarządzania biegami. Serwer Linux jest skonfigurowany jako stacja robocza i ma na nim zainstalowany Jenkins. Więc mogę załadować węzły za pomocą zmodyfikowanej listy run_list. W każdym razie proces ładowania uruchamia szefa-klienta na końcu.
W przypadku wykonania adhoc zadanie Jenkins wykonuje polecenia noża, aby zmodyfikować listę run_list dla węzła i użyć wtyczki SSH do wykonania klienta-szefa na żądanym węźle.
źródło
Szkoda, że aby wysłać polecenie do klienta szefa kuchni, musimy użyć podkreślenia ssh.
Wydaje się, że chociaż każdy klient szefa kuchni ustanowił bezpieczne połączenie z serwerem szefa kuchni, ale serwer szefa kuchni nie udostępnia multipleksera poleceń dla tego bezpiecznego połączenia, dlaczego?
źródło
W
chef-run
Chef Workstation pojawiło się nowe polecenie :Zainstaluje się,
chef-client
jeśli nie będzie obecny, i uruchomi określony zasób lub książkę kucharską.Samouczek: https://learn.chef.io/modules/try-chef-infra#/
źródło