-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rewrote the MySQL and Apache HTTP daemon setup scripts in bash.
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
Showing
2 changed files
with
50 additions
and
60 deletions.
There are no files selected for viewing
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
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 |
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
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 |