Przejdź do głównej zawartości

Czasem nie warto ufać dokumentacji...

Zadania w pracy są różne.
Mnie przyszło dziś uruchomić na jednym z serwerów aplikację Redmine. Jest to program webowy, w wersji do samodzielnego utrzymania. Służy do sprawnego zarządzania projektami. Mamy tutaj do dyspozycji takie elementy jak wykres Grantta, kalendarze czy wiki.

Zanim przystąpiłem do pracy zajrzałem do dokumentacji. Najpierw trzeba przeczytać, sprawdzić co i jak należy wykonać. Oficjalna dokumentacja wydawała się być czytelna, prosta. Po dwukrotnym przeczytaniu przystąpiłem do instalacji. Krok po kroku postępując zgodnie z informacjami w dokumencie. Już po chwili napotkałem pierwsze problemy. Najpierw brak odpowiednich środowisk, następnie komponentów, potem konkretnych wersji komponentów. Zaczęło się poszukiwanie w sieci. Patrzenie na fora, sprawdzanie jak inni rozwiązali problemy, które teraz napotkałem ja. Brnąłem przez kolejne strony w Internecie, kolejne zmiany, instalowane elementy. Cały dzień w ogniu walki. Zrezygnowany, po prawie ośmiu godzinach pracy szukając kolejnego elementu znalazłem to. Rozwiązanie wszystkich moich problemów, jak się okazało. Prosty skrypt w bashu, który automatycznie zainstalował i skonfigurował wszystko, czego potrzebowałem. Dosłownie. Wystarczyło w odpowiednie miejsca wkleić pożądane hasła dostępowe. Reszta "robi się sama". A co dokładnie robi skrypt? Słowem komentarza (w bashu znakiem "#" określa się komentarz - poza linią "#!/bin/{zmienna}" - jest to wybór powłoki systemowej, w jakiej uruchamiany ma być skrypt - tutaj sh):

#!/bin/sh set -e
MYSQL_VERSION=5.5
[ -z "${MYSQL_PASSWD}" ] && MYSQL_PASSWD=mysql
[ -z "${REDMINE_PASSWD}" ] && REDMINE_PASSWD=redmine
mysql_install()
{
cat <<EOF | sudo debconf-set-selections
mysql-server-${MYSQL_VERSION} mysql-server/root_password password ${MYSQL_PASSWD}mysql-server-${MYSQL_VERSION} mysql-server/root_password_again password ${MYSQL_PASSWD}EOF sudo apt install -y mysql-server
}
redmine_install()
{
cat <<EOF | sudo debconf-set-selections
redmine redmine/instances/default/dbconfig-install boolean trueredmine redmine/instances/default/database-type select mysqlredmine redmine/instances/default/mysql/admin-pass password ${MYSQL_PASSWD}redmine redmine/instances/default/password-confirm password ${MYSQL_PASSWD}redmine redmine/instances/default/mysql/app-pass password ${REDMINE_PASSWD}redmine redmine/instances/default/app-password-confirm password ${REDMINE_PASSWD}EOF
sudo apt install -y redmine-mysql
}
apache_install()
{
sudo apt install -y apache2 libapache2-mod-passenger bundler
# Overwrite passenger.conf. cat << EOF | sudo tee /etc/apache2/mods-available/passenger.conf
<IfModule mod_passenger.c> PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini PassengerDefaultRuby /usr/bin/ruby PassengerDefaultUser www-data RailsBaseURI /redmine</IfModule>EOF cd /var/www/html
sudo ln -s /usr/share/redmine/public redmine
sudo chown -R www-data:www-data /usr/share/redmine
cat << EOF | sudo tee /etc/apache2/sites-available/redmine.conf
<VirtualHost _default_:443> SSLEngine on SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key <Directory /redmine> Options FollowSymLinks PassengerResolveSymlinksInDocumentRoot on AllowOverride None </Directory></VirtualHost>EOF
sudo a2enmod passenger
sudo a2enmod ssl
sudo a2ensite redmine
sudo systemctl enable apache2
sudo systemctl restart apache2
}
redmine_main()
{
mysql_install
redmine_install
apache_install
}
redmine_main

I to wszystko! Wystarczyło pięć minut pracy tego skryptu i w pasku adresowym można było wpisać <adres_serwera>/redmine by wyświetliła się główna strona aplikacji.

Komentarze

Popularne posty z tego bloga

Praca na uczelni ma wiele zalet.

Jest coś szczególnego w pracy adminów na uczelniach. W przeciwieństwie do firm gdzie pracowałem – zarówno korporacji jak i małych czy średnich przedsiębiorstw tutaj nie ma pośpiechu. No, zazwyczaj go nie ma. W większości przypadków moja praca wygląda w ten sposób, że robię listę zadań do wykonania, następnie staram się wymyślić jak coś zrobić i jeśli spełnia kryteria to robię to. Plan pracy na tydzień jest dla mnie ważnym elementem. Harmonogram pozwala mi przewidzieć ile czasu potrzebuję na każde zagadnienie. Najwięcej dzieje się w poniedziałki. Sprawdzam po weekendzie czy wszystko działa jak należy, czy nic się przez te dwa dni nie wyłożyło, czy nie trzeba czegoś pilnie poprawić. Z każdym kolejnym dniem zadań jest coraz mniej. Piątki staram się przeznaczać na rozwój – czytam artykuły, książki, a niedługo pewnie wrócę do szkoleń online. Stereotyp mówi, że admin to człowiek oglądający przez cały dzień śmieszne koty w Internecie. Jak w każdej legendzie i tutaj jest ziarno prawdy. Na ucz...

Wirtualizacja - czym jest i po co nam w ogóle?

Dawno, dawno temu... Dawno temu zasady były proste - jeden komputer to jeden system operacyjny. Co prawda już w latach 60-tych XX w. pojawiały się próby wirtualizacji czyli maksymalnego wykorzystania przez oprogramowanie systemowe jednak o pełnej wirtualizacji możemy mówić  dopiero od połowy poprzedniej dekady XXI w. Wcześniej by budować maszyny wirtualne potrzebne były olbrzymie komputery, a same maszyny zazwyczaj były kopiami bazowego systemu operacyjnego, co zwiększało wykorzystanie procesora. Wraz z osiągnięciem odpowiedniej mocy obliczeniowej przez komputery osobiste oraz serwery należące do firm czy instytucji publicznych prace nad wirtualizacją przyspieszyły. Dzięki staraniom producentów oprogramowania możemy dziś dzielić nie tylko zasoby procesora (CPU) lecz także pamięci swobodnego dostępu (RAM) czy zasobów dyskowych (HDD/SSHD/SSD). Większość oprogramowania, które dostępne jest dla profesjonalistów możemy zainstalować w domu, na naszych komputerach stacjonarnych czy l...