-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Poznámky #4
Comments
Krok jedna a čtyři bych měl více/méně vyřešeny. Hm. |
Nepotřebujeme build machine a repo s artefaktama? Teď všechno klonuju přímo na stroj, buildnu a pustím. Plus je, že je to self-sufficient. Mínus je, že je asi zbytečný něco buildovat donekonečna. Nemám ale zkušenosti s CI. Ani s Jenkinsem. |
No, já se to právě už druhý den snažím udělat tak, aby potřeba nebylo. Podle některých zdrojů by to mělo jít i bez toho, ale jestli ještě budu chvíli bušit hlavou do XML aby běžel resolver v tomcatu, k tomu .sh, aby se nainstaloval do dockeru, proprietární formát konfigurace pro docker, yaml pro ansible a ruby pro vagrant. Pak poběží server, kde bude virtuální centos, v něm virtuální docker, ve kterym bude java, ve který poběží resolver. Přijde mi, že za chvíli to bude tak hluboko, že tam narazíme na higgsův boson dřív než v CERNu. |
:-) |
hele, tak commitni nějaký kód, třeba mně něco napadne. |
Jsou tam dva podscripty + ten docker file. Vycházejí z tohohle instaláku: # instalace postgresql
# source: https://wiki.postgresql.org/wiki/YUM_Installation
REPO_CONF=/etc/yum.repos.d/CentOS-Base.repo
sed '/\[base\]/a exclude\=postgresql\*' -i $REPO_CONF
sed '/\[updates\]/a exclude\=postgresql\*' -i $REPO_CONF
yum -y install http://yum.postgresql.org/9.5/redhat/rhel-6-x86_64/pgdg-centos95-9.5-2.noarch.rpm
yum -y install postgresql95-server.x86_64
/usr/pgsql-9.5/bin/postgresql95-setup initdb
chkconfig postgresql-9.5 on
service postgresql-9.5 start
# instalace apache tomcatu
# source: https://www.digitalocean.com/community/tutorials/how-to-install-apache-tomcat-7-on-centos-7-via-yum
yum -y install tomcat
echo 'JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom -Djava.awt.headless=true -Xmx512m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC"' > /usr/share/tomcat/conf/tomcat.conf
systemctl enable tomcat
systemctl start tomcat
# instalace httpd (apache) a konfigurace pro práci s tomcatem
# source: http://www.diegoacuna.me/installing-mod_jk-on-apache-httpd-in-centos-6-x7-x/
yum -y install httpd httpd-devel apr apr-devel apr-util apr-util-devel gcc gcc-c++ make autoconf libtool wget
mkdir -p /opt/mod_jk/
cd /opt/mod_jk
wget http://www.eu.apache.org/dist/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.41-src.tar.gz
tar -xvzf tomcat-connectors-1.2.41-src.tar.gz
cd tomcat-connectors-1.2.41-src/native
./configure --with-apxs=/usr/bin/apxs
make
libtool --finish /usr/lib64/httpd/modules
make install
# konfigurace apache a tomcatu
TOMCAT_CONF=/etc/tomcat/server.xml
sed '/<Service name="Catalina">/a <Connector port="8009" protocol="AJP\/1.3" redirectPort="8443" \/>' -i $TOMCAT_CONF
sed '/<Engine name="Catalina" defaultHost="localhost">/a <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">' -i $TOMCAT_CONF
cat > /etc/httpd/conf.d/mod_jk.conf <<EOF
LoadModule jk_module "/etc/httpd/modules/mod_jk.so"
JkWorkersFile /etc/httpd/conf/workers.properties
# Where to put jk shared memory
JkShmFile /var/run/httpd/mod_jk.shm
# Where to put jk logs
JkLogFile /var/log/httpd/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the timestamp log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
#JkRequestLogFormat "%w %V %T"
#JkEnvVar SSL_CLIENT_V_START worker1
EOF
mkdir -p /var/run/mod_jk
chown apache:apache /var/run/mod_jk
cat > /etc/httpd/conf/workers.properties <<EOF
workers.apache_log=/var/log/httpd
worker.list=app1Worker
worker.stat1.type=status
worker.app1Worker.type=ajp13
worker.app1Worker.host=app1.myhost.com #put your app host here
worker.app1Worker.port=8009
EOF
cat > /etc/httpd/conf.d/app1.conf <<EOF
<VirtualHost *:80>
ServerName resolver.nkp.cz
ServerAdmin [email protected]
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
CustomLog /var/log/httpd/app1_access.log combined
ErrorLog /var/log/httpd/app1_error.log
<IfModule mod_jk.c>
JkMount /* app1Worker
</IfModule>
</VirtualHost>
EOF
service httpd restart
# instalace resolveru
yum -y install unzip
TOMCAT_HOME=/usr/share/tomcat
chmod 777 $TOMCAT_HOME/webapps
su postgres
mkdir /tmp/czidlo
cd /tmp/czidlo
wget https://github.com/NLCR/CZIDLO/releases/download/v4.3.alpha/CZIDLO_4.3.alpha-installation.zip.zip
unzip CZIDLO_4.3.alpha-installation.zip.zip
psql -a -f initDatabase_4.3.alpha.sql
cp *.war $TOMCAT_HOME/webapps
cat > $TOMCAT_HOME/conf/context.xml <<EOF
<Context antiJARLocking="true" path="/api">
<Resource auth="Container"
driverClassName="org.postgresql.Driver"
maxActive="100" maxIdle="30" maxWait="200"
name="jdbc/postgres"
username="testuser"
password="testpass"
type="javax.sql.DataSource"
url="jdbc:postgresql://localhost:5432/czidlo_core"
/>
</Context>
EOF Ten jeden jsem včera trochu zkrouhnul o tem mod_jk, protože to je další dimenze problémů sama pro sebe. Myslím, že budu muset změnit priority, protože se v tom naprosto brutálně patlám a už mě docela štve, že se mi nedaří progress. Zkusím vyignorovat úplně všechno, kromě sestavení ideálního dockeru (oproti testování v konzoli mi sestavování přes Dockerfile zase hází problémy s systemd, for fucks sake). Pak můžu řešit, jak ho integrovat do ansible. |
Hele na ujasnění.. zjednodušeně, abychom byli na stejné vlně. Máme host resolver a v něm docker s aplikací. Na úrovni hosta instalujeme PostgreSQL, Tomcat, httpd - páč jsou v yum/package-manageru. Teď přichází dost heretická otázka:-) (snad mně nezabiješ), jestli je opravdu nutný rvát CZIDLO do dockeru, páč je už ve WAR. Což je defakto kontejnerový formát, který dáš tomcatu a on ho deployne. Tj. z netu stáhnem buildlý WAR, případně ho v mavenu buidlneme s naší konfigurací a předhodíme tomcatu na deployment. Teď jsem commitnut PostgresSQL roli pro ansible, naisntaluje postgre-server a inicialuzuje defaultní db na hostu. Nevím ale co je míněno tímto? Teď bych se kouknul na Tomcat a .. zatím bez buildnutí mod_jk. Jen jestli si poradí s WARem. Když to bude cajk. Šel bych další krok. Tj. na začátek nám stačí db + tomcat + war. Když tohle funguje, můžeme to pak vylepšovat. |
Připravil jsem roli Tomcat a Czidlo. Je potřeba dokonfigurovat Czidlo vůči Tomcat a PostgeSQL. Nastuduji si k tomu docs a upravím. Na localhost:508080 je výstup z tomcat. Zatím prázdný, čeká se na konfiguraci Czidla. |
Hm. |
Takže jestli tomu rozumím dobře, tak úplně všechno pojede z ansible a docker používat nebudeme vůbec? |
Jak s dockerem ještě nedělám, tak přesně nevím, co je lepší use case pro tohle - jestli docker nebo ansible. Ale zatím to vypadá, že s ansible je to snažší - aspoň pro mně. Na druhou stranu jsou dvě cesty, a můžeme přiravit obojí. Čistý vagrant+ansible, že si člověk postaví virtuál pomocí provize. A docker image, kterej si lupne do kterýho koliv systému. Např. s tím ansible playbookem co jsem připravil je probém, že je yum oriented. Tj. kdyby někdo to chtěl narvat na jinej OS, tak by musel upravit playbook. S hotovým docker image tenhle problém není - je to all in. Koncový admin jen řeší kontejnarizaci. Docker určitě použiji pro seeder/wa-kat. Ale ještě s tím pořádně nedělám, tak z tebe budu nabírat získanu zkušenost. |
Různé problémy:
The text was updated successfully, but these errors were encountered: