Muszę napisać skrypt, który zbuduje mój serwer z nowej instalacji serwera Ubuntu. Wśród rzeczy takich jak Apache i PHP musi zainstalować MySQL. Jedynym problemem jest to, że kiedy instaluję MySQL za pomocą apt-get, w pewnym momencie instalacja wyświetli okno dialogowe, które pozwala mi wpisać hasło roota. Tzn. Wymagana jest interakcja człowieka.
Jak mogę ominąć ten ekran podczas instalacji i uniknąć interakcji ludzi podczas używania programu apt-get do instalacji MySQL?
Odpowiedzi:
Musisz wstępnie sprawdzić bazę danych debconf. debconf musi zostać zainstalowany przed wypróbowaniem tego.
Wersja mysql i ubuntu może zmienić linię:
Na przykład musisz to zrobić zamiast tego:
źródło
mysql -u root -p
Chociaż FAI i podobne systemy są pomocne w środowisku przedsiębiorstwa (i powinien o nich wiedzieć), niestety nie są panaceum.
Na przykład, co jeśli pracuje na zdalnych komputerach, być może hostowanych, wynajmowanych, kolokowanych serwerach bez zaufanej lub dedykowanej sieci lub środowisku chmurowym, takim jak EC2? Nie będzie tam działał żaden rodzaj netboota PXE. Jednak Puppet i Chef wydają się być bardziej uniwersalnymi narzędziami, które mogą mu pomóc.
Prawidłowe wartości można uzyskać z bazy danych debconf w systemie, który został już skonfigurowany. Ta technika pozwala ci umieścić całość w jednym skrypcie powłoki. Na przykład z /var/cache/debconf/passwords.dat (zwróć uwagę na możliwość pracy zarówno z 5.0 na Debianie, jak i 5.1 oraz Ubuntu, dodatkowe wpisy nic nie zaszkodzą):
Inna metoda, być może łatwiejsza: (zbierz odpowiedzi z debconf-get-selections lub debconf-show z pakietu debconf-utils):
Po uruchomieniu selekcji zestawu debconf sprawdź swoje odpowiedzi: cat /var/cache/debconf/passwords.dat
Podczas testowania pamiętaj o usunięciu i wyczyszczeniu wszystkich baz danych (zwłaszcza bazy danych mysql, w której jest ona przechowywana) i napraw konfigurację DB na wypadek ich uszkodzenia:
Kilka wskazówek z tym: 1) MUSISZ mieć widoczną flagę i _ponowne hasło. 2) NIE WOLNO umieszczać cudzysłowów wokół hasła. Przejdzie do zapytania MySQL bez cudzysłowu, więc w razie potrzeby musisz go zacytować. Oznacza to również brak spacji (tak myślę) 3) Jeśli masz problemy, zrób ręczne przetwarzanie, a następnie uruchom instalację MySQL bezpośrednio (w normalnym terminalu / tty) i zobacz, co mówi ci debconf. Znajdziesz tam ostrzeżenia i błędy.
źródło
Jeśli masz wiele serwerów, które musisz odbudować, zdecydowanie polecam spojrzenie na coś takiego jak Puppet zamiast pisania skryptu powłoki. Puppet ma opisowy język, więc określasz, jak chcesz wyglądać system, a nie jak go tam dostać. Typ pakietu ma opcję pliku odpowiedzi, która pozwala zdefiniować odpowiedzi debconf w odpowiedzi Stevena.
źródło
Czy mogę również zasugerować zautomatyzowanie procesu przemieszczania serwera z surowego żelaza?
FAI ma obecnie profile do instalacji większości głównych systemów opartych na Debianie, w tym Ubuntu, z sieci. To oczywiście jest tylko rozszerzenie odpowiedzi kukiełkowej, która jest rozszerzeniem odpowiedzi debconf.
Kombinacja inscenizacji z FAI, a następnie dostosowywanie za pomocą kukiełki do ról serwera (gdzie kukiełka użyje odpowiednich narzędzi dla twojego systemu, takich jak debconf dla Debiana (-podobnych) raczej automatycznie), jest obecnie dość popularna i nie powinna być zbyt duża ciężko znaleźć przykłady, które pasują do tego, co chcesz zrobić raczej ściśle.
Główną dodatkową zaletą posiadania serwera pomostowego / konfiguracyjnego jest to, że jest to również logiczne miejsce, aby kontrolować konfigurację wersji, np. Za pomocą git (co ma tę zaletę, że nazywanie stanów repozytorium przez sumę kontrolną, abyś był bezpieczny przed korupcją jako pod warunkiem, że spadną odpowiednie sumy kontrolne), aby zapewnić naprawdę czysty i powtarzalny proces.
źródło
Zobacz też:
/programming/1202347/simple-bash-script-to-install-mysql-need-some-help
źródło