|
|
(3 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
| |
− | </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]] |