Automatyzacja apt-get

Pomoc dotycząca instalacji systemu
ano
Posty: 38
Rejestracja: 03 sierpnia 2015, 14:18

Automatyzacja apt-get

Post autor: ano »

Witam
mam do przeprowadzenia rutynowe instalacje na nowych maszynach, wcześniej wszystko wpisywałem z palca teraz chcę trochę ten proces zautomatyzować

Kod: Zaznacz cały

sudo apt-get install phpmyadmin -y
przy wielu rzeczach sam parametr -y wystarcza, lecz kiedy trzeba podać jeszcze jakieś dane wtedy sam muszę wpisywać
czy można jakoś podać kolejne parametry wyborów?

Prosiłbym najlepiej o przykład dla powyższego polecenia
Nie interesuje mnie gotowy obraz
Dziękuję za odpowiedzi z góry
Awatar użytkownika
dedito
Moderator
Posty: 3512
Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice

Re: Automatyzacja apt-get

Post autor: dedito »

Określ o jakie dane chodzi.
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2302
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Re: Automatyzacja apt-get

Post autor: LordRuthwen »

W jego przypadku hasło roota do bazy :)
ano
Posty: 38
Rejestracja: 03 sierpnia 2015, 14:18

Re: Automatyzacja apt-get

Post autor: ano »

Nie tylko właśnie
Specjalnie wybrałem właśnie phpmyadmin bo jest tam aż 5 opcji
<Ok> wystarczy kliknąć enter
<Tak> wystarczy kliknąć enter
hasło do bazy danych
hasło phpmyadmin
hasło phpmyadmin
hasła mogę podać w linii komend, jest to bezpieczne ponieważ jest to robione na roocie, więc nikt inny nie będzie miał dostępu do logów, logi też można usunąć, chodzi mi o pełną automatyzację procesu instalacji, by puścić jeden raz komendę i wszystko samo się robiło
Awatar użytkownika
Pakos
Beginner
Posty: 141
Rejestracja: 22 maja 2007, 23:30
Lokalizacja: £azy

Re: Automatyzacja apt-get

Post autor: Pakos »

expect potrafi ładnie odpowiadać na pytania
ano
Posty: 38
Rejestracja: 03 sierpnia 2015, 14:18

Re: Automatyzacja apt-get

Post autor: ano »

Dzięki
Ale mógłbyś zapodać przykład dla okna interaktywnego?
Gdzie są pola wyboru i przyciski?
Na przykład przy instalacji pakietu phpmyadmin?
Awatar użytkownika
Pakos
Beginner
Posty: 141
Rejestracja: 22 maja 2007, 23:30
Lokalizacja: £azy

Re: Automatyzacja apt-get

Post autor: Pakos »

Hmm w apt-get interaktywne pole?

Ja tu bardziej konsolowo myślałem, np logowanie:

Kod: Zaznacz cały

expect {
	(yes/no)?	{
		send "yes\r"
		send "\r"
		exp_continue
	}
	"*?assword:*"	{
		send "$pass\r"
		send "\r"
		expect {
			"*?assword:*"	{
			send_user "Unable to log in to ${host}. Probably missing account"
			exit 2
			}
			eof
		}
	}
	timeout {
		exit 3
	}
}
mniej więcej w ten sposób można każde pytanie opisać aby skrypt umiał/wiedział co na nie odpowiedzieć.
ano
Posty: 38
Rejestracja: 03 sierpnia 2015, 14:18

Re: Automatyzacja apt-get

Post autor: ano »

to robi funkcja -y czyli zawsze yes
apt get staje kiedy trzeba podać pole lub wybrać z przycisków w polu interaktywnym, zainstaluj sobie phpmyadmin to zrozumiesz o co mi chodzi
przy okazji da się expect bez skryptu odpalić? z linii komend?
bo znalazłem tylko skrypty, a jeśli tak to podałbyś mi przykład z linii komend?
Awatar użytkownika
Pakos
Beginner
Posty: 141
Rejestracja: 22 maja 2007, 23:30
Lokalizacja: £azy

Re: Automatyzacja apt-get

Post autor: Pakos »

