Install Docker Netscaler CPX
Hoy os queremos enseñar a instalar Netscaler CPX sobre una máquina virtual VMware Centos 7 mediante un sistema de Dockers. Para enseñaros como hacerlo utilizaré VMware Workstation y una máquina virtual linux Centos 7 con red en modo Bridge. Así que nos ponemos manos a la obra, y lanzamos el comando para instalar Docker:
yum –y install docker
Ahora habilitamos el servicio:
systemctl enable docker.service
Ahora podemos reiniciar el sistema. Al arrancar veremos que se ha generado un nuevo interface:
Podemos gestionar los servicios lanzando los siguientes comandos:
systemctl start docker.service ## Arranca docker ## systemctl stop docker.service ## Para docker ## systemctl restart docker.service ## Reinicia docker ## systemctl status docker.service ## Ver estado docker ##
Descargamos la imagen de Netscaler CPX. Se pueden ver las instrucciones en la web de Docker Store:
El comando sería en este momento:
[root@localhost ~]# docker pull store/citrix/netscalercpx:12.0-56.20 Trying to pull repository docker.io/store/citrix/netscalercpx ... 12.0-56.20: Pulling from docker.io/store/citrix/netscalercpx 6ce531b1ca45: Pull complete 38e4a6bc2d04: Pull complete 7cbb621499da: Pull complete a2921fd6218f: Pull complete 2b4e7c8adb0a: Pull complete 980882099ccc: Pull complete 81e3dc3dd27c: Pull complete 17dabbe4b8a9: Pull complete 0e3da0d4fd64: Pull complete f2e7b4c3e799: Pull complete c3469b674821: Pull complete 9af9916546cf: Pull complete 1aeb683ace83: Pull complete 4e3ae7b95fc5: Pull complete Digest: sha256:d88b72e227efdccdf2e7a553a4207038f34825ce08ce7c9cbf5664ad5c1cf23a Status: Downloaded newer image for docker.io/store/citrix/netscalercpx:12.0-56.20Comprobamos que se ha descargado la image para poder lanzarlo:
[root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/store/citrix/netscalercpx 12.0-56.20 8528cafdfa33 6 months ago 375 MBPara generar el docker de Netscaler CPX usaríamos el siguiente comando:
docker run -dt -P --privileged=true –net=host –e NS_NETMODE=”HOST” -e CPX_CORES= --name --ulimit core=-1 -e CPX_NW_DEV='' -e CPX_CONFIG=’{“YIELD”:”NO”}’ -e LS_IP= -e LS_PORT= e PLATFORM=CP1000 -v :/cpx :Os dejo el ejemplo que yo he utilizado y explico cada parámetro:
[root@localhost ~]# docker run -e EULA=yes -dt -P --ulimit core=-1 --cap-add=NET_ADMIN store/citrix/netscalercpx:12.0-56.20 9fafe15a2025db7a75e2e2efe6d5da32152736e3bfa52a372bc18e148763e555PARAMETROS:
- dt: Ejecutar el docker en background
- P: Abre los puertos por defecto para Netscaler CPX
- 80 se utiliza para HTTP
- 443 se usa para HTTPS
- 22 utilizado para SSH
- 161 / UDP se usa para SNMP
- p: Para cada puerto individual (Ejemplo: -p 22 -p 443 -p 161/udp)
- ulimit: No limitamos las opciones
- cap-add: Añadimos capacidades linux
MAS INFORMACION: https://docs.citrix.com/en-us/netscaler-cpx/12/deploy-using-docker-image-file.html
Comprobamos que se ha generado. Fijaros en los puertos que asigna a los puertos por defecto en el docker que son los que utilizaréis para conectaros. Ejemplo, 32770 para el 80:
[root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9fafe15a2025 store/citrix/netscalercpx:12.0-56.20 "/var/netscaler/bi..." About a minute ago Up About a minute 443/tcp, 0.0.0.0:32771->22/tcp, 0.0.0.0:32770->80/tcp, 0.0.0.0:32769->161/udp ecstatic_swirles
Una vez que lo tenemos generado, ahora tenemos que averiguar la IP. Para ello utilizaremos el IP del CONTAINER o DOCKER:
[root@localhost ~]# docker inspect 9fafe15a2025
Deberéis aseguraros que existe regla de firewall:
iptables -L Chain DOCKER (1 references) target prot opt source destination ACCEPT udp -- anywhere 172.17.0.2 udp dpt:snmp ACCEPT tcp -- anywhere 172.17.0.2 tcp dpt:http ACCEPT tcp -- anywhere 172.17.0.2 tcp dpt:ssh
Si no queréis problemas sería mejor habilitar las iptables (y deshabilitar Selinux, salvo que os manejéis) ya que sino los dockers os darán errores aunque os dejo como hacer un disabled:
[root@localhost ~]# systemctl disable firewalld Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) ago 01 23:12:43 localhost.localdomain firewalld[723]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t filter -C DOCKER ! -i docker0 -o docker0 -p udp -d 172.17.0.2 --dport...at chain?). ago 01 23:12:43 localhost.localdomain firewalld[723]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t nat -C POSTROUTING -p udp -s 172.17.0.2 -d 172.17.0.2 --dport 161 -j ... that name. ago 01 23:12:43 localhost.localdomain firewalld[723]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t nat -C DOCKER -p tcp -d 0/0 --dport 32774 -j DNAT --to-destination 17... that name. ago 01 23:12:43 localhost.localdomain firewalld[723]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t filter -C DOCKER ! -i docker0 -o docker0 -p tcp -d 172.17.0.2 --dport...at chain?). ago 01 23:12:43 localhost.localdomain firewalld[723]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t nat -C POSTROUTING -p tcp -s 172.17.0.2 -d 172.17.0.2 --dport 80 -j M... that name. ago 01 23:12:43 localhost.localdomain firewalld[723]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t nat -C DOCKER -p tcp -d 0/0 --dport 32775 -j DNAT --to-destination 17... that name. ago 01 23:12:43 localhost.localdomain firewalld[723]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t filter -C DOCKER ! -i docker0 -o docker0 -p tcp -d 172.17.0.2 --dport...at chain?). ago 01 23:12:43 localhost.localdomain firewalld[723]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t nat -C POSTROUTING -p tcp -s 172.17.0.2 -d 172.17.0.2 --dport 22 -j M... that name. ago 01 23:16:17 localhost.localdomain systemd[1]: Stopping firewalld - dynamic firewall daemon... ago 01 23:16:17 localhost.localdomain systemd[1]: Stopped firewalld - dynamic firewall daemon. Hint: Some lines were ellipsized, use -l to show in full.
Con todo esto abrimos un navegador y vamos a la url:
https://IP_DOCKER:PORT_ASIGNADO
La imagen es sobre la propia máquina virtual, por eso voy al puerto 80. Si lo hacemos sobre el host que lanza la máquina virtual iríamos a http://IP_MAQUINA_VIRTUAL:32770 en mi caso es el puerto que me ha asignado al generar el docker para el puerto 80:
La contraseña para SSH es root / linux
Podéis comprobar que se basa en debian fácilmente:
root@8d694a324986:~# cat /etc/debian_version stretch/sidExiste un script en la instalación que se llama cli_script.sh para usar con todos los comandos de netscaler:
root@8d694a324986:~# cli_script.sh "add server test1 192.1.1.1" exec: add server test1 192.1.1.1 DoneOtro ejemplo:
root@8d694a324986:~# cli_script.sh "show ns config" exec: show ns config NetScaler IP: 172.17.0.2 (mask: 255.255.0.0) Number of MappedIP(s): 0 Node: Standalone NetScaler IP Vlan: 1 Tagged: NO Bound Ports: System Time: Thu Aug 2 00:52:08 2018 Last Config Changed Time: Thu Aug 2 00:47:12 2018 Config Changed since Last Saved Config: TRUE Done
La entrada Install Docker Netscaler CPX se publicó primero en VMware Citrix Blog.