Created
July 18, 2018 12:58
-
-
Save hoonetorg/d908ea1f22b79fe4d83890b36be92702 to your computer and use it in GitHub Desktop.
addon_installgems_script_for_opennebula_5_6_0
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
#working for one 5.6.0 opennebula-ruby rpm package | |
# a repo named *opennebula* must exist containing opennebula-ruby-5.6.0 | |
# oneadmin user must be available | |
# cleanup last build | |
rm /usr/share/one/Gemfile | |
yum -y autoremove opennebula-ruby | |
rm /etc/yum.localrepos.d/epel.repo | |
yum -y autoremove epel-release | |
yum -y autoremove rubygem-nokogiri rubygem-bundler | |
yum -y autoremove createrepo redhat-lsb rpm-build | |
yum -y autoremove ruby-devel gcc | |
yum -y autoremove gcc rubygem-rake libxml2-devel libxslt-devel patch gcc-c++ sqlite-devel curl-devel mysql-devel openssl-devel ruby-devel make | |
yum -y autoremove ruby\* | |
rm -Rf /etc/sudoers.d/oneadmin | |
rm -Rf /var/lib/one/addon-installgems /var/lib/one/bin /var/lib/one/.gem | |
#install deps | |
yum -y --disablerepo \*opennebula\* install git | |
#install nokogiri required for opennebula-ruby | |
yum -y --disablerepo \*opennebula\* install epel-release | |
#only required for local builds at hoonet.org, but doesnt hurt when it fails | |
cp /etc/yum.repos.d/epel.repo /etc/yum.localrepos.d/ | |
yum -y --disablerepo \*opennebula\* install rubygem-nokogiri | |
rm /etc/yum.localrepos.d/epel.repo | |
yum -y autoremove epel-release | |
yum -y --disablerepo \*opennebula\* install rubygem-bundler | |
yum -y --disablerepo \*opennebula\* install createrepo redhat-lsb rpm-build | |
#install_gems and Gemfile | |
yum -y install opennebula-ruby | |
#fix f#!<ing nokogiri error - dirty hack | |
perl -pi -e "s/^(\s*)gem \'nokogiri\'\s*$/\1gem \'nokogiri\', \'< 1.6.9\'\n/g" /usr/share/one/Gemfile | |
#sudo rules for oneadmin | |
echo 'oneadmin ALL= (ALL) NOPASSWD: /usr/bin/yum install *' >/etc/sudoers.d/oneadmin | |
echo 'oneadmin ALL= (ALL) NOPASSWD: /usr/bin/apt-get install *' >>/etc/sudoers.d/oneadmin | |
echo 'oneadmin ALL= (ALL) NOPASSWD: /usr/bin/gem install fpm mini_portile2 pkg-config' >>/etc/sudoers.d/oneadmin | |
#clone addon-installgems | |
su - oneadmin -c 'cd ~ && git clone https://github.com/OpenNebula/addon-installgems.git' | |
# fix that created rpms do install binaries to /var/lib/one/bin, we want them in /usr/bin - dirty hack | |
su - oneadmin -c 'cd ~/addon-installgems && perl -pi -e "s#fpm --prefix#fpm --gem-bin-path /usr/bin --prefix#g" gem_packages.py' | |
#build | |
su - oneadmin -c 'cd ~/addon-installgems && python gem_packages.py -d' 2>&1 2>&1 |tee script.log | |
# cleanup last build | |
rm /usr/share/one/Gemfile | |
yum -y autoremove opennebula-ruby | |
rm /etc/yum.localrepos.d/epel.repo | |
yum -y autoremove epel-release | |
yum -y autoremove rubygem-nokogiri rubygem-bundler | |
yum -y autoremove createrepo redhat-lsb rpm-build | |
yum -y autoremove ruby-devel gcc | |
yum -y autoremove gcc rubygem-rake libxml2-devel libxslt-devel patch gcc-c++ sqlite-devel curl-devel mysql-devel openssl-devel ruby-devel make | |
yum -y autoremove ruby\* | |
rm -Rf /etc/sudoers.d/oneadmin | |
rm -Rf /var/lib/one/addon-installgems /var/lib/one/bin |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment