= vagrant mysql
{{tag>Vagrantfile}}
los ficheros necesarios se han servido desde un pequeño contenedor (por restricciones de licencia o firewall),
docker run -d -p 9090:80 -v $PWD:/http tiagoad/nginx-index
== con docker
(problema sin resolver, la VM arranca bien el mysql la primera vez, pero no las posteriores)
IP = '192.168.1.20'
VERSION = '5.5'
NAME = "mysql-#{VERSION}"
Vagrant.configure("2") do |config|
config.vm.box = "altrankas/mysql5"
config.vm.hostname = NAME
config.vm.define NAME
config.vm.network "private_network", ip: "#{IP}"
config.vm.network "forwarded_port", guest: 3306, host: 3306
config.vm.synced_folder ".", "/vagrant"
config.vm.provider :virtualbox do |v|
v.gui = true
v.linked_clone = true
v.name = NAME
end
config.vm.provision "shell", path: "../../common/setup-mysql.sh", args: "#{VERSION}"
config.vm.provision "shell", path: "../../common/setup-vagrant.sh"
config.vm.provision "docker" do |d|
d.run "mysql_#{VERSION}", image: "mysql:#{VERSION}",
args: "-p 3306:3306 -v /data/#{VERSION}:/var/lib/mysql --env MYSQL_ROOT_PASSWORD=admin"
end
end
== 5.5 standalone
el fichero **tar.gz** ya está descargado, pero está preparado para depender del nginx.
Vagrant.configure("2") do |config|
config.vm.box = "peru/ubuntu-18.04-desktop-amd64"
config.vm.box_version = "20190401.01"
config.vm.provision "file", source: "../../common/addroot.sql", destination: "/tmp/addroot.sql"
config.vm.provision "file", source: "./mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz", destination: "/tmp/mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz"
config.vm.network "private_network", ip: "192.168.1.5"
config.vm.network "forwarded_port", guest: 3306, host: 3306
config.vm.provider :virtualbox do |v|
v.name = "altrankas-mysql-5.5"
v.linked_clone = true
v.memory = 2048
v.cpus = 2
end
config.vm.provision "shell", path: "install.sh"
# config.vm.provision "shell", path: "../../common/addInsecureKey.sh"
end
#!/bin/bash
# https://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz
MYSQL_FOLDER="mysql-5.5.62-linux-glibc2.12-x86_64"
MYSQL_TGZ="${MYSQL_FOLDER}.tar.gz"
MYSQL_URL_DOWNLOAD="https://dev.mysql.com/get/Downloads/MySQL-5.5/${MYSQL_TGZ}"
MYSQL_HOME="/usr/local/mysql"
DEBIAN_FRONTEND=noninteractive
sudo apt-get -y update
sudo apt-get install -y wget libaio1 > /dev/null 2>&1
sudo debconf-set-selections <<< 'mysql-community-server mysql-community-server/root-pass password admin'
sudo debconf-set-selections <<< 'mysql-community-server mysql-community-server/re-root-pass password admin'
#sudo wget -O /tmp/${MYSQL_TGZ} ${MYSQL_URL_DOWNLOAD}
sudo tar zxf /tmp/${MYSQL_TGZ} -C /tmp/
sudo mv /tmp/${MYSQL_FOLDER} ${MYSQL_HOME}
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
sudo chown -R mysql:mysql ${MYSQL_HOME}
cd ${MYSQL_HOME}
sudo ${MYSQL_HOME}/scripts/mysql_install_db --basedir=${MYSQL_HOME} --user=mysql
sudo chown -R root ${MYSQL_HOME}
sudo chown -R mysql ${MYSQL_HOME}/data
sudo cp ${MYSQL_HOME}/support-files/my-medium.cnf /etc/my.cnf
sudo cp ${MYSQL_HOME}/support-files/mysql.server /etc/init.d/mysql.server
sudo mkdir /var/run/mysql
sudo chown -R mysql /var/run/mysql
cd ${MYSQL_HOME}
sudo ${MYSQL_HOME}/bin/mysqld_safe --user=mysql --basedir=${MYSQL_HOME} &
sleep 10
${MYSQL_HOME}/bin/mysqladmin -u root password 'admin'
sudo ${MYSQL_HOME}/bin/mysql -u root --password=admin mysql < /tmp/addroot.sql
sudo update-rc.d mysql.server defaults
#sudo systemctl restart mysql.service
sudo locale-gen es_ES
echo "setxkbmap -layout 'es,es' -model pc105" >> /home/vagrant/.bashrc
sudo echo "PATH=\"${PATH}:${MYSQL_HOME}/bin\"" >> /etc/environment
== 5.6 standalone
el Vagrantfile se readapta, pequeños cambios (el **name** y el fichero **tar**):
config.vm.provision "file", source: "./mysql-server_5.6.43-1ubuntu14.04_amd64.deb-bundle.tar", destination: "/tmp/mysql-server_5.6.43-1ubuntu14.04_amd64.deb-bundle.tar"
#!/bin/bash
# https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-server_5.6.43-1ubuntu14.04_amd64.deb-bundle.tar
MYSQL_TGZ="mysql-server_5.6.43-1ubuntu14.04_amd64.deb-bundle.tar"
MYSQL_URL_DOWNLOAD="https://dev.mysql.com/get/Downloads/MySQL-5.6/${MYSQL_TGZ}"
DEBIAN_FRONTEND=noninteractive
sudo apt-get -y update
sudo apt-get install -y wget > /dev/null 2>&1
sudo debconf-set-selections <<< 'mysql-community-server mysql-community-server/root-pass password admin'
sudo debconf-set-selections <<< 'mysql-community-server mysql-community-server/re-root-pass password admin'
#sudo apt-get install -y mysql-server > /dev/null 2>&1
#sudo wget -O /tmp/${MYSQL_TGZ} ${MYSQL_URL_DOWNLOAD}
sudo mkdir /tmp/mysql
sudo tar xf /tmp/${MYSQL_TGZ} -C /tmp/mysql
sudo dpkg -i /tmp/mysql/*.deb
sudo apt-get install -fy
sudo rm -rf /tmp/mysql
sudo rm -f /tmp/${MYSQL_TGZ}
#sudo sed -i.bak "s|127.0.0.1|0.0.0.0|g" /etc/mysql/mysql.conf.d/mysqld.cnf
sudo mysql -u root --password=admin mysql < /tmp/addroot.sql
sudo systemctl restart mysql.service
sudo locale-gen es_ES
echo "setxkbmap -layout 'es,es' -model pc105" >> /home/vagrant/.bashrc
== 5.7 standalone
versión Vagrantfile más reducida
Vagrant.configure("2") do |config|
config.vm.box = "peru/ubuntu-18.04-desktop-amd64"
config.vm.box_version = "20190401.01"
config.vm.provision "file", source: "../../common/addroot.sql", destination: "/tmp/addroot.sql"
config.vm.provider :virtualbox do |v|
v.name = "altrankas-mysql-5.7"
v.linked_clone = true
v.memory = 2048
v.cpus = 2
end
config.vm.provision "shell", path: "install.sh"
config.vm.provision "shell", path: "../../common/addInsecureKey.sh"
end
#!/bin/bash
DEBIAN_FRONTEND=noninteractive
sudo apt-get -y update
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password admin'
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password admin'
sudo apt-get install -y mysql-server > /dev/null 2>&1
sudo sed -i.bak "s|127.0.0.1|0.0.0.0|g" /etc/mysql/mysql.conf.d/mysqld.cnf
sudo mysql -u root --password=admin mysql < /tmp/addroot.sql
sudo systemctl restart mysql.service
sudo locale-gen es_ES
echo "setxkbmap -layout 'es,es' -model pc105" >> /home/vagrant/.bashrc
== ficheros comunes
CREATE USER 'root'@'%' IDENTIFIED BY 'admin';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
#!/bin/bash
su - vagrant
echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key
" >> .ssh/authorized_keys