Linode StackScript automatically installing ./install_amp

I’ve been trying to install FreePBX using a Linode StackScript, however I keep running into the prompts that come up when I use ./install_amp --installdb. I’m using FreePBX 12 and CentOS 6.5 for the installation. I basically copied the install commands from the wiki into a script.

The problem I’m running into is that when ./install_amp --installdb comes around in this script, the prompts for username, password, and all the default options pop up. Is there a way to make this more automated? Like change the amportal.conf before it gets to that part? Or send a simulated ‘enter’?


# Disable selinux and update system
sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/sysconfig/selinux
yum -y update
yum -y groupinstall core
yum -y groupinstall base

# Install required dependencies
yum -y install gcc gcc-c++ lynx bison mysql-devel mysql-server php php-mysql php-pear php-mbstring tftp-server httpd make ncurses-devel libtermcap-devel sendmail sendmail-cf caching-nameserver sox newt-devel libxml2-devel libtiff-devel audiofile-devel gtk2-devel subversion kernel-devel git subversion kernel-devel php-process crontabs cronie cronie-anacron wget vim php-xml uuid-devel libtool sqlite-devel

# Turn off iptables and turn on mysql/httpd
chkconfig --level 0123456 iptables off
service iptables stop
chkconfig --level 345 mysqld on
service mysqld start
chkconfig --level 345 httpd on
service httpd start

# Install PearDB
pear channel-update
pear install db-1.7.14

# Google voice dependencies
cd /usr/src
tar xf iksemel-*.tar.gz
cd iksemel-*
make install

# Add asterisk user
adduser asterisk -M -c "Asterisk User"

# Download asterisk source files
cd /usr/src
git clone

# Compile and install pjproject
cd /usr/src
tar -xjvf pjproject-2.2.1.tar.bz2
cd pjproject-2.2.1
CFLAGS='-DPJ_HAS_IPV6=1' ./configure --prefix=/usr --enable-shared --disable-sound\
  --disable-resample --disable-video --disable-opencore-amr --libdir=/usr/lib64
make dep
make install

# Compile and Install jansson
cd /usr/src/jansson
autoreconf -i
./configure --libdir=/usr/lib64
make install

# Compile and install Asterisk
cd /usr/src
tar xvfz asterisk-13-current.tar.gz
rm -f asterisk-13-current.tar.gz
cd asterisk-*
contrib/scripts/install_prereq install
./configure --libdir=/usr/lib64

make install
make config

# Install asterisk-extra-sounds
mkdir -p /var/lib/asterisk/sounds
cd /var/lib/asterisk/sounds
tar xfz asterisk-extra-sounds-en-wav-current.tar.gz
rm -f asterisk-extra-sounds-en-wav-current.tar.gz
tar xfz asterisk-extra-sounds-en-g722-current.tar.gz
rm -f asterisk-extra-sounds-en-g722-current.tar.gz

# Install and configure FreePBX
cd /usr/src
tar vxfz freepbx-12.0-latest.tgz

# Change ownership
chown asterisk. /var/run/asterisk
chown -R asterisk. /etc/asterisk
chown -R asterisk. /var/{lib,log,spool}/asterisk
mkdir /usr/lib/asterisk
chown -R asterisk. /usr/lib/asterisk
chown -R asterisk. /usr/lib64/asterisk
mkdir /var/www/html
chown -R asterisk. /var/www/

# Modifications to apache
sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php.ini
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf_orig
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/httpd/conf/httpd.conf
service httpd restart

#Configure asterisk db
cd /usr/src/freepbx
export ASTERISK_DB_PW=amp109
mysqladmin -u root create asterisk 
mysqladmin -u root create asteriskcdrdb 
mysql -u root -e "GRANT ALL PRIVILEGES ON asterisk.* TO [email protected] IDENTIFIED BY '*********';"
mysql -u root -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO [email protected] IDENTIFIED BY '********';"
mysql -u root -e "flush privileges;"

#Restart asterisk and install FreePBX
cd /usr/src/freepbx
./start_asterisk start
./install_amp --installdb --username=asterisk --password=*******
amportal chown
amportal a ma installall
amportal a reload
amportal a ma refreshsignatures
amportal chown

#Start FreePBX
ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3
amportal restart

# Install and setup commercial modules
wget -P /etc/yum.repos.d/ -N
yum clean all
yum -y install php-5.3-zend-guard-loader sysadmin fail2ban incron ImageMagick

# Restart Apache and install sysadmin
service httpd restart
amportal a ma download sysadmin
amportal a ma install sysadmin

sed -i '338d' /etc/httpd/conf/httpd.conf
sed -i '338i    AllowOveride ALL' /etc/httpd/conf/httpd.conf

amportal chown
amportal a ma refreshsignatures
amportal a reload