juju入门

https://jujucharms.com/docs/1.25/config-LXC

Installation(Ubuntu)

#sudo add-apt-repository ppa:juju/stable  (我们使用1.25)
#sudo apt-get update && sudo apt-get install juju-core

Configuring

linux目录下有个配置文件;
    ~/.juju/environments.yaml
#juju generate-config

# This is the Juju config file, which you can use to specify multiple
# environments in which to deploy. See https://juju.ubuntu.com/docs
# for more information

# An environment configuration must always specify at least the
# following information:
# - name (to identify the environment)
# - type (to specify the provider)
# In the following example the name is "myenv" and type is "ec2".
# myenv:
#    type: ec2

# Values in <brackets> below need to be filled in by the user.
# Optional attributes are shown commented out, with
# a sample value or a value in <brackets>.

# There are several settings supported by all environments, all of which
# are optional and have specified default values. For more info, see the
# Juju documentation.

# The default environment is chosen when an environment is not
# specified using any of the following, in descending order of precedence:
#  1. -e or --environment command line parameter, passed after the command, e.g.
#     $ juju add-unit -e myenv myservice
#  2. By setting JUJU_ENV environment variable.
#  3. Using the juju switch command like this:
#     $ juju switch myenv
#

# You can control how Juju harvests machines by using the
# provisioner-harvest-mode setting. Harvesting is a process wherein
# Juju attempts to reclaim unused machines.
#
# Options are:
#
# Don't harvest any machines.
# provisioner-harvest-mode: none
#
# Only harvest machines that Juju knows about and are dead.
# provisioner-harvest-mode: destroyed
#
# Only harvest machines that Juju doesn't know about.
# provisioner-harvest-mode: unknown
#
# Harvest both dead and unknown machines.
# provisioner-harvest-mode: all

default: amazon

environments:
    # https://juju.ubuntu.com/docs/config-local.html
    local:
        type: local
    
        # root-dir holds the directory that is used for the storage files and
        # database. The default location is $JUJU_HOME/<env-name>.
        # $JUJU_HOME defaults to ~/.juju. Override if needed.
        #
        # root-dir: ~/.juju/local
    
        # storage-port holds the port where the local provider starts the
        # HTTP file server. Override the value if you have multiple local
        # providers, or if the default port is used by another program.
        #
        # storage-port: 8040
    
        # network-bridge holds the name of the LXC network bridge to use.
        # Override if the default LXC network bridge is different.
        #
        #
        # network-bridge: lxcbr0
    
        # The default series to deploy the state-server and charms on.
        # Make sure to uncomment the following option and set the value to
        # precise or trusty as desired.
        #
        # default-series: trusty
    
        # Whether or not to refresh the list of available updates for an
        # OS. The default option of true is recommended for use in
        # production systems, but disabling this can speed up local
        # deployments for development or testing.
        #
        # enable-os-refresh-update: true
    
        # Whether or not to perform OS upgrades when machines are
        # provisioned. The default option of true is recommended for use
        # in production systems, but disabling this can speed up local
        # deployments for development or testing.
        #
        # enable-os-upgrade: true
    
    gce:
      type: gce
    
      # Google Auth Info
      # The GCE provider uses OAuth to authenticate. This requires that
      # you set it up and get the relevant credentials. For more information
      # see https://cloud.google.com/compute/docs/api/how-tos/authorization.
      # The key information can be downloaded as a JSON file, or copied, from:
      #   https://console.developers.google.com/project/<projet>/apiui/credential
      # Either set the path to the downloaded JSON file here:
      auth-file:
    
      # ...or set the individual fields for the credentials. Either way, all
      # three of these are required and have specific meaning to GCE.
      # private-key:
      # client-email:
      # client-id:
    
      # Google instance info
      # To provision instances and perform related operations, the provider
      # will need to know which GCE project to use and into which region to
      # provision. While the region has a default, the project ID is
      # required. For information on the project ID, see
      # https://cloud.google.com/compute/docs/projects and regarding regions
      # see https://cloud.google.com/compute/docs/zones.
      project-id:
      # region: us-central1
    
      # The GCE provider uses pre-built images when provisioning instances.
      # You can customize the location in which to find them with the
      # image-endpoint setting. The default value is the a location within
      # GCE, so it will give you the best speed when bootstrapping or adding
      # machines. For more information on the image cache see
      # https://cloud-images.ubuntu.com/.
      # image-endpoint: https://www.googleapis.com
    joyent:
      type: joyent
    
      # SDC config
      # Can be set via env variables, or specified here
      # sdc-user: <secret>
      # Can be set via env variables, or specified here
      # sdc-key-id: <secret>
      # url defaults to us-west-1 DC, override if required
      # sdc-url: https://us-west-1.api.joyentcloud.com
    
      # Manta config
      # Can be set via env variables, or specified here
      # manta-user: <secret>
      # Can be set via env variables, or specified here
      # manta-key-id: <secret>
      # url defaults to us-east DC, override if required
      # manta-url: https://us-east.manta.joyent.com
    
      # Auth config
      # private-key-path is the private key used to sign Joyent requests.
      # Alternatively, you can supply "private-key" with the content of the private
      # key instead supplying the path to a file.
      # private-key-path: ~/.ssh/foo_id
      # algorithm defaults to rsa-sha256, override if required
      # algorithm: rsa-sha256
    
      # Whether or not to refresh the list of available updates for an
      # OS. The default option of true is recommended for use in
      # production systems, but disabling this can speed up local
      # deployments for development or testing.
      #
      # enable-os-refresh-update: true
    
      # Whether or not to perform OS upgrades when machines are
      # provisioned. The default option of true is recommended for use
      # in production systems, but disabling this can speed up local
      # deployments for development or testing.
      #
      # enable-os-upgrade: true
    
    # https://juju.ubuntu.com/docs/config-maas.html
    maas:
        type: maas
    
        # maas-server specifies the location of the MAAS server. It must
        # specify the base path.
        #
        maas-server: 'http://192.168.1.1/MAAS/'
    
        # maas-oauth holds the OAuth credentials from MAAS.
        #
        maas-oauth: '<add your OAuth credentials from MAAS here>'
    
        # maas-server bootstrap ssh connection options
        #
    
        # bootstrap-timeout time to wait contacting a state server, in seconds.
        bootstrap-timeout: 1800
    
        # Whether or not to refresh the list of available updates for an
        # OS. The default option of true is recommended for use in
        # production systems, but disabling this can speed up local
        # deployments for development or testing.
        #
        # enable-os-refresh-update: true
    
        # Whether or not to perform OS upgrades when machines are
        # provisioned. The default option of true is recommended for use
        # in production systems, but disabling this can speed up local
        # deployments for development or testing.
        #
        # enable-os-upgrade: true
    
    
    
    manual:
        type: manual
        # bootstrap-host holds the host name of the machine where the
        # bootstrap machine agent will be started.
        bootstrap-host: somehost.example.com
    
        # bootstrap-user specifies the user to authenticate as when
        # connecting to the bootstrap machine. It defaults to
        # the current user.
        # bootstrap-user: joebloggs
    
        # storage-listen-ip specifies the IP address that the
        # bootstrap machine's Juju storage server will listen
        # on. By default, storage will be served on all
        # network interfaces.
        # storage-listen-ip:
    
        # storage-port specifes the TCP port that the
        # bootstrap machine's Juju storage server will listen
        # on. It defaults to 8040
        # storage-port: 8040
        # Whether or not to refresh the list of available updates for an
        # OS. The default option of true is recommended for use in
        # production systems.
        #
        # enable-os-refresh-update: true
    
        # Whether or not to perform OS upgrades when machines are
        # provisioned. The default option of false is set so that Juju
        # does not subsume any other way the system might be
        # maintained.
        #
        # enable-os-upgrade: false
    
    vmware:
      type: vsphere
    
      # IP address or DNS name of vsphere API host.
      host:
    
      # Vsphere API user credentials.
      user:
      password:
    
      # Name of vsphere datacenter.
      datacenter:
    
      # Name of the network, that all created vms will use ot obtain public ip address. 
      # This network should have ip pool configured or DHCP server connected to it.
      # This parameter is optional. 
      extenal-network:
    # https://juju.ubuntu.com/docs/config-azure.html
    azure:
        type: azure
    
        # location specifies the place where instances will be started,
        # for example: West US, North Europe.
        #
        location: West US
    
        # The following attributes specify Windows Azure Management
        # information. See:
        # http://msdn.microsoft.com/en-us/library/windowsazure
        # for details.
        #
        management-subscription-id: 00000000-0000-0000-0000-000000000000
        management-certificate-path: /home/me/azure.pem
    
        # storage-account-name holds Windows Azure Storage info.
        #
        storage-account-name: abcdefghijkl
    
        # force-image-name overrides the OS image selection to use a fixed
        # image for all deployments. Most useful for developers.
        #
        # force-image-name: b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-13_10-amd64-server-DEVELOPMENT-20130713-Juju_ALPHA-en-us-30GB
    
        # image-stream chooses a simplestreams stream from which to select
        # OS images, for example daily or released images (or any other stream
        # available on simplestreams).
        #
        # image-stream: "released"
    
        # agent-stream chooses a simplestreams stream from which to select tools,
        # for example released or proposed tools (or any other stream available
        # on simplestreams).
        #
        # agent-stream: "released"
    
        # Whether or not to refresh the list of available updates for an
        # OS. The default option of true is recommended for use in
        # production systems, but disabling this can speed up local
        # deployments for development or testing.
        #
        # enable-os-refresh-update: true
    
        # Whether or not to perform OS upgrades when machines are
        # provisioned. The default option of true is recommended for use
        # in production systems, but disabling this can speed up local
        # deployments for development or testing.
        #
        # enable-os-upgrade: true
    
    # https://juju.ubuntu.com/docs/config-cloudsigma.html
    cloudsigma:
        type: cloudsigma
    
        # region holds the cloudsigma region (zrh, lvs, ...).
        #
        # region: <your region>
    
        # credentials for CloudSigma account
        #
        # username: <your username>
        # password: <secret>
    # https://juju.ubuntu.com/docs/config-aws.html
    amazon:
        type: ec2
    
        # region specifies the EC2 region. It defaults to us-east-1.
        #
        # region: us-east-1
    
        # access-key holds the EC2 access key. It defaults to the
        # environment variable AWS_ACCESS_KEY_ID.
        #
        # access-key: <secret>
    
        # secret-key holds the EC2 secret key. It defaults to the
        # environment variable AWS_SECRET_ACCESS_KEY.
        #
        # secret-key: <secret>
    
        # image-stream chooses a simplestreams stream from which to select
        # OS images, for example daily or released images (or any other stream
        # available on simplestreams).
        #
        # image-stream: "released"
    
        # agent-stream chooses a simplestreams stream from which to select tools,
        # for example released or proposed tools (or any other stream available
        # on simplestreams).
        #
        # agent-stream: "released"
    
        # Whether or not to refresh the list of available updates for an
        # OS. The default option of true is recommended for use in
        # production systems, but disabling this can speed up local
        # deployments for development or testing.
        #
        # enable-os-refresh-update: true
    
        # Whether or not to perform OS upgrades when machines are
        # provisioned. The default option of true is recommended for use
        # in production systems, but disabling this can speed up local
        # deployments for development or testing.
        #
        # enable-os-upgrade: true
    
    # https://juju.ubuntu.com/docs/config-openstack.html
    openstack:
        type: openstack
    
        # use-floating-ip specifies whether a floating IP address is
        # required to give the nodes a public IP address. Some
        # installations assign public IP addresses by default without
        # requiring a floating IP address.
        #
        # use-floating-ip: false
    
        # use-default-secgroup specifies whether new machine instances
        # should have the "default" Openstack security group assigned.
        #
        # use-default-secgroup: false
    
        # network specifies the network label or uuid to bring machines up
        # on, in the case where multiple networks exist. It may be omitted
        # otherwise.
        #
        # network: <your network label or uuid>
    
        # agent-metadata-url specifies the location of the Juju tools and
        # metadata. It defaults to the global public tools metadata
        # location https://streams.canonical.com/tools.
        #
        # agent-metadata-url:  https://your-agent-metadata-url
    
        # image-metadata-url specifies the location of Ubuntu cloud image
        # metadata. It defaults to the global public image metadata
        # location https://cloud-images.ubuntu.com/releases.
        #
        # image-metadata-url:  https://your-image-metadata-url
    
        # image-stream chooses a simplestreams stream from which to select
        # OS images, for example daily or released images (or any other stream
        # available on simplestreams).
        #
        # image-stream: "released"
    
        # agent-stream chooses a simplestreams stream from which to select tools,
        # for example released or proposed tools (or any other stream available
        # on simplestreams).
        #
        # agent-stream: "released"
    
        # auth-url defaults to the value of the environment variable
        # OS_AUTH_URL, but can be specified here.
        #
        # auth-url: https://yourkeystoneurl:443/v2.0/
    
        # tenant-name holds the openstack tenant name. It defaults to the
        # environment variable OS_TENANT_NAME.
        #
        # tenant-name: <your tenant name>
    
        # region holds the openstack region. It defaults to the
        # environment variable OS_REGION_NAME.
        #
        # region: <your region>
    
        # The auth-mode, username and password attributes are used for
        # userpass authentication (the default).
        #
        # auth-mode holds the authentication mode. For user-password
        # authentication, auth-mode should be "userpass" and username and
        # password should be set appropriately; they default to the
        # environment variables OS_USERNAME and OS_PASSWORD respectively.
        #
        # auth-mode: userpass
        # username: <your username>
        # password: <secret>
    
        # For key-pair authentication, auth-mode should be "keypair" and
        # access-key and secret-key should be set appropriately; they
        # default to the environment variables OS_ACCESS_KEY and
        # OS_SECRET_KEY respectively.
        #
        # auth-mode: keypair
        # access-key: <secret>
        # secret-key: <secret>
    
        # Whether or not to refresh the list of available updates for an
        # OS. The default option of true is recommended for use in
        # production systems, but disabling this can speed up local
        # deployments for development or testing.
        #
        # enable-os-refresh-update: true
    
        # Whether or not to perform OS upgrades when machines are
        # provisioned. The default option of true is recommended for use
        # in production systems, but disabling this can speed up local
        # deployments for development or testing.
        #
        # enable-os-upgrade: true
    
    # https://juju.ubuntu.com/docs/config-hpcloud.html
    hpcloud:
        type: openstack
    
        # use-floating-ip specifies whether a floating IP address is
        # required to give the nodes a public IP address. Some
        # installations assign public IP addresses by default without
        # requiring a floating IP address.
        #
        # use-floating-ip: true
    
        # use-default-secgroup specifies whether new machine instances
        # should have the "default" Openstack security group assigned.
        #
        # use-default-secgroup: false
    
        # tenant-name holds the openstack tenant name. In HPCloud, this is
        # synonymous with the project-name It defaults to the environment
        # variable OS_TENANT_NAME.
        #
        # tenant-name: <your tenant name>
    
        # image-stream chooses a simplestreams stream from which to select
        # OS images, for example daily or released images (or any other stream
        # available on simplestreams).
        #
        # image-stream: "released"
    
        # agent-stream chooses a simplestreams stream from which to select tools,
        # for example released or proposed tools (or any other stream available
        # on simplestreams).
        #
        # agent-stream: "released"
    
        # auth-url holds the keystone url for authentication. It defaults
        # to the value of the environment variable OS_AUTH_URL.
        #
        # auth-url: https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/
    
        # region holds the cloud region (e.g. region-a.geo-1). It
        # defaults to the environment variable OS_REGION_NAME.
        #
        # region: <your region>
    
        # auth-mode holds the authentication mode. For user-password
        # authentication, auth-mode should be "userpass" and username and
        # password should be set appropriately; they default to the
        # environment variables OS_USERNAME and OS_PASSWORD respectively.
        #
        # auth-mode: userpass
        # username: <your_username>
        # password: <your_password>
    
        # For key-pair authentication, auth-mode should be "keypair" and
        # access-key and secret-key should be set appropriately; they
        # default to the environment variables OS_ACCESS_KEY and
        # OS_SECRET_KEY respectively.
        #
        # auth-mode: keypair
        # access-key: <secret>
        # secret-key: <secret>
    
        # Whether or not to refresh the list of available updates for an
        # OS. The default option of true is recommended for use in
        # production systems, but disabling this can speed up local
        # deployments for development or testing.
        #
        # enable-os-refresh-update: true
    
        # Whether or not to perform OS upgrades when machines are
        # provisioned. The default option of true is recommended for use
        # in production systems, but disabling this can speed up local
        # deployments for development or testing.
        #
        # enable-os-upgrade: true
    
#juju bootstrap(注意这里要跟一个集群)

  

原文地址:https://www.cnblogs.com/Michael2397/p/7662445.html