Skip to content

Instantly share code, notes, and snippets.

@DariuszO
Forked from yoku0825/mikasafabric_dev.sh
Created November 8, 2021 20:39
Show Gist options
  • Save DariuszO/6607484a8e4a380b1e0cc92a53c58469 to your computer and use it in GitHub Desktop.
Save DariuszO/6607484a8e4a380b1e0cc92a53c58469 to your computer and use it in GitHub Desktop.
setup mikasafabric development environment.
sudo -i
ssh-keygen -N '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub
cat << 'EOF' > ~/.ssh/config
Host *
StrictHostKeyChecking no
EOF
chmod 600 ~/.ssh/config
yum upgrade -y
yum install -y docker git rpm-build python-devel tmux vim https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm epel-release wget centos-release-scl openssl-devel rpmdevtools
yum install -y mysql-server mysql-devel mysql-connector-python-2.1.8 perl-DBI perl-DBD-MySQL rlwrap perl-Digest-MD5 perl-App-cpanminus perl-JSON gcc gcc-c++ cmake libevent-devel devtoolset-6-{gcc,gcc-c++}
cpanm Test::More Carp::Always Test::More::Color
wget https://github.com/tokubass/p5-Test-More-Color-SupportTest2/raw/master/lib/Test/More/Color.pm -O /usr/local/share/perl5/Test/More/Color.pm
git config --global user.name yoku0825
git config --global user.email yoku0825@gmail.com
git clone https://github.com/yoku0825/init_script
~/init_script/dotfiles/deploy.sh -f
ln /usr/bin/cpanm /usr/local/bin/cpanm
. ~/.bashrc
~/init_script/package/gtags.sh
git clone https://github.com/yoku0825/my_script
cp ~/my_script/*_wrap.sh /usr/local/bin/
yum install -y https://github.com/yoku0825/ytkit/releases/download/0.1.4/ytkit-0.1.4-1.noarch.rpm
git clone git@github.com:gmo-media/mikasafabric
cd mikasafabric
git checkout support_mysql8
cd ..
cat << 'EOS' > ~/mikasafabric/build.sh
#!/bin/bash
[[ -d ~/rpmbuild/SOURCES/ ]] || mkdir -p ~/rpmbuild/SOURCES/
package="mikasafabric"
version=$(grep "^Version:" ${package}.spec | awk '{print $2}')
dirname="${package}-${version}"
source="${dirname}.tar.gz"
test -d ../$dirname && rm -rf ../$dirname
cp -r . ../$dirname
rm -rf ../$dirname/.git
tar -C .. -cvzf $source $dirname
mv $source ~/rpmbuild/SOURCES/
rpmbuild -bb ${package}.spec && rm -rf ../$dirname
EOS
chmod +x ~/mikasafabric/build.sh
systemctl start docker
git clone https://github.com/yoku0825/docker_for_mysqlfabric
docker build -t yoku0825/mysql_fabric_aware ~/docker_for_mysqlfabric/Dockerfile/mysql_fabric_aware
mysqld --user=mysql --initialize-insecure
systemctl start mysqld
mysql -e "CREATE USER fabric IDENTIFIED WITH mysql_native_password BY 'backingstore'; GRANT ALL ON fabric.* TO fabric"
cd ~/mikasafabric/
./build.sh
yum install -y /root/rpmbuild/RPMS/noarch/mikasafabric-*.rpm
sed -i 's/disable_authentication = no/disable_authentication = yes/' /etc/mysql/fabric.cfg
cd ~
git clone git@github.com:yoku0825/test_for_mikasafabric.git
cd ~
git clone git@github.com:yoku0825/mikasarouter
cat << 'EOF' > mikasarouter/build.sh
#!/bin/bash
[[ -d ~/rpmbuild/SOURCES/ ]] || mkdir -p ~/rpmbuild/SOURCES/
package="mikasarouter"
version=$(grep "^Version:" ${package}.spec | awk '{print $2}')
dirname="${package}-${version}"
source="${dirname}.tar.gz"
cmake .
mv mysql-router.spec mikasarouter.spec
sed -i 's/mysql-router/mikasarouter/g' mikasarouter.spec
test -d ../$dirname && rm -rf ../$dirname
cp -r . ../$dirname
cd ../$dirname
git clean -df
rm -rf .git
#cmake -DINSTALL_LAYOUT=RPM -DWITH_STATIC=yes -DWITH_LIBEVENT="system" -DWITH_SSL="system" -DENABLE_TESTS=yes -DENABLE_GCOV=yes .
cd $OLDPWD
cp packaging/rpm-oel/mysqlrouter.{service,tmpfiles.d,conf,init} ~/rpmbuild/SOURCES/
tar -C .. -cvzf $source $dirname
mv $source ~/rpmbuild/SOURCES/
rpmbuild -bb --define="with_libevent system" --define="with_ssl system" ${package}.spec && rm -rf ../$dirname
EOF
cd mikasarouter
cat << 'EOF' >> /etc/mysqlrouter/mysqlrouter.conf
[fabric_cache:dummy]
address = 127.0.0.1
user = hogehoge
[routing:master]
bind_address= 0.0.0.0:13306
mode = read-write
destinations= fabric+cache://dummy/group/myfabric
[routing:slave]
bind_address= 0.0.0.0:23306
mode = read-only
destinations= fabric+cache://dummy/group/myfabric
EOF
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment