Этот пост является для меня больше справочным, чем что-либо еще, однако я подумал, что он может пригодиться некоторым другим. Он подделан из install.sh, который поставляется с nventory и настроит для вас Amazon Linux AMI.
Приведенный ниже скрипт установки устанавливает nventory , rubygems и nginx из исходного кода и все остальное из репозитория Amazon или Epel.
Это означает, что вы можете установить и настроить эту систему на уровне бесплатного использования Amazon с помощью «крошечного» Amazon Linux (amzn-ami-2011.09.1.x86_64-ebs) и получить полный сервер инвентаризации и puppetmaster в течение года без каких-либо затрат. !
Прежде чем мы перейдем к сценарию установки, несколько предостережений:
- НАСТОЯЩИЙ СКРИПТ ПРЕДНАЗНАЧЕН, ЧТОБЫ ЗАПУСКАТЬСЯ НА СВЕЖЕЙ МОМЕНТЕ, НЕ УСТАНАВЛИВАЯ ДРУГИХ УСЛУГ, НАСТРОЕННЫХ ИЛИ РАБОТАЮЩИХ — Я не буду нести ответственность, если он сломает вещи!
- С этим сценарием нет никаких гарантий или гарантий — если он сломает что-то, вы сохраните обе части.
- Я не проверял это ни в каком большом масштабе — в этой конкретной установке у меня есть только три марионеточных агента, однако ресурсы на сервере кажутся более чем достаточными, чтобы иметь дело с ними
- Установка рубинов занимает много времени (например, более получаса!)
- Весь сценарий может занять до часа, чтобы запустить
- Сама Nventory еще не готова на 100%, но у меня все хорошо, YMMV.
Инструкция по установке:
- Обновите переменные в верхней части скрипта, чтобы установить различные версии RAILS, RubyGems, NGinx и NVentory.
- Измените пароль MySQL на что-то безопасное
- Запустить скрипт
- Укажите имя хоста (/ etc / hosts или DNS) «nventory» на IP-адресе сервера.
- Войдите, используя имя пользователя «admin» и пароль «admin»
- Если это сработает, купи мне пива в следующий раз, когда увидишь меня…;)
#!/bin/sh # nventory installation script for Amazon Linux MYSQL_CONFIG_DIR="/usr/bin/mysql_config" RAILS_VER="2.3.14" GEMS_VER="1.8.10" NGINX_VER="1.0.8" NV_VERSION="0.86" NV_MYSQL_PASSWORD="password" ## SETUP INSTALL PATH echo -e "Setting up installation directories\n===============" INSTALL_PATH="$HOME/nventory-install-$(date +%s)" mkdir $INSTALL_PATH cd $INSTALL_PATH # get the nventory source code echo -e "Fetching the nventory source code\n===========================" wget -q http://downloads.sourceforge.net/project/nventory/nventory/$NV_VERSION/nventory-$NV_VERSION.tar.gz echo -e "Unpacking the archive\n===============" tar -zxf nventory-$NV_VERSION.tar.gz ## OPERATING SYSTEM PRE-REQUISITES echo -e "Installing Operating System Requirements\n=================" yum install ruby -y 2>&1 > /dev/null yum install mysql-server -y 2>&1 > /dev/null ### for rubygems yum install -y ruby-devel ruby-docs ruby-ri ruby-irb ruby-rdoc 2>&1 > /dev/null ### for gems (hpricot & fastthread) yum install -y gcc make 2>&1 > /dev/null ### for graphviz gem yum install graphviz -y 2>&1 > /dev/null ### for mysql gem yum install mysql-devel -y 2>&1 > /dev/null ### for nginx yum install -y openssl-devel 2>&1 > /dev/null yum install -y gcc-c++ 2>&1 > /dev/null yum install -y zlib-devel 2>&1 > /dev/null yum install -y pcre-devel 2>&1 > /dev/null # install rubygems echo -e "Downloading Rubygems\n====================" wget -q http://production.cf.rubygems.org/rubygems/rubygems-$GEMS_VER.tgz echo -e "Upacking Rubygems\n====================" tar zxf rubygems-$GEMS_VER.tgz cd rubygems-$GEMS_VER echo -e "Installing Rubygems\n=========================" ruby setup.rb # Install NGinx echo -e "Getting the NGinx Source Code\n=========================" wget http://www.nginx.org/download/nginx-$NGINX_VER.tar.gz echo -e "Unpacking the archive\n====================" tar zxf nginx-$NGINX_VER.tar.gz cd nginx-$NGINX_VER echo -e "Building NGinx with HTTPS support and installing\n===========================" ./configure --sbin-path=/sbin/nginx --prefix=/opt/nginx --with-http_ssl_module make && make install ## generate self signed keys & certs for nginx ssl echo -e "Creating SSL Certificates\n**** PLEASE ANSWER THE QUESTIONS WHEN PROMPTED****\n=========================" openssl genrsa -des3 -out server.key 1024 openssl req -new -key server.key -out server.csr openssl rsa -in server.key -out cert.key openssl x509 -req -days 365 -in server.csr -signkey cert.key -out cert.pem ## move your nventory-0.<version>/server directory to /opt/nventory (this is your rails app) echo -e "Moving from $INSTALL_PATH to /opt\n======================" mv $INSTALL_PATH/nventory-$NV_VERSION/server /opt/nventory ## copy nginx.conf template overwriting original echo -e "Overwriting NGinx Config\n===============================" cp /opt/nventory/config/nginx.conf /opt/nginx/conf sed -i 's/localhost/nventory/g' /opt/nginx/conf/nginx.conf ## startup nginx echo -e "Starting Nginx\n=============================" /sbin/nginx ### install gems echo -e "Installing the required gems (this will take quite a while!)\n=======================" gem install rails -v $RAILS_VER --no-ri --no-rdoc gem install RedCloth -v 3.0.4 --no-ri --no-rdoc gem install ruby-net-ldap -v 0.0.4 --no-ri --no-rdoc gem install ruport --no-ri --no-rdoc gem install acts_as_reportable --no-ri --no-rdoc gem install starling --no-ri --no-rdoc gem install fast_xs --no-ri --no-rdoc gem install fastercsv --no-ri --no-rdoc gem install facter --no-ri --no-rdoc ### If hpricot gem install fails, try lower version ### Example: gem install hpricot -v 0.7 gem install hpricot --no-ri --no-rdoc gem install mongrel --no-ri --no-rdoc gem install mislav-will_paginate --source http://gems.github.com/ -v 2.3.2 --no-ri --no-rdoc gem install mongrel -v 1.1.5 --no-ri --no-rdoc gem install mysql -- --with-mysql-config=$MYSQL_CONFIG_DIR --no-ri --no-rdoc gem install ruby-graphviz --no-ri --no-rdoc gem install unicorn --no-ri --no-rdoc gem install workling --no-ri --no-rdoc gem install ruby-debug --no-ri --no-rdoc echo "Checking if any gems failed to install...\n=============================" for i in rails RedCloth ruby-net-ldap ruport acts_as_reportable starling fast_xs fastercsv facter hpricot mongrel mislav-will_paginate mongrel mysql ruby-graphviz unicorn workling; do gem list $i |grep $i > /dev/null 2>&1 if [ $? != 0 ]; then echo "!! $i not installed." ; fi done # create nventory database echo -e "Starting MySQL\n====================" service mysqld start echo -e "Creating Database and granting privilieges\n===============================" mysql -u root -p -e "create database nventory;GRANT ALL PRIVILEGES ON nventory.* to nventory@localhost IDENTIFIED BY '$NV_MYSQL_PASSWORD';flush privileges;" echo -e "Updating the RAILS config for the database\n===================" ### THE CONFIG WHICH COMES WITH RAILS WON'T WORK WITH LOCALHOST CONNECTIONS SO WE JUST REPLACE THE ENTIRE FILE HERE... (cat <<EOF development: adapter: mysql database: nventory username: nventory password: '$NV_MYSQL_PASSWORD' host: 127.0.0.1 port: 3306 # Warning: The database defined as 'test' will be erased and # re-generated from your development database when you run 'rake'. # Do not set this db to the same as development or production. test: adapter: mysql database: nventory_test username: nventory password: '$NV_MYSQL_PASSWORD' socket: /var/lib/mysql/mysql.sock # Used for both staging and production production: adapter: mysql database: nventory username: nventory password: '$NV_MYSQL_PASSWORD' socket: /var/lib/mysql/mysql.sock EOF ) > /opt/nventory/config/database.yml # run nventory's initial db migration to create database schema echo -e "Running the initial migration\n===========================" cd /opt/nventory && rake db:migrate # Startup Rails echo -e "Starting the webrick-based rails server\n=======================" cd /opt/nventory && ruby script/server -d -p 8080
Источник: http://www.threedrunkensysadsonthe.net/2011/10/install-nventory-on-amazon-aws/