no fakt, teraz zaskoczyłem o co chodzi z interaktywnymi, kilka paczek coś w ncurses podpytuje i za to odpowiada debconf, wszelkie inne pytania w konsoli expect pociągnie.

edit:

tutaj masz w zasadzie odpowiedź jak ominąć debconfa: http://serverfault.com/questions/407317 ... -questions
ano
Posty: 38
Rejestracja: 03 sierpnia 2015, 14:18

Re: Automatyzacja apt-get

Post autor: ano »

ano pisze:Dzięki właśnie o to mi chodziło lecz nadal mam problem właśnie z phpmyadmin

Kod: Zaznacz cały

phpmyadmin      phpmyadmin/password-confirm     password
# MySQL application password for phpmyadmin:
phpmyadmin      phpmyadmin/mysql/app-pass       password
phpmyadmin      phpmyadmin/mysql/admin-pass     password
phpmyadmin      phpmyadmin/app-password-confirm password
phpmyadmin      phpmyadmin/setup-password       password
# Host running the MySQL server for phpmyadmin:
phpmyadmin      phpmyadmin/remote/newhost       string
phpmyadmin      phpmyadmin/remote/port  string
phpmyadmin      phpmyadmin/setup-username       string  admin
# Deconfigure database for phpmyadmin with dbconfig-common?
phpmyadmin      phpmyadmin/dbconfig-remove      boolean
phpmyadmin      phpmyadmin/internal/skip-preseed        boolean false
# Perform upgrade on database for phpmyadmin with dbconfig-common?
phpmyadmin      phpmyadmin/dbconfig-upgrade     boolean true
# MySQL username for phpmyadmin:
phpmyadmin      phpmyadmin/db/app-user  string  phpmyadmin
phpmyadmin      phpmyadmin/missing-db-package-error     select  abort
phpmyadmin      phpmyadmin/remove-error select  abort
# Configure database for phpmyadmin with dbconfig-common?
phpmyadmin      phpmyadmin/dbconfig-install     boolean true
# Do you want to purge the database for phpmyadmin?
phpmyadmin      phpmyadmin/purge        boolean false
# Database type to be used by phpmyadmin:
phpmyadmin      phpmyadmin/database-type        select  mysql
phpmyadmin      phpmyadmin/upgrade-error        select  abort
# MySQL database name for phpmyadmin:
phpmyadmin      phpmyadmin/db/dbname    string  phpmyadmin
phpmyadmin      phpmyadmin/internal/reconfiguring       boolean false
# Host name of the MySQL database server for phpmyadmin:
phpmyadmin      phpmyadmin/remote/host  select
phpmyadmin      phpmyadmin/reconfigure-webserver        multiselect
# Do you want to back up the database for phpmyadmin before upgrading?
phpmyadmin      phpmyadmin/upgrade-backup       boolean true
# Connection method for MySQL database of phpmyadmin:
phpmyadmin      phpmyadmin/mysql/method select  unix socket
# Reinstall database for phpmyadmin?
phpmyadmin      phpmyadmin/dbconfig-reinstall   boolean false
phpmyadmin      phpmyadmin/mysql/admin-user     string  root
phpmyadmin      phpmyadmin/passwords-do-not-match       error
phpmyadmin      phpmyadmin/install-error        select  abort
Są tutaj 2 hasła do phpmyadmin 1 hasło do mysql i 2 entery, moglibyście mi pomóc w znalezieniu tych właściwych?

oraz przy okazji powiedzieć jak działa funkcja debconf-set-selections, gdzie jest to zapisywane, jak można to potem usunąć?
Dobra poradziłem sobie, okazało się ze był jakiś update i rekord do bazy danych zmienił adres, więc nic dziwnego ze nie mogłem tego znaleźć jak nie było a korzystałem z grepa z dnia poprzedniego, jeden dzień a straciłem wiele czasu na to, eeeh takie moje szczęście żeby wcelować akurat w ten moment

Więc zostaje mi pytanie
jak działa funkcja debconf-set-selections, gdzie jest to zapisywane, jak można to potem usunąć?
bo zostaje to, widać to po ponownym użyciu funkcji debconf-get-selections | grep phpmyadmin
ODPOWIEDZ