Skip to content

Commit

Permalink
Rewrote the MySQL and Apache HTTP daemon setup scripts in bash.
Browse files Browse the repository at this point in the history
Much easier for SysAdmin's to grok.  Commented them decently too.
  • Loading branch information
Justin Clift committed Jul 6, 2012
1 parent c596090 commit 652c5f9
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 60 deletions.
80 changes: 38 additions & 42 deletions examples/wordpress/wordpress-http.sh
Original file line number Diff line number Diff line change
@@ -1,42 +1,38 @@
#!/usr/bin/python

import os
import subprocess

# 2012-07-03 JC Set SELinux to permissive mode
subprocess.call(["/usr/sbin/setenforce", "Permissive"])
conf = open('/etc/selinux/config', 'w')
conf.write('SELINUX=permissive\n')
conf.write('SELINUXTYPE=targeted\n')
conf.close()

# get the pre rpm's wp conf
conf = open('/etc/wordpress/wp-config.php', 'r')
lines = conf.readlines()
conf.close()

# get the audrey vars
wp_keys = {'database_name_here': 'AUDREY_VAR_http_wp_name',
'username_here': 'AUDREY_VAR_http_wp_user',
'password_here': 'AUDREY_VAR_http_wp_pw',
'localhost': 'AUDREY_VAR_http_mysql_ip'}

# map the wp key values in to the config
def sub_wp_values(line):
for key, val in wp_keys.items():
line = line.replace(key, os.environ[val])
return line

lines = map(sub_wp_values, lines)

# write the conf file back out
conf = open('/etc/wordpress/wp-config.php', 'w')
conf.write("".join(lines))
conf.close()

# be sure apache is running
subprocess.call(["/sbin/service", "httpd", "start"])

# Run the Wordpress installer
hostname = subprocess.check_output(["/usr/bin/facter", "ec2_public_hostname"]).strip()
subprocess.call(["curl", "-d", "weblog_title=AudreyFTW&user_name=admin&admin_password=admin&admin_password2=admin&admin_email=admin@example.com&blog_public=0", "http://%s/wordpress/wp-admin/install.php?step=2" % hostname])
#!/bin/bash

# Dump the working environment environment to a log file (useful for debugging)
env > /var/log/audrey_environment.log

# Add the MySQL node's settings to the Wordpress configuration file
sed -i -e "s/database_name_here/${AUDREY_VAR_http_wp_name}/" /etc/wordpress/wp-config.php
sed -i -e "s/username_here/${AUDREY_VAR_http_wp_user}/" /etc/wordpress/wp-config.php
sed -i -e "s/password_here/${AUDREY_VAR_http_wp_pw}/" /etc/wordpress/wp-config.php
sed -i -e "s/localhost/${AUDREY_VAR_http_mysql_ip}/" /etc/wordpress/wp-config.php

# Let Apache use remote databases (an SELinux permission)
/usr/sbin/setsebool -P httpd_can_network_connect_db 1

# Start the Apache http daemon
/sbin/service httpd start

# Figure out which virtualisation platform we're running on
if [ -f /etc/sysconfig/cloud-info ]
then
source /etc/sysconfig/cloud-info
fi

# Retrieve an IP address people can connect to
if [ "$CLOUD_TYPE" = "ec2" ]
then
# We're running in EC2, so get the public address
HOSTADDRESS=`/usr/bin/facter ec2_public_hostname`
else
# We're not running in EC2, so just grab any ip address
HOSTADDRESS=`/usr/bin/facter ipaddress`
fi

# Run the Wordpress installer, passing all the values it needs
curl -d "weblog_title=AudreyFTW&user_name=admin&admin_password=admin&admin_password2=admin&admin_email=admin@example.com&blog_public=0" "http://${HOSTADDRESS}/wordpress/wp-admin/install.php?step=2" > /var/log/audrey_curl.log

# Print useful info to the Audrey log
echo Wordpress should now be available at http://${HOSTADDRESS}/wordpress
30 changes: 12 additions & 18 deletions examples/wordpress/wordpress-mysql.sh
Original file line number Diff line number Diff line change
@@ -1,20 +1,14 @@
#!/usr/bin/python
#!/bin/bash

import os
import subprocess
import shutil
# Start the MySQL daemon
/sbin/service mysqld start

subprocess.call(["/sbin/service", "mysqld", "start"])
subprocess.call(["/usr/bin/mysql", "-u", "root", "-e",
'create database %s;' % os.environ['AUDREY_VAR_mysql_wp_name']])
subprocess.call(["/usr/bin/mysql", "-u", "root", "-e",
"grant all on %s.* to %s@%s;" % (
os.environ['AUDREY_VAR_mysql_wp_name'],
os.environ['AUDREY_VAR_mysql_wp_user'],
os.environ['AUDREY_VAR_mysql_apache_ip'] ) ] )
subprocess.call(["/usr/bin/mysql", "-u", "root", "-e",
"set password for %s@%s = password('%s');" % (
os.environ['AUDREY_VAR_mysql_wp_user'],
os.environ['AUDREY_VAR_mysql_apache_ip'],
os.environ['AUDREY_VAR_mysql_wp_pw'] ) ] )
shutil.copyfile('dbup.rb', '/usr/lib/ruby/site_ruby/1.8/facter/dbup.rb')
# Create an empty database for Wordpress to use
/usr/bin/mysql -u root -e "create database ${AUDREY_VAR_mysql_wp_name}"

# Set up MySQL access controls, so the Apache server can get to the database
/usr/bin/mysql -u root -e "grant all on ${AUDREY_VAR_mysql_wp_name}.* to ${AUDREY_VAR_mysql_wp_user}@${AUDREY_VAR_mysql_apache_ip};"
/usr/bin/mysql -u root -e "set password for ${AUDREY_VAR_mysql_wp_user}@${AUDREY_VAR_mysql_apache_ip} = password('${AUDREY_VAR_mysql_wp_pw}');"

# Copy the dbup.rb file to the required location
cp -f dbup.rb /usr/lib/ruby/site_ruby/1.8/facter/dbup.rb

0 comments on commit 652c5f9

Please sign in to comment.