[[wp:Juju (software)|Juju]] (formerly Ensemble) is an open source service orchestration management tool developed by Canonical Ltd., the company behind [[Ubuntu]]. Juju allows software to be quickly deployed, integrated and scaled on a wide choice of cloud services or servers.
Juju can deploy to LXC <ref>See also: [[Docker]]</ref> (for local environments), OpenStack (for HP Cloud), Windows Azure, Joyent or Amazon EC2
Kapil Thangavelu wrote [https://github.com/kapilt/juju-digitalocean JuDo] - A juju provider for digital ocean [[Digital Ocean]] using a client side plugin and manual provisioning.
== Links ==
</source>
You'll end up with an address like this<ref>When setting up a service on EC2, make sure to obtain and assign an "elastic IP" so that the instance has a static IP. Otherwise every shutdown will result in a different public IP address being assigned to the instance.</ref>
http://52.5.215.128/mediawiki/index.php/Special:Version
with
* Ubuntu 14.04.2 LTS (Trusty Tahr)* Apache 2.4.7 (Ubuntu) (with MaxRequestWorkers at 2048 which would require 32 servers while servers is set at 16 = sloppy)* MediaWiki <code>1.19.14+dfsg-1</code> installed with no extensions., and no git
* PHP 5.5.9-1ubuntu4.7 (apache2handler)
* MySQL 5.5.41-0ubuntu0.14.04.1-log
Make sure to obtain and assign an "elastic IP" so that the instance has a static IP
</pre>
Setting up a MediaWiki instance with Juju, using the https://jujucharms.com/mediawiki/trusty/3 charm was completely unacceptable. The charm doesn't even setup a web server environment at all so it doesn't work "out of the box". When I specified an Apache2 charm https://jujucharms.com/apache2/trusty/13/ the configuration has a miscompiled PHP and also conflicting configurations (ServerLimit, MaxRequestWorkers) that causes errors in the log.
<pre>
root@ip-172-31-57-182:~# /usr/sbin/apache2 -S
[Thu Apr 09 13:42:06.748287 2015] [core:warn] [pid 2247] AH00111: Config variable ${APACHE_LOCK_DIR} is not defined
[Thu Apr 09 13:42:06.748800 2015] [core:warn] [pid 2247] AH00111: Config variable ${APACHE_PID_FILE} is not defined
[Thu Apr 09 13:42:06.749138 2015] [core:warn] [pid 2247] AH00111: Config variable ${APACHE_RUN_USER} is not defined
[Thu Apr 09 13:42:06.749457 2015] [core:warn] [pid 2247] AH00111: Config variable ${APACHE_RUN_GROUP} is not defined
[Thu Apr 09 13:42:06.749808 2015] [core:warn] [pid 2247] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Thu Apr 09 13:42:06.786167 2015] [:crit] [pid 2247:tid 139742374446976] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.
AH00013: Pre-configuration failed
root@ip-172-31-57-182:~# /usr/sbin/apache2 -M
[Thu Apr 09 13:42:19.687521 2015] [core:warn] [pid 2248] AH00111: Config variable ${APACHE_LOCK_DIR} is not defined
[Thu Apr 09 13:42:19.688010 2015] [core:warn] [pid 2248] AH00111: Config variable ${APACHE_PID_FILE} is not defined
[Thu Apr 09 13:42:19.688345 2015] [core:warn] [pid 2248] AH00111: Config variable ${APACHE_RUN_USER} is not defined
[Thu Apr 09 13:42:19.688604 2015] [core:warn] [pid 2248] AH00111: Config variable ${APACHE_RUN_GROUP} is not defined
[Thu Apr 09 13:42:19.688886 2015] [core:warn] [pid 2248] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Thu Apr 09 13:42:19.700934 2015] [:crit] [pid 2248:tid 140047498663808] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.
AH00013: Pre-configuration failed
</pre>
{{References}}
[[Category:DevOps]]
[[Category:Service Orchestration]]