Commit 7056e2913b65561bf4a4e6c9a095c4c8c3d1502f

Authored by Chloé Azria
1 parent a68aedba
Exists in master

dachs logs volumes binded for awstats

README deleted
... ... @@ -1,181 +0,0 @@
1   -# les choses à configurer pour son instance gavo.rc car il y a l'ip du serveur ou son nom dns
2   -# le nom du dépot correspnd au nom du projet/nom du serveur, ici /vespa/voparis-tap-planeto/
3   -
4   -#Configuration du docker mydachs une fois lancé
5   -apt-get update
6   -apt-get upgrade
7   -apt-get install apache2
8   -apt-get install awstats
9   -apt-get install geoip-database
10   -apt-get install libgeo-ipfree-perl
11   -apt-get install git
12   -apt-get install wget
13   -
14   -cd /home/dachsroot/
15   -git clone https://gitlab.obspm.fr/vespa/dachs/servers/padc/voparis-tap-planeto.git
16   -$chemin=/home/dachsroot/nom_du_serveur/
17   -
18   -# sous root configuration du serveur
19   -cp chemin/conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf
20   -service apache2 restart
21   -# restart d'apache pour éviter le conflit de port, apache sera sur le port 8080
22   -
23   -cp chemin/conf/awstats.dachs.conf /etc/awstats/awstats.dachs.conf
24   -a2enmod cgi
25   -service apache2 restart
26   -
27   -cp chemin/conf/gavo.rc /etc/gavo.rc
28   -cp chemin/conf/defaultmeta.txt
29   -chown dachsroot:gavo /var/gavo/etc/defaultmeta.txt
30   -cp chemin/conf/logo* /var/gavo/web/nv_static/img/
31   -chown dachsroot:gavo /var/gavo/web/nv_static/img/logo*
32   -
33   -
34   -
35   -# sous root configuration des services
36   -cp -r chemin/services/ /var/gavo/inputs/
37   -chown -R dachsroot:gavo /var/gavo/inputs/*
38   -
39   -#ingestion des données et création des services
40   -#depuis chacun des sous répertoires de services
41   -$sous_rep = nom_sous_repertoire (ici planets seulement)
42   -
43   -# pour chaque service
44   -su -u dachsroot 'gavo imp /var/gavo/inputs/sous_rep/q.rd
45   -su -u dachsroot 'gavo pub //services'
46   -su -u dachsroot 'gavo pub //tap'
47   -su -u dachsroot 'gavo pub /var/gavo/inputs/sous_rep/q.rd'
48   -gavo serve restart
49   -
50   -
51   -## mettre en cron.daily un fichier en 777 avec
52   - #!/bin/bash
53   - /usr/bin/perl /usr/lib/cgi-bin/awstats.pl -config=dachs -update
54   -
55   -
56   -
57   -## truc à penser
58   -FROM debian:latest
59   -RUN apt-get -y update
60   -RUN apt-get -y install awstats
61   -RUN apt-get -y install apache2
62   -EXPOSE 80
63   -
64   -
65   -
66   -###########################
67   -#help.mdwn :
68   -###########################
69   -#source
70   -https://docs.docker.com/compose/compose-file/
71   -
72   -# packet docker necessaire sur le serveur (deb 10)
73   -sudo apt install docker docker.io wmdocker
74   -
75   -# commande nettoyage pour test
76   -docker stop dachs-voparis && docker rm dachs-voparis && docker image rm dachs-voparis:latest && docker system prune
77   -
78   -#fonctionnement du docker
79   -dans l'ordre
80   -.env => définis les variables utilisé dans docker-compose.yml
81   -docker-compose.yml => définis les dockers et les params de build des bulles
82   -dachs-dockerfile => définis les lignes de commandes pour build dachs
83   -docker-entrypoint.sh => script executé au démarrage du docker
84   -secrets / id_rsa-phamy.prive ==> Ne JAMAIS mettre dans un git !!!
85   -
86   -docker-compose up -d ==> lance la séquence, --build pour forcer la maj
87   -
88   -docker image list => list les images
89   -docker ps -a => list les dockers
90   -docker image rm rep_dachs pour supprimer l'image docker
91   -docker rm dachs pour supprimer le docker
92   -
93   -# link de docker
94   -si besoin de séparer awstat
95   -Ne pas utiliser link "depreciate"
96   -
97   -version: "3"
98   -services:
99   -
100   - proxy:
101   - build: ./proxy
102   - networks:
103   - - frontend
104   - app:
105   - build: ./app
106   - networks:
107   - - frontend
108   - - backend
109   - db:
110   - image: postgres
111   - networks:
112   - - backend
113   -
114   -networks:
115   - frontend:
116   - # Use a custom driver
117   - driver: custom-driver-1
118   - backend:
119   - # Use a custom driver which takes special options
120   - driver: custom-driver-2
121   - driver_opts:
122   - foo: "1"
123   - bar: "2"
124   -
125   -# volume data
126   -ajouter dans le yaml docker-compose
127   -version: "3"
128   -services:
129   -
130   - db:
131   - image: postgres:13
132   - volumes:
133   - - db-data:/var/lib/postgresql/data
134   - networks:
135   - - backend
136   -
137   -networks:
138   - frontend:
139   -
140   -volumes:
141   - db-data:
142   -
143   -# passage de variable dans un docker-compose
144   -Beside your docker-compose.yml file, create a new text file called .env. In it, add the following:
145   -cat .env
146   -CLIENT_ID=yourclientid
147   -CLIENT_SECRET=yourclientsecret
148   -
149   -Now, open your docker-compose.yml file again, and replace yourclientid with ${CLIENT_ID} and yourclientsecret with ${CLIENT_SECRET}. That is:
150   -
151   -services:
152   - app:
153   - . . . #snipped
154   - environment:
155   - - GITHUB_CLIENT_ID=${CLIENT_ID}
156   - - GITHUB_CLIENT_SECRET=${CLIENT_SECRET}
157   -
158   -# comment passer des mots des passes
159   -version: "3.7"
160   -services:
161   -
162   - dachs:
163   - container_name: dachs-voparis
164   - image: dachs-voparis
165   - build:
166   - dockerfile: dachs-dockerfile
167   - secrets:
168   - - id_rsa
169   -
170   -secrets:
171   - id_rsa:
172   - file: id_rsa-phamy.prive
173   -
174   -pour chaque docker dont le secrets id_rsa sera défini, le fichier sera copie dans le docker dans /run/secrets/id_rsa
175   -root@c459f2b03173:~# ls -tralh /run/secrets/
176   -total 16K
177   --rw-r--r-- 1 dachsroot gavo 739 Nov 24 08:43 id_rsa
178   ---> sans docker swarm les droits sont ceux de l'hote !
179   -
180   -
181   -
.env renamed to conf/.env
... ... @@ -13,8 +13,10 @@ APACHE_PORT=8081
13 13 #default 8080
14 14 SERVERNAME=localhost
15 15 #name of the host machine - default to localhost, for dev
16   -#DOMAIN=``
  16 +DOMAIN=
17 17 #default to ""
  18 +PROTOCOL=http
  19 +#default to http
18 20  
19 21 #note the default ports inside the container will be binded to DACHS_PORT and AWSTATS_PORT of the host machine
20 22  
... ...
000-default.conf renamed to conf/000-default.conf
awstats.dachs.conf renamed to conf/awstats.dachs.conf
... ... @@ -50,7 +50,6 @@
50 50 #
51 51 LogFile="/usr/share/awstats/tools/logresolvemerge.pl /var/gavo/logs/web.log* |"
52 52  
53   -
54 53 # Enter the log file type you want to analyze.
55 54 # Possible values:
56 55 # W - For a web log file
... ...
dachs-dockerfile renamed to conf/dachs-dockerfile
... ... @@ -9,6 +9,9 @@ ARG HOMEPATH=/home/dachsroot
9 9 ARG DACHS_PORT
10 10 ARG APACHE_PORT
11 11 ARG SERVERNAME
  12 +ARG DOMAIN
  13 +ARG PROTOCOL
  14 +
12 15  
13 16  
14 17 RUN apt-get -y update
... ... @@ -26,7 +29,7 @@ RUN echo "deb http://vo.ari.uni-heidelberg.de/debian release main" > /etc/apt/so
26 29 RUN apt-get -y update
27 30 RUN apt-get -y upgrade
28 31 RUN apt-get install -y postgresql-13 postgresql-13-q3c postgresql-13-pgsphere
29   -RUN apt-get install -y git wget awstats net-tools vim
  32 +RUN apt-get install -y git wget awstats net-tools vim libgeo-ipfree-perl
30 33 RUN service postgresql restart && apt-get install -y gavodachs2-server
31 34 RUN apt-get install -y openssh-server openssh-client apache2 w3m
32 35  
... ... @@ -35,7 +38,7 @@ RUN apt-get install -y openssh-server openssh-client apache2 w3m
35 38 COPY . $HOMEPATH
36 39  
37 40 #import dachs server configuration files from git
38   -RUN echo $GITURL/vespa/dachs/servers/$GITREPO_INSTITUTION/$GITREPO_SERVER.git
  41 +RUN echo cloning from $GITURL/vespa/dachs/servers/$GITREPO_INSTITUTION/$GITREPO_SERVER.git
39 42 RUN git clone $GITURL/vespa/dachs/servers/$GITREPO_INSTITUTION/$GITREPO_SERVER.git $HOMEPATH/server
40 43  
41 44  
... ... @@ -58,24 +61,44 @@ RUN mkdir $HOMEPATH/services/ && cd $HOMEPATH/services/ && egrep -o 'https://[^"
58 61 RUN cp -r $HOMEPATH/services/* /var/gavo/inputs/
59 62  
60 63 #extract parameters values from gavo.rc
  64 +######
  65 +#replace infos into 000default.conf, awstats.dachs.conf, ports.conf
  66 +######
61 67  
  68 +##Adapt 000-default.conf ports and maintainer (taken from gavo.rc)
62 69 RUN export maintainerAddress=`grep "^maintainerAddress:" /etc/gavo.rc | cut -d ":" -f 2` && sed -i "s/webmaster@localhost/${maintainerAddress}/g" /etc/apache2/sites-enabled/000-default.conf && less /etc/apache2/sites-enabled/000-default.conf
63   -RUN sed -i "s/80/${APACHE_PORT}/g" /etc/apache2/ports.conf
64 70 RUN sed -i "s/8080/${APACHE_PORT}/g" /etc/apache2/sites-enabled/000-default.conf
65   -RUN sed -i "/serverPort/c\serverPort:${DACHS_PORT}" /etc/gavo.rc
66   -RUN sed -i "/serverURL/c\serverURL:${SERVERNAME}" /etc/gavo.rc
67 71  
68   -#replace infos into 000default.conf, awstats.dachs.conf, ports.conf
69   -#RUN sed -i "s/webmaster@localhost/${maintainerAddress}/g" /etc/apache2/sites-enabled/000-default.conf
  72 +##Adapt ports.conf with APACHE PORT
  73 +RUN sed -i "s/80/${APACHE_PORT}/g" /etc/apache2/ports.conf
70 74  
  75 +##Adapt awstats.dachs.conf with server address and domain
  76 +RUN if [ "$SERVERNAME" = "localhost" ]; then \
  77 + sed -i "s/mydomain/localhost/g" /etc/awstats/awstats.dachs.conf && sed -i "s/myserver.mydomain/localhost/g" /etc/awstats/awstats.dachs.conf \
  78 + ;else \
  79 + sed -i "s/mydomain/${DOMAIN}/g" /etc/awstats/awstats.dachs.conf && sed -i "s/myserver/${SERVERNAME}/g" /etc/awstats/awstats.dachs.conf \
  80 + ;fi
  81 +
  82 +##Adapt gavo.rc with ports and server name
  83 +
  84 +RUN sed -i "/serverPort/c\serverPort:${DACHS_PORT}" /etc/gavo.rc
  85 +RUN sed -i "/corsOriginPat/c\corsOriginPat:${PROTOCOL}.*" /etc/gavo.rc
  86 +
  87 +RUN if [ "$SERVERNAME" = "localhost" ]; then \
  88 + sed -i "/serverURL/c\serverURL:" /etc/gavo.rc &&\
  89 + echo "############################ WARNING gavo.rc overwrite -- localhost for dev only ###############################" \
  90 + ; else \
  91 + sed -i "/serverURL/c\serverURL:${PROTOCOL}://${SERVERNAME}.${DOMAIN}:${DACHS_PORT}" /etc/gavo.rc &&\
  92 + echo "Warning : gavo.rc overwritten by .env servername, domain, protocol and port values" \
  93 + ; fi
71 94  
72 95 ###
73 96 #dachs configuration
74 97 ###
75   -
76 98 RUN chown dachsroot:gavo /var/gavo/etc/defaultmeta.txt
77 99 RUN chown dachsroot:gavo /var/gavo/web/nv_static/img/logo*
78 100 RUN chown -R dachsroot:gavo /var/gavo/inputs/*
  101 +RUN chown -R dachsroot:gavo /var/gavo/logs
79 102  
80 103  
81 104 ###
... ... @@ -88,9 +111,9 @@ RUN a2enmod cgi
88 111 ###
89 112 # auto update awstats data using cron
90 113 ###
91   -
  114 +RUN mkdir -p ${HOMEPATH}/dachslogs
92 115 RUN echo "#!/bin/bash" > /etc/cron.daily/awstats
93   -RUN echo "/usr/bin/perl /usr/lib/cgi-bin/awstats.pl -config=dachs -update" >> /etc/cron.daily/awstats
  116 +RUN echo "/usr/bin/perl /usr/lib/cgi-bin/awstats.pl -config=dachs -update" >> /etc/cron.daily/awstats
94 117 RUN chgrp 755 /etc/cron.daily/awstats
95 118  
96 119  
... ...
docker-compose.yml renamed to conf/docker-compose.yml
... ... @@ -19,15 +19,20 @@ services:
19 19 dockerfile: dachs-dockerfile
20 20 args:
21 21 - "VERSION=${VERSION}"
  22 + - "GITREPO_SERVER=${GITREPO_SERVER}"
22 23 - "GITREPO_INSTITUTION=${GITREPO_INSTITUTION}"
23   - - "GITREPO_SERVER=${GITREPO_SERVER}"
24 24 - "DACHS_PORT=${DACHS_PORT}"
25 25 - "APACHE_PORT=${APACHE_PORT}"
26 26 - "SERVERNAME=${SERVERNAME}"
27   -
28   -### example if you need to mount volumes (e.g if your service needs to parse files or if you want to upload it through dachs)
29   -# volumes:
30   -# - ./data:/home/dachsroot/data
31   -
  27 + - "DOMAIN=${DOMAIN}"
  28 + - "PROTOCOL=${PROTOCOL}"
  29 + volumes:
  30 + #- ../apache/cgi-bin:/home/dachsroot/apache/cgi-bin
  31 + - ../apache/logapache:/var/log/apache2
  32 + - ../apache/dachslogs:/var/gavo/logs
  33 +
  34 + # example if you need to mount volumes (e.g if your service needs to parse files or if you want to upload it through dachs)
  35 + #- paht/to/data:/var/gavo/inputs/service/data
  36 +
32 37 ### To uncomment for production :
33 38 # restart: always
... ...
docker-entrypoint.sh renamed to conf/docker-entrypoint.sh
... ... @@ -4,6 +4,8 @@
4 4 service ssh restart
5 5 service postgresql restart
6 6  
  7 +/usr/bin/perl /usr/lib/cgi-bin/awstats.pl -config=dachs -update
  8 +
7 9 for rep in $(find /var/gavo/inputs/[0-9a-zA-Z]* -maxdepth 0 -type d | cut -f5 -d'/')
8 10 do
9 11 su - dachsroot bash -c "dachs imp ${rep}/q.rd"
... ... @@ -11,10 +13,10 @@ do
11 13 su - dachsroot bash -c "dachs pub //tap"
12 14 su - dachsroot bash -c "dachs pub ${rep}/q.rd"
13 15 done
14   -dachs serve restart
15   -
  16 +service dachs restart
16 17 service apache2 restart
17 18  
  19 +
18 20 #block a tester pour l'accès aux depots privé
19 21 #fonctionne avec la clé privé ssh (secrets dans docker compose)
20 22 eval "$(ssh-agent -s)"
... ...
logos/logo_big.png renamed to conf/logos/logo_big.png

15.5 KB

logos/logo_medium.png renamed to conf/logos/logo_medium.png

9.49 KB

myconf.conf deleted
... ... @@ -1,4 +0,0 @@
1   -my_servername=voparis-test
2   -my_domain=obspm.fr
3   -maintainer_email=vo.paris@obspm.fr
4   -authority_ivoid="ivo://vopdc.obspm"
ports.conf deleted
... ... @@ -1,16 +0,0 @@
1   -# If you just change the port or add more ports here, you will likely also
2   -# have to change the VirtualHost statement in
3   -# /etc/apache2/sites-enabled/000-default.conf
4   -
5   -Listen 8080
6   -
7   -<IfModule ssl_module>
8   - Listen 443
9   -</IfModule>
10   -
11   -<IfModule mod_gnutls.c>
12   - Listen 443
13   -</IfModule>
14   -
15   -# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
16   -