Darrera actualització: 08-06-2016

A continuació s’exposa com simular GICAR en entorns de desenvolupament, amb l’objectiu de que els proveïdors de desenvolupament tinguin una forma senzilla de simular GICAR i testejar-lo sense necessitat de disposar, per exemple, de connexió a la Xarxa de la Generalitat, ni de demanar configuracions a l’Oficina Tècnica de GICAR.

Es presenten dues estratègies per a fer-ho:

Apache amb capçaleres estàtiques

Configurant el frontal web apache de cara a que generi de forma automàtica les capçaleres de GICAR. S’ha d’afegir a l’arxiu httpd.conf, el següent:

  • Habilitar el mod_header en el apache.

  • Generar les següents capçaleres a nivell d’apache utilitzant les següents directives:

    • RequestHeader set GICAR_ID “00000000T”
    • RequestHeader set GICAR “CODIINTERN=NRDRJN0001;NIF=00000000T;EMAIL=mail.admin@gencat.net;UNITAT_MAJOR=CTTI;UNITAT_MENOR=CTTI Qualitat”

Aquesta configuració fa que l’Apache afegeixi la capçalera GICAR i GICAR_ID, amb valor fix, dins de totes les peticions HTTP rebudes.

Docker

Temporalment aquesta funcionalitat està indisponible.

Hem creat un contenidor Docker exacte als Apache-GICAR que es poden trobar als CPDs de la Generalitat. Aixecant a l’entorn del desenvolupador aquest contenidor, amb connexió a un Policy Server de desenvolupament que és visible des dels entorns dels proveïdors, es pot simular el funcionament real d’una aplicació integrada amb GICAR d’una manera molt senzilla (només permet simular proves amb usuari i contrasenya, no amb certificat digital).

Per a fer això cal seguir el següent procediment:

  1. El proveïdor de desenvolupament s’ha d’instal·lar el docker engine que permet gestionar imatges i contenidors (https://www.docker.com/products/docker-engine), o bé utilitzar l’entorn de desenvolupament de Canigó (http://canigo.ctti.gencat.cat/canigo/entorn-desenvolupament/).

  2. Dockerfile GICAR (https://hub.docker.com/r/gencatcloud/gicar/) :

    FROM  centos:6.6
    
    RUN yum install httpd glibc libstdc++ ncurses perl unzip tar xz -y
    
    ENV httpd /etc/httpd
    
    RUN mkdir -p ${httpd}/CA/webagent
    
    RUN curl -o ${httpd}/CA/webagent.tar.xz http://canigo.ctti.gencat.cat/related/cloud/fitxers-suport/webagent.tar.xz
    RUN tar xfvJ ${httpd}/CA/webagent.tar.xz -C ${httpd}/CA/
    RUN rm ${httpd}/CA/webagent.tar.xz
    
    RUN curl -o ${httpd}/conf/config.zip http://canigo.ctti.gencat.cat/related/cloud/fitxers-suport/config.zip
    RUN unzip  -o ${httpd}/conf/config.zip -d  ${httpd}/conf/
    RUN rm ${httpd}/conf/config.zip
    
    ENV NETE_WA_ROOT ${httpd}/CA/webagent
    ENV NETE_WA_PATH ${NETE_WA_ROOT}/bin
    ENV CAPKIHOME ${httpd}/CA/webagent/CAPKI
    ENV LD_LIBRARY_PATH ${NETE_WA_ROOT}/bin:${NETE_WA_ROOT}/bin/thirdparty:${LD_LIBRARY_PATH}
    ENV PATH ${NETE_WA_PATH}:${PATH}
    
    RUN mv ${httpd}/conf/headers.cgi /var/www/cgi-bin/
    RUN mv ${httpd}/conf/index.html /var/www/html/
    RUN chmod 755 -R /var/www/cgi-bin/
    RUN chmod 755 -R /var/www/html/
    
    RUN echo "#!/bin/bash" > /entrypoint.sh
    RUN echo "set -m" >> /entrypoint.sh
    RUN echo "/usr/sbin/apachectl -D FOREGROUND &" >> /entrypoint.sh
    #RUN echo "sleep 30" >> /entrypoint.sh
    RUN echo "/etc/httpd/CA/webagent/bin/smreghost -i \$PS_IP -u \$GICARUSER -p \$GICARPWD -hn \$ContainerHostName -hc \$HCOGICAR -f /etc/httpd/conf/Smhost.conf -o" >> /entrypoint.sh
    RUN echo "sed -i -- 's/\\\$AgentConfigDocker/'\"\$AgentConfigDocker\"'/g' /etc/httpd/conf/WebAgent.conf" >>  /entrypoint.sh
    RUN echo "sed -i -- 's/\\\$AGENTNAME/'\"\$AGENTNAME\"'/g' /etc/httpd/conf/LocalConfigGicar.conf" >> /entrypoint.sh
    RUN echo "chown apache:apache /etc/httpd/conf/Smhost.conf" >> /entrypoint.sh
    RUN echo "fg" >> /entrypoint.sh
    
    RUN chmod 755 /entrypoint.sh
    
    #Copiem el fitxer wait-for-it
    COPY wait-for-it.sh /
    RUN chmod 755 /wait-for-it.sh
    
    CMD ["/entrypoint.sh"]
    
  3. Executar la següent comanda per a generar la imatge de l’apache GICAR:

    $ docker build -t gicar_dev .
    
  4. Per a demanar la configuració per a arrencar el Docker d’apache GICAR, cal omplir el següent formulari:





     
  5. Amb les dades que se us proporcionin, podreu arrencar el contenidor amb la següent comanda:

    $ docker run -d -p 80:80 -e "PS_IP=[ip]" -e "AgentConfigDocker=[aco]" -e "ContainerHostName=[nom del contenidor]" -e "AGENTNAME=[agent_name],[nom de domini]" -e "HCOGICAR=[hco]" -e "GICARUSER=[user]" -e "GICARPWD=[pwd]" -e "APPSERVER_PORT_8080_TCP_ADDR=localhost" -e "APPSERVER_PORT_8080_TCP_PORT=8080" --name gicar_dev gicar_dev
    
  6. Si necessiteu configuracions específiques per a connectar al vostre servidor d’aplicacions, podeu per fer el següent:

    • Descarregueu el httpd.conf que s’inclou config.zip del Dockerfile

    • Creeu la imatge de base de gicar_dev

    • Creeu la vostra imatge personalitzada de gicar

      FROM  gicar_dev
      
      # instal·la els mòduls necessaris, ajp, mod_wl, ... 
      
      RUN ... 
      
      # copia el fitxer personalitzat httpd.conf a la ruta correcta
      
      COPY myhttpd.conf /etc/httpd/conf/httpd.conf