Статьи

Теперь вы также можете установить Nventory на Amazon AWS

Этот пост является для меня больше справочным, чем что-либо еще, однако я подумал, что он может пригодиться некоторым другим. Он подделан из install.sh, который поставляется с nventory и настроит для вас Amazon Linux AMI.

Приведенный ниже скрипт установки устанавливает nventory , rubygems и nginx из исходного кода и все остальное из репозитория Amazon или Epel.

Это означает, что вы можете установить и настроить эту систему на уровне бесплатного использования Amazon с помощью «крошечного» Amazon Linux (amzn-ami-2011.09.1.x86_64-ebs) и получить полный сервер инвентаризации и puppetmaster в течение года без каких-либо затрат. !

Прежде чем мы перейдем к сценарию установки, несколько предостережений:

  1. НАСТОЯЩИЙ СКРИПТ ПРЕДНАЗНАЧЕН, ЧТОБЫ ЗАПУСКАТЬСЯ НА СВЕЖЕЙ МОМЕНТЕ, НЕ УСТАНАВЛИВАЯ ДРУГИХ УСЛУГ, НАСТРОЕННЫХ ИЛИ РАБОТАЮЩИХ — Я не буду нести ответственность, если он сломает вещи!
  2. С этим сценарием нет никаких гарантий или гарантий — если он сломает что-то, вы сохраните обе части.
  3. Я не проверял это ни в каком большом масштабе — в этой конкретной установке у меня есть только три марионеточных агента, однако ресурсы на сервере кажутся более чем достаточными, чтобы иметь дело с ними
  4. Установка рубинов занимает много времени (например, более получаса!)
  5. Весь сценарий может занять до часа, чтобы запустить
  6. Сама Nventory еще не готова на 100%, но у меня все хорошо, YMMV.

Инструкция по установке:

  1. Обновите переменные в верхней части скрипта, чтобы установить различные версии RAILS, RubyGems, NGinx и NVentory.
  2. Измените пароль MySQL на что-то безопасное
  3. Запустить скрипт
  4. Укажите имя хоста (/ etc / hosts или DNS) «nventory» на IP-адресе сервера.
  5. Войдите, используя имя пользователя «admin» и пароль «admin»
  6. Если это сработает, купи мне пива в следующий раз, когда увидишь меня…;)

 

#!/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/