|
|
(2 intermediate revisions by one other user not shown) |
Line 1: |
Line 1: |
| [[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. | | [[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 (for local environments), OpenStack (for HP Cloud), Windows Azure, Joyent or Amazon EC2 | | 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 using a client side plugin and manual provisioning.
| |
|
| |
|
| == Links == | | == Links == |
| # https://jujucharms.com/get-started | | # https://juju.is/ |
| | | # https://juju.is/docs/juju/tutorial |
| # https://jujucharms.com/docs/1.20/config-manual | | # https://charmhub.io/ |
| # https://jujucharms.com/docs/1.20/config-aws
| |
| # https://jujucharms.com/docs/1.20/config-digitalocean
| |
| # https://jujucharms.com/docs/1.20/config-vagrant
| |
| | |
| == TLDR ==
| |
| <source lang="bash">
| |
| sudo add-apt-repository ppa:juju/stable
| |
| sudo apt-get install juju-quickstart
| |
| sudo apt-get install juju-core
| |
| # to just show existing/default
| |
| # juju generate-config --show
| |
| juju generate-config
| |
| # edit to add your AWS KEYS
| |
| juju bootstrap
| |
| juju status
| |
| # assuming it shows a single machine numbered '0' | |
| juju deploy apache2 --to 0
| |
| juju deploy mediawiki --to 0
| |
| # in our test, this deployed cs:trusty/mediawiki-3
| |
| juju deploy mysql --to 0
| |
| juju add-relation mediawiki:db mysql
| |
| juju expose apache2
| |
| juju expose mediawiki
| |
| juju status
| |
| juju ssh 0
| |
| </source>
| |
| | |
| You'll end up with an address like this
| |
| http://52.5.215.128/mediawiki/index.php/Special:Version
| |
| with
| |
| * MediaWiki <code>1.19.14+dfsg-1</code> installed with no extensions.
| |
| * 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
| |
| | |
| | |
| You can see what keys were added to the machine
| |
| <code>juju authorised-keys list</code>
| |
| and verify the key fingerprint for the key you want to use
| |
| <code>ssh-keygen -lf /home/user/.ssh/id_rsa</code>
| |
| | |
| but you have to know/guess what user was installed by your charm
| |
| | |
| <code>ssh -i /home/user/.ssh/id_rsa -o IdentitiesOnly=true -vvv ubuntu@ec2-55-5-555-55.compute-1.amazonaws.com</code>
| |
| | |
| https://jujucharms.com/mediawiki/trusty/3
| |
| | |
| | |
| == Help ==
| |
| <source lang="bash">
| |
| juju help
| |
| </source>
| |
| <pre>
| |
| | |
| Juju -- devops distilled
| |
| https://juju.ubuntu.com/ | |
| | |
| Juju provides easy, intelligent service orchestration on top of environments
| |
| such as Amazon EC2, HP Cloud, OpenStack, MaaS, or your own local machine.
| |
| | |
| Basic commands:
| |
| juju init generate boilerplate configuration for juju environments
| |
| juju bootstrap start up an environment from scratch
| |
| | |
| juju deploy deploy a new service
| |
| juju add-relation add a relation between two services
| |
| juju expose expose a service
| |
| | |
| juju help bootstrap more help on e.g. bootstrap command
| |
| juju help commands list all commands
| |
| juju help glossary glossary of terms
| |
| juju help topics list all help topics
| |
| | |
| Provider information:
| |
| juju help azure-provider use on Windows Azure
| |
| juju help ec2-provider use on Amazon EC2
| |
| juju help hpcloud-provider use on HP Cloud
| |
| juju help local-provider use on this computer
| |
| juju help openstack-provider use on OpenStack
| |
| </pre>
| |
|
| |
|
| === Commands ===
| |
| <source lang="bash">
| |
| juju help commands
| |
| </source>
| |
| <pre>
| |
| add-machine alias for 'machine add'
| |
| add-relation add a relation between two services
| |
| add-unit add one or more units of an already-deployed service
| |
| api-endpoints print the API server address(es)
| |
| api-info print the field values used to connect to the environment's API servers
| |
| authorised-keys alias for 'authorized-keys'
| |
| authorized-keys manage authorized ssh keys
| |
| backups create, manage, and restore backups of juju's state
| |
| block block an operation that would alter a running environment
| |
| bootstrap start up an environment from scratch
| |
| cached-images manage cached os images
| |
| debug-hooks launch a tmux session to debug a hook
| |
| debug-log display the consolidated log file
| |
| deploy deploy a new service
| |
| destroy-environment terminate all machines and other associated resources for an environment
| |
| destroy-machine alias for 'machine remove'
| |
| destroy-relation alias for 'remove-relation'
| |
| destroy-service alias for 'remove-service'
| |
| destroy-unit alias for 'remove-unit'
| |
| ensure-availability ensure the availability of Juju state servers
| |
| env alias for 'switch'
| |
| environment manage environments
| |
| expose expose a service
| |
| generate-config alias for 'init'
| |
| get get service configuration options
| |
| get-constraints view constraints on the environment or a service
| |
| get-env alias for 'environment get'
| |
| get-environment alias for 'environment get'
| |
| help show help on a command or other topic
| |
| help-tool show help on a juju charm tool
| |
| init generate boilerplate configuration for juju environments
| |
| machine manage machines
| |
| publish publish charm to the store
| |
| remove-machine alias for 'machine remove'
| |
| remove-relation remove a relation between two services
| |
| remove-service remove a service from the environment
| |
| remove-unit remove service units from the environment
| |
| resolved marks unit errors resolved
| |
| retry-provisioning retries provisioning for failed machines
| |
| run run the commands on the remote targets specified
| |
| scp launch a scp command to copy files to/from remote machine(s)
| |
| set set service config options
| |
| set-constraints set constraints on the environment or a service
| |
| set-env alias for 'environment set'
| |
| set-environment alias for 'environment set'
| |
| ssh launch an ssh shell on a given unit or machine
| |
| stat alias for 'status'
| |
| status output status information about an environment
| |
| switch show or change the default juju environment name
| |
| sync-tools copy tools from the official tool store into a local environment
| |
| terminate-machine alias for 'machine remove'
| |
| unblock unblock an operation that would alter a running environment
| |
| unexpose unexpose a service
| |
| unset set service config options back to their default
| |
| unset-env alias for 'environment unset'
| |
| unset-environment alias for 'environment unset'
| |
| upgrade-charm upgrade a service's charm
| |
| upgrade-juju upgrade the tools in a juju environment
| |
| user manage user accounts and access control
| |
| version print the current version
| |
| </pre>
| |
|
| |
|
| | {{References}} |
|
| |
|
| [[Category:DevOps]] | | [[Category:DevOps]] |
| [[Category:Service Orchestration]] | | [[Category:Service Orchestration]] |