Diferències
Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
| tech:vagrant:casosuso [03/05/2019 01:25] – mate | tech:vagrant:casosuso [16/11/2021 02:50] (actual) – suprimit mate | ||
|---|---|---|---|
| Línia 1: | Línia 1: | ||
| - | = casos de uso | ||
| - | * [[tech: | ||
| - | * [[tech: | ||
| - | * [[tech: | ||
| - | los ficheros necesarios se han servido desde un pequeño contenedor (por restricciones de licencia o firewall), | ||
| - | <code bash> | ||
| - | |||
| - | == uso de variables | ||
| - | |||
| - | |||
| - | == vagrant con Tomcat (7/8) y JDK (7/8) | ||
| - | <code yaml; Vagrantfile> | ||
| - | Vagrant.configure(" | ||
| - | config.vm.box = " | ||
| - | config.vm.box_version = " | ||
| - | config.vm.provision " | ||
| - | |||
| - | config.vm.provider :virtualbox do |v| | ||
| - | v.name = " | ||
| - | v.linked_clone = true | ||
| - | v.memory = 2048 | ||
| - | v.cpus = 2 | ||
| - | end | ||
| - | |||
| - | config.vm.provision " | ||
| - | |||
| - | config.vm.provision " | ||
| - | |||
| - | end | ||
| - | </ | ||
| - | <code properties; tomcat.service> | ||
| - | [Unit] | ||
| - | Description=Apache Tomcat Web Application Container | ||
| - | After=network.target | ||
| - | |||
| - | [Service] | ||
| - | Type=forking | ||
| - | |||
| - | Environment=JAVA_HOME=REPLACE_PATH_HERE/ | ||
| - | Environment=CATALINA_PID=/ | ||
| - | Environment=CATALINA_HOME=/ | ||
| - | Environment=CATALINA_BASE=/ | ||
| - | Environment=' | ||
| - | Environment=' | ||
| - | |||
| - | ExecStart=/ | ||
| - | ExecStop=/ | ||
| - | |||
| - | User=tomcat | ||
| - | Group=tomcat | ||
| - | UMask=0007 | ||
| - | RestartSec=10 | ||
| - | Restart=always | ||
| - | |||
| - | [Install] | ||
| - | WantedBy=multi-user.target | ||
| - | </ | ||
| - | <code bash; install.sh> | ||
| - | #!/bin/bash | ||
| - | |||
| - | # http:// | ||
| - | TOMCAT_TGZ=" | ||
| - | TOMCAT_URL_DOWNLOAD=" | ||
| - | TOMCAT_PATH="/ | ||
| - | JAVA_PATH="/ | ||
| - | JAVA_INSTALLER=" | ||
| - | DEBIAN_FRONTEND=noninteractive | ||
| - | |||
| - | sudo add-apt-repository -y ppa: | ||
| - | sudo apt-get -y update | ||
| - | |||
| - | echo " | ||
| - | sudo apt-get install -y curl ${JAVA_INSTALLER} > /dev/null 2>&1 | ||
| - | |||
| - | sudo echo " | ||
| - | |||
| - | sudo groupadd tomcat | ||
| - | sudo useradd -s /bin/false/ -g tomcat -d ${TOMCAT_PATH} tomcat | ||
| - | sudo mkdir -p ${TOMCAT_PATH} | ||
| - | sudo curl ${TOMCAT_URL_DOWNLOAD} --output / | ||
| - | sudo tar xzvf / | ||
| - | sudo rm / | ||
| - | sudo chgrp -R tomcat ${TOMCAT_PATH} | ||
| - | sudo chmod -R g+r ${TOMCAT_PATH}/ | ||
| - | sudo chmod g+x ${TOMCAT_PATH}/ | ||
| - | sudo chown -R tomcat ${TOMCAT_PATH}/ | ||
| - | |||
| - | sudo mv / | ||
| - | sudo sed -i " | ||
| - | sudo systemctl daemon-reload | ||
| - | sudo systemctl enable tomcat | ||
| - | sudo sed -i '/< | ||
| - | sudo systemctl start tomcat | ||
| - | sudo echo " | ||
| - | </ | ||
| - | <code bash; addInsecurekey.sh> | ||
| - | #!/bin/bash | ||
| - | su - vagrant | ||
| - | echo " | ||
| - | " >> .ssh/ | ||
| - | </ | ||
| - | === otras versiones | ||
| - | <code bash; install-tomcat7+oracle7> | ||
| - | #!/bin/bash | ||
| - | |||
| - | # http:// | ||
| - | TOMCAT_TGZ=" | ||
| - | TOMCAT_URL_DOWNLOAD=" | ||
| - | TOMCAT_PATH="/ | ||
| - | JAVA_PATH="/ | ||
| - | JAVA_TGZ=" | ||
| - | JAVA_URL_DOWNLOAD=" | ||
| - | DEBIAN_FRONTEND=noninteractive | ||
| - | |||
| - | #sudo add-apt-repository -y ppa: | ||
| - | sudo apt-get -y update | ||
| - | |||
| - | #echo " | ||
| - | sudo apt-get install -y curl > /dev/null 2>&1 | ||
| - | |||
| - | sudo curl ${JAVA_URL_DOWNLOAD} --output / | ||
| - | sudo mkdir -p ${JAVA_PATH} | ||
| - | sudo tar xzvf / | ||
| - | sudo rm / | ||
| - | sudo chown -R root:root ${JAVA_PATH} | ||
| - | sudo echo " | ||
| - | sudo echo " | ||
| - | |||
| - | sudo groupadd tomcat | ||
| - | sudo useradd -s /bin/false/ -g tomcat -d ${TOMCAT_PATH} tomcat | ||
| - | sudo mkdir -p ${TOMCAT_PATH} | ||
| - | sudo curl ${TOMCAT_URL_DOWNLOAD} --output / | ||
| - | sudo tar xzvf / | ||
| - | sudo rm / | ||
| - | sudo chgrp -R tomcat ${TOMCAT_PATH} | ||
| - | sudo chmod -R g+r ${TOMCAT_PATH}/ | ||
| - | sudo chmod g+x ${TOMCAT_PATH}/ | ||
| - | sudo chown -R tomcat ${TOMCAT_PATH}/ | ||
| - | |||
| - | sudo mv / | ||
| - | sudo sed -i " | ||
| - | sudo systemctl daemon-reload | ||
| - | sudo systemctl enable tomcat | ||
| - | sudo sed -i '/< | ||
| - | sudo systemctl start tomcat | ||
| - | sudo echo " | ||
| - | </ | ||
| - | <code bash; install-tomcat8+oracle8> | ||
| - | #!/bin/bash | ||
| - | |||
| - | # http:// | ||
| - | TOMCAT_TGZ=" | ||
| - | TOMCAT_URL_DOWNLOAD=" | ||
| - | TOMCAT_PATH="/ | ||
| - | JAVA_PATH="/ | ||
| - | JAVA_INSTALLER=" | ||
| - | DEBIAN_FRONTEND=noninteractive | ||
| - | |||
| - | sudo add-apt-repository -y ppa: | ||
| - | sudo apt-get -y update | ||
| - | |||
| - | echo " | ||
| - | sudo apt-get install -y curl ${JAVA_INSTALLER} > /dev/null 2>&1 | ||
| - | |||
| - | sudo echo " | ||
| - | |||
| - | sudo groupadd tomcat | ||
| - | sudo useradd -s /bin/false/ -g tomcat -d ${TOMCAT_PATH} tomcat | ||
| - | sudo mkdir -p ${TOMCAT_PATH} | ||
| - | sudo curl ${TOMCAT_URL_DOWNLOAD} --output / | ||
| - | sudo tar xzvf / | ||
| - | sudo rm / | ||
| - | sudo chgrp -R tomcat ${TOMCAT_PATH} | ||
| - | sudo chmod -R g+r ${TOMCAT_PATH}/ | ||
| - | sudo chmod g+x ${TOMCAT_PATH}/ | ||
| - | sudo chown -R tomcat ${TOMCAT_PATH}/ | ||
| - | sudo sed -i.bak " | ||
| - | sudo sed -i.bak " | ||
| - | |||
| - | sudo mv / | ||
| - | sudo sed -i " | ||
| - | sudo systemctl daemon-reload | ||
| - | sudo systemctl enable tomcat | ||
| - | sudo sed -i '/< | ||
| - | sudo systemctl start tomcat | ||
| - | sudo echo " | ||
| - | </ | ||
| - | <code bash; install-tomcat8+oracle7> | ||
| - | #!/bin/bash | ||
| - | |||
| - | # http:// | ||
| - | TOMCAT_TGZ=" | ||
| - | TOMCAT_URL_DOWNLOAD=" | ||
| - | TOMCAT_PATH="/ | ||
| - | JAVA_PATH="/ | ||
| - | JAVA_TGZ=" | ||
| - | JAVA_URL_DOWNLOAD=" | ||
| - | DEBIAN_FRONTEND=noninteractive | ||
| - | |||
| - | sudo apt-get -y update | ||
| - | sudo apt-get install -y curl > /dev/null 2>&1 | ||
| - | |||
| - | sudo curl ${JAVA_URL_DOWNLOAD} --output / | ||
| - | sudo mkdir -p ${JAVA_PATH} | ||
| - | sudo tar xzvf / | ||
| - | sudo rm / | ||
| - | sudo chown -R root:root ${JAVA_PATH} | ||
| - | sudo echo " | ||
| - | sudo echo " | ||
| - | |||
| - | sudo groupadd tomcat | ||
| - | sudo useradd -s /bin/false/ -g tomcat -d ${TOMCAT_PATH} tomcat | ||
| - | sudo mkdir -p ${TOMCAT_PATH} | ||
| - | sudo curl ${TOMCAT_URL_DOWNLOAD} --output / | ||
| - | sudo tar xzvf / | ||
| - | sudo rm / | ||
| - | sudo chgrp -R tomcat ${TOMCAT_PATH} | ||
| - | sudo chmod -R g+r ${TOMCAT_PATH}/ | ||
| - | sudo chmod g+x ${TOMCAT_PATH}/ | ||
| - | sudo chown -R tomcat ${TOMCAT_PATH}/ | ||
| - | sudo sed -i.bak " | ||
| - | sudo sed -i.bak " | ||
| - | |||
| - | sudo mv / | ||
| - | sudo sed -i " | ||
| - | sudo systemctl daemon-reload | ||
| - | sudo systemctl enable tomcat | ||
| - | sudo sed -i '/< | ||
| - | sudo systemctl start tomcat | ||
| - | sudo echo " | ||
| - | </ | ||
| - | |||
| - | === vagrant box | ||
| - | * crear una box en Vagrant: | ||
| - | - '' | ||
| - | - subir (versión, proveedor, etc...) | ||
| - | - descargar (desde otro Vagrantfile):< | ||
| - | |||
| - | |||
| - | == 3 nodos vagrant + docker | ||
| - | la idea es desplegar un cluster swarm | ||
| - | <sxh ruby; title: 3 nodos vagrant> | ||
| - | Vagrant.configure(" | ||
| - | | ||
| - | | ||
| - | | ||
| - | # | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | end | ||
| - | </ | ||
| - | |||
| - | <sxh shell; title: instalación básica> | ||
| - | #!/bin/bash | ||
| - | sudo apt-get remove -y docker docker-engine docker.io containerd runc | ||
| - | sudo apt-get update | ||
| - | sudo apt-get install -y \ | ||
| - | | ||
| - | | ||
| - | curl \ | ||
| - | | ||
| - | | ||
| - | vim | ||
| - | curl -fsSL https:// | ||
| - | sudo add-apt-repository \ | ||
| - | " | ||
| - | | ||
| - | | ||
| - | sudo apt-get update | ||
| - | sudo apt-get install -y docker-ce | ||
| - | sudo usermod -aG docker vagrant | ||
| - | #newgrp docker | ||
| - | #docker run hello-world | ||
| - | </ | ||
| - | |||
| - | == vagrant + docker | ||
| - | <sxh ruby; title: vagrant despliega docker, falta ./data> | ||
| - | Vagrant.configure(2) do |config| | ||
| - | config.vm.box = " | ||
| - | config.vm.hostname = " | ||
| - | config.vm.network " | ||
| - | config.vm.network | ||
| - | config.vm.synced_folder " | ||
| - | # config.vm.provision " | ||
| - | config.vm.provision " | ||
| - | d.pull_images " | ||
| - | d.run " | ||
| - | args: "-v '/ | ||
| - | end | ||
| - | config.vm.provider " | ||
| - | vb.name = " | ||
| - | vb.memory = " | ||
| - | vb.cpus = 2 | ||
| - | vb.linked_clone = true | ||
| - | end | ||
| - | end | ||
| - | </ | ||
| - | |||
| - | |||
| - | == configuraciones simples | ||
| - | <sxh ruby; title: 1 máquina, varias opciones de configuración> | ||
| - | Vagrant.configure(2) do |config| | ||
| - | config.vm.box = " | ||
| - | config.vm.hostname = " | ||
| - | config.vm.provision " | ||
| - | |||
| - | config.vm.network : | ||
| - | config.vm.network : | ||
| - | config.vm.network : | ||
| - | config.vm.network : | ||
| - | config.vm.synced_folder " | ||
| - | |||
| - | config.vm.provider " | ||
| - | vb.name = " | ||
| - | vb.memory = 1024 | ||
| - | vb.cpus = 3 | ||
| - | vb.linked_clone = true | ||
| - | vb.gui = true | ||
| - | end | ||
| - | end | ||
| - | </ | ||
| - | |||
| - | <sxh ruby; title: 2 máquinas> | ||
| - | Vagrant.configure(" | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | end | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | end | ||
| - | end | ||
| - | </ | ||
| - | |||
| - | == master (Dani) | ||
| - | * la configuración de las VM está en fichero separado | ||
| - | |||
| - | <sxh ruby; highlight: | ||
| - | API_VERSION = ' | ||
| - | VMS_FILE_PATH = ' | ||
| - | |||
| - | hosts = YAML.load_file(VMS_FILE_PATH) | ||
| - | |||
| - | Vagrant.configure(API_VERSION) do |config| | ||
| - | hosts.each do |host| | ||
| - | config.vm.define host[' | ||
| - | node.vm.box = host[' | ||
| - | node.vm.hostname = host[' | ||
| - | node.vm.network : | ||
| - | |||
| - | host[' | ||
| - | host[' | ||
| - | |||
| - | if host[' | ||
| - | host[' | ||
| - | config.vm.provision : | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | end | ||
| - | } | ||
| - | end | ||
| - | |||
| - | config.vm.provider :virtualbox do |v| | ||
| - | v.linked_clone = true | ||
| - | v.name = host[' | ||
| - | v.cpus = host[' | ||
| - | v.memory = host[' | ||
| - | end | ||
| - | end | ||
| - | end | ||
| - | end | ||
| - | </ | ||
| - | |||
| - | <sxh ruby; title: vms.yml> | ||
| - | - name: openshift-master | ||
| - | box: centos/7 | ||
| - | hostname: 10.0.0.10 | ||
| - | memory: 2048 | ||
| - | cpus: 2 | ||
| - | ip: 10.0.0.10 | ||
| - | ports: | ||
| - | - host: 8443 | ||
| - | guest: 8443 | ||
| - | sync: | ||
| - | - host: . | ||
| - | guest: /vagrant | ||
| - | type: nfs | ||
| - | |||
| - | - name: openshift-node1 | ||
| - | box: centos/7 | ||
| - | hostname: 10.0.0.11 | ||
| - | memory: 2048 | ||
| - | cpus: 2 | ||
| - | ip: 10.0.0.11 | ||
| - | ports: | ||
| - | - host: 8081 | ||
| - | guest: 80 | ||
| - | - host: 8481 | ||
| - | guest: 443 | ||
| - | sync: | ||
| - | - host: . | ||
| - | guest: /vagrant | ||
| - | type: nfs | ||
| - | |||
| - | - name: openshift-node2 | ||
| - | box: centos/7 | ||
| - | hostname: 10.0.0.12 | ||
| - | memory: 2048 | ||
| - | cpus: 2 | ||
| - | ip: 10.0.0.12 | ||
| - | ports: | ||
| - | - host: 8082 | ||
| - | guest: 80 | ||
| - | - host: 8482 | ||
| - | guest: 443 | ||
| - | sync: | ||
| - | - host: . | ||
| - | guest: /vagrant | ||
| - | type: nfs | ||
| - | |||
| - | - name: bastion | ||
| - | box: centos/7 | ||
| - | memory: 512 | ||
| - | cpus: 1 | ||
| - | ip: 10.0.0.2 | ||
| - | sync: | ||
| - | - host: . | ||
| - | guest: /vagrant | ||
| - | type: nfs | ||
| - | ansible_local: | ||
| - | config: | ||
| - | mode: pip | ||
| - | version: 2.4.1.0 | ||
| - | playbooks: | ||
| - | - limit: " | ||
| - | become: true | ||
| - | playbook: ./ | ||
| - | inventory: ./ | ||
| - | - limit: " | ||
| - | become: true | ||
| - | playbook: ./ | ||
| - | inventory: ./ | ||
| - | </ | ||
| - | |||
| - | == master | ||
| - | <sxh ruby; title: Vagrantfile> | ||
| - | VAGRANTFILE_API_VERSION = ' | ||
| - | DEFAULT_PROVIDER_MEMORY = ' | ||
| - | DEFAULT_PROVIDER_CPUS = ' | ||
| - | DEFAUTL_LINKED_CLONE = true | ||
| - | |||
| - | def do_ports(vm, | ||
| - | if host.has_key? | ||
| - | host[' | ||
| - | vm.network : | ||
| - | end | ||
| - | end | ||
| - | end | ||
| - | |||
| - | def do_provision(vm, | ||
| - | if host.has_key? | ||
| - | vm.provision " | ||
| - | end | ||
| - | end | ||
| - | |||
| - | def do_syncfolder(vm, | ||
| - | if host.has_key? | ||
| - | host[' | ||
| - | vm.synced_folder syncf[' | ||
| - | end | ||
| - | end | ||
| - | end | ||
| - | |||
| - | |||
| - | def do_provider(vm, | ||
| - | memory = DEFAULT_PROVIDER_MEMORY; | ||
| - | cpus = DEFAULT_PROVIDER_CPUS; | ||
| - | |||
| - | chars = { :memory => DEFAULT_PROVIDER_MEMORY, | ||
| - | |||
| - | if host.has_key? | ||
| - | host[' | ||
| - | #memory = host[' | ||
| - | #memory = singlechar[' | ||
| - | #cpus = singlechar[' | ||
| - | chars[: | ||
| - | chars[: | ||
| - | end # singlechar | ||
| - | end | ||
| - | |||
| - | vm.provider :virtualbox do |v| | ||
| - | v.name = host[' | ||
| - | v.memory = chars[: | ||
| - | v.cpus = chars[: | ||
| - | v.linked_clone = chars[: | ||
| - | end | ||
| - | |||
| - | # caracteristicas.each_with_index do |v,k| | ||
| - | # #puts "# | ||
| - | # | ||
| - | # end | ||
| - | |||
| - | end | ||
| - | |||
| - | |||
| - | hosts = YAML.load_file(' | ||
| - | |||
| - | Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| | ||
| - | |||
| - | hosts.each do |host| | ||
| - | config.vm.define host[' | ||
| - | node.vm.box = host[' | ||
| - | node.vm.hostname = host[' | ||
| - | node.vm.network : | ||
| - | |||
| - | do_ports(node.vm, | ||
| - | do_provision(node.vm, | ||
| - | do_syncfolder(node.vm, | ||
| - | do_provider(node.vm, | ||
| - | |||
| - | end # node | ||
| - | end # host | ||
| - | end # config | ||
| - | </ | ||
| - | |||
| - | <sxh yaml; title: Vagranthosts.yml> | ||
| - | - name: c7-gitlab | ||
| - | ip: 192.168.56.130 | ||
| - | box: centos/7 | ||
| - | shell: c7-gitlab.sh | ||
| - | ports: | ||
| - | - host: 8080 | ||
| - | guest: 80 | ||
| - | syncfolder: | ||
| - | - host: ' | ||
| - | guest: '/ | ||
| - | provider: | ||
| - | - cpus: 2 | ||
| - | memory: 512 | ||
| - | </ | ||