diff --git a/.gitignore b/.gitignore index 782bee75c..2f564361a 100644 --- a/.gitignore +++ b/.gitignore @@ -7,8 +7,6 @@ target/ /build-*.log.gz /generated /api-quick-start/build/ -/firstapp/build*/ -swagger/ # Packages *.egg diff --git a/README.rst b/README.rst index cb8607185..074473000 100644 --- a/README.rst +++ b/README.rst @@ -22,7 +22,6 @@ which includes these pages: In addition to these documents, this repository contains: * Landing page for developer.openstack.org: ``www`` - * Writing your first OpenStack application tutorial (in progress): ``firstapp`` To complete code reviews in this repository, use the standard OpenStack Gerrit `workflow `_. @@ -49,28 +48,6 @@ To build an individual document, such as the API Guide:: The locally-built output files are found in a ``publish-docs`` directory. -"Writing your First OpenStack Application" tutorial -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -To build the "Writing your first OpenStack application" tutorial, you must -install `Graphviz `_. - -To install Graphviz for Ubuntu 12.04 or later or Debian 7 ("wheezy") or later:: - - apt-get install graphviz - -On Fedora 22 and later:: - - dnf install graphviz - -On openSUSE:: - - zypper install graphviz - -On Mac OSX with Homebrew installed:: - - brew install graphviz - Build and update API docs ========================= diff --git a/doc-tools-check-languages.conf b/doc-tools-check-languages.conf index 5227d06f3..2d3a72cb8 100644 --- a/doc-tools-check-languages.conf +++ b/doc-tools-check-languages.conf @@ -4,12 +4,12 @@ declare -A DIRECTORIES=( # books to be built declare -A BOOKS=( - ["de"]="api-quick-start firstapp" + ["de"]="api-quick-start" ["eo"]="api-quick-start" - ["id"]="api-quick-start firstapp" + ["id"]="api-quick-start" ["ja"]="api-quick-start" ["ko_KR"]="api-quick-start" - ["tr_TR"]="api-quick-start firstapp" + ["tr_TR"]="api-quick-start" ["zh_CN"]="api-quick-start" ) @@ -22,7 +22,6 @@ DOC_DIR="./" declare -A SPECIAL_BOOKS SPECIAL_BOOKS=( ["api-quick-start"]="RST" - ["firstapp"]="RST" # These are translated in openstack-manuals ["common"]="skip" # Obsolete diff --git a/firstapp/README.rst b/firstapp/README.rst deleted file mode 100644 index 2f5b824bf..000000000 --- a/firstapp/README.rst +++ /dev/null @@ -1,47 +0,0 @@ -======================================== -Writing Your First OpenStack Application -======================================== - -This directory contains the "Writing Your First OpenStack Application" -tutorial. - -The tutorials work with an application that can be found in the -`openstack/faafo `_ -repository. - -Prerequisites -------------- - -To build the documentation, you must install the Graphviz package. - -/source -~~~~~~~ - -The :code:`/source` directory contains the tutorial documentation as -`reStructuredText `_ (RST). - -To build the documentation, you must install `Sphinx `_ and the -`OpenStack docs.openstack.org Sphinx theme (openstackdocstheme) `_. When -you invoke tox, these dependencies are automatically pulled in from the -top-level :code:`test-requirements.txt`. - -You must also install `Graphviz `_ on your build system. - -The RST source includes conditional output logic. The following command -invokes :code:`sphinx-build` with :code:`-t libcloud`:: - - tox -e firstapp-libcloud - -Only the sections marked :code:`.. only:: libcloud` in the RST are built. - -/samples -~~~~~~~~ - -The code samples in this guide are located in this directory. The code samples -for each SDK are located in separate subdirectories. - -/build-libcloud -~~~~~~~~~~~~~~~ - -The HTML documentation is built in this directory. The :code:`.gitignore` file -for the project specifies this directory. diff --git a/firstapp/samples/dotnet/getting_started.cs b/firstapp/samples/dotnet/getting_started.cs deleted file mode 100644 index 40a9a16fb..000000000 --- a/firstapp/samples/dotnet/getting_started.cs +++ /dev/null @@ -1,112 +0,0 @@ -using System; -using System.Collections.Generic; - -using net.openstack.Core.Domain; -using net.openstack.Core.Providers; -using net.openstack.Providers.Rackspace; - -namespace openstack -{ - class MainClass - { - public static void Main (string[] args) - { - // step-1 - var username = "your_auth_username"; - var password = "your_auth_password"; - var project_name = "your_project_name"; - var project_id = "your_project_id"; - var auth_url = "http://controller:5000/v2.0"; - var region = "your_region_name"; - var networkid = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"; - - var identity = new CloudIdentityWithProject () { - Username = username, - Password = password, - ProjectId = new ProjectId(project_id), - ProjectName = project_name - }; - - var identityProvider = new OpenStackIdentityProvider ( - new Uri (auth_url)); - - var conn = new CloudServersProvider (identity, identityProvider); - - // step-2 - var images = conn.ListImages (region: region); - foreach (var image in images) { - Console.WriteLine (string.Format( - "Image Id: {0} - Image Name: {1}", - image.Id, - image.Name)); - } - - // step-3 - var flavors = conn.ListFlavors (region: region); - foreach (var flavor in flavors) { - Console.WriteLine (string.Format( - "Flavor Id: {0} - Flavor Name: {1}", - flavor.Id, - flavor.Name)); - } - - // step-4 - var image_id = "97f55846-6ea5-4e9d-b437-bda97586bd0c"; - var _image = conn.GetImage(image_id, region:region); - Console.WriteLine (string.Format( - "Image Id: {0} - Image Name: {1}", - _image.Id, - _image.Name)); - - // step-5 - var flavor_id = "2"; - var _flavor = conn.GetFlavor (flavor_id, region: region); - Console.WriteLine (string.Format( - "Flavor Id: {0} - Flavor Name: {1}", - _flavor.Id, - _flavor.Name)); - - // step-6 - var instance_name = "testing"; - var testing_instance = conn.CreateServer (instance_name, - _image.Id, - _flavor.Id, - region: region, - networks: new List () { networkid }); - Console.WriteLine (string.Format( - "Instance Id: {0} at {1}", - testing_instance.Id, - testing_instance.Links - )); - - // step-7 - var instances = conn.ListServers(region:region); - foreach (var instance in instances) { - Console.WriteLine (string.Format( - "Instance Id: {0} at {1}", - testing_instance.Id, - testing_instance.Links)); - } - - // step-8 - conn.DeleteServer(testing_instance.Id, region:region); - - // step-9 - - // step-10 - - // step-11 - - // step-12 - - // step-13 - - // step-14 - - // step-15 - - Console.Read (); - } - } -} - diff --git a/firstapp/samples/fog/block_storage.rb b/firstapp/samples/fog/block_storage.rb deleted file mode 100755 index 612d51bd3..000000000 --- a/firstapp/samples/fog/block_storage.rb +++ /dev/null @@ -1,56 +0,0 @@ -#!/usr/bin/env ruby -require 'fog/openstack' - -# step-1 -auth_username = "your_auth_username" -auth_password = "your_auth_password" -auth_url = "http://controller:5000" -project_name = "your_project_name_or_id" - -conn = Fog::Compute::OpenStack.new openstack_auth_url: auth_url + "/v3/auth/tokens", - openstack_domain_id: "default", - openstack_username: auth_username, - openstack_api_key: auth_password, - openstack_project_name: project_name - -# step-2 -volume = conn.volumes.create name: "test", - description: "", - size: 1 - -p volume - -# step-3 -p conn.volumes.summary - -# step-4 -db_group = conn.security_groups.create name: "database", - description: "for database service" - -conn.security_group_rules.create parent_group_id: db_group.id, - ip_protocol: "tcp", - from_port: 3306, - to_port: 3306 - -instance = conn.servers.create name: "app-database", - image_ref: image.id, - flavor_ref: flavor.id, - key_name: key_pair.name, - security_groups: db_group - -instance.wait_for { ready? } - -# step-5 -volume = conn.volumes.get "755ab026-b5f2-4f53-b34a-6d082fb36689" -instance.attach_volume volume.id, "/dev/vdb" - -# step-6 -instance.detach_volume volume.id -volume.destroy - -# step-7 -conn.snapshots.create volume_id: volume.id, - name: "test_backup_1", - description: "test" - -# step-8 diff --git a/firstapp/samples/fog/durability.rb b/firstapp/samples/fog/durability.rb deleted file mode 100755 index fba719cf0..000000000 --- a/firstapp/samples/fog/durability.rb +++ /dev/null @@ -1,108 +0,0 @@ -#!/usr/bin/env ruby -require 'fog/openstack' -require 'digest/md5' -require 'net/http' -require 'json' -require 'openuri' - -# step-1 -auth_username = "your_auth_username" -auth_password = "your_auth_password" -auth_url = "http://controller:5000" -project_name = "your_project_name_or_id" - -swift = Fog::Storage::OpenStack.new openstack_auth_url: auth_url + "/v3/auth/tokens", - openstack_domain_id: "default", - openstack_username: auth_username, - openstack_api_key: auth_password, - openstack_project_name: project_name - -# step-2 -container_name = "fractals" -container = swift.directories.create key: container_name - -p container - -# step-3 -p swift.directories.all - -# step-4 -file_path = "goat.jpg" -object_name = "an amazing goat" -container = swift.directories.get container_name -object = container.files.create body: File.read(File.expand_path(file_path)), - key: object_name - -# step-5 -p container.files.all - -# step-6 -p container.files.get object_name - -# step-7 -puts Digest::MD5.hexdigest(File.read(File.expand_path(file_path))) - -# step-8 -object.destroy - -# step-9 -p container.files.all - -# step-10 -container_name = 'fractals' -container = swift.directories.get container_name - -# step-11 -endpoint = "http://IP_API_1" -uri = URI("#{endpoint}/v1/fractal") -uri.query = URI.encode_www_form results_per_page: -1 -data = JSON.parse(Net::HTTP.get_response(uri).body) - -data["objects"].each do |fractal| - body = open("#{endpoint}/fractal/#{fractal["uuid"]}") {|f| f.read} - object = container.files.create body: body, key: fractal["uuid"] -end - -p container.files.all - -# step-12 -container.files.each do |file| - file.destroy -end -container.destroy - -# step-13 -object_name = "backup_goat.jpg" -file_path = "backup_goat.jpg" -extra = { - description: "a funny goat", - created: "2015-06-02" -} -object = container.files.create body: File.read(File.expand_path(file_path)), - key: object_name, - metadata: extra - -# step-14 -def chunked_file_upload(swift, container_name, object_name, file_path) - chunk_size = 4096 - offset = 0 - hash = Digest::MD5.hexdigest(File.read(File.expand_path(file_path))) - object = swift.put_object(container_name, object_name, nil) do - chunk = File.read(file_path, chunk_size, offset) - offset += chunk_size - chunk ? chunk : '' - end - unless hash == object.data[:headers]["etag"] - swift.delete_object container_name, object_name - raise "Checksums do not match. Please retry." - end - container = swift.directories.get container_name - container.files.get object_name -end - -object_name = "very_large_file" -file_path = "very_large_file" - -object = chunked_file_upload(swift, container_name, object_name, file_path) - -# step-15 diff --git a/firstapp/samples/fog/getting_started.rb b/firstapp/samples/fog/getting_started.rb deleted file mode 100755 index b49f0aa9e..000000000 --- a/firstapp/samples/fog/getting_started.rb +++ /dev/null @@ -1,139 +0,0 @@ -#!/usr/bin/env ruby -require 'fog/openstack' - -# step-1 -auth_username = "your_auth_username" -auth_password = "your_auth_password" -auth_url = "http://controller:5000" -project_name = "your_project_name_or_id" - -conn = Fog::Compute::OpenStack.new openstack_auth_url: auth_url + "/v3/auth/tokens", - openstack_domain_id: "default", - openstack_username: auth_username, - openstack_api_key: auth_password, - openstack_project_name: project_name - -# step-2 -p conn.images.summary - -# step-3 -p conn.flavors.summary - -# step-4 -image = conn.images.get "2cccbea0-cea9-4f86-a3ed-065c652adda5" -p image - -# step-5 -flavor = conn.flavors.get "2" -p flavor - -# step-6 -instance_name = "testing" -testing_instance = conn.servers.create name: instance_name, - image_ref: image.id, - flavor_ref: flavor.id - -testing_instance.wait_for { ready? } - -p testing_instance - -# step-7 -p conn.servers.summary - -# step-8 -testing_instance.destroy - -# step-9 -puts "Checking for existing SSH key pair..." -key_pair_name = "demokey" -pub_key_file_path = "~/.ssh/id_rsa.pub" - -if key_pair = conn.key_pairs.get(key_pair_name) - puts "Keypair #{key_pair_name} already exists. Skipping import." -else - puts "adding keypair..." - key_pair = conn.key_pairs.create name: key_pair_name, - public_key: File.read(File.expand_path(pub_key_file_path)) -end - -p conn.key_pairs.all - -# step-10 -puts "Checking for existing security group..." -security_group_name = "all-in-one" - -all_in_one_security_group = conn.security_groups.find do |security_group| - security_group.name == security_group_name -end - -if all_in_one_security_group - puts "Security Group #{security_group_name} already exists. Skipping creation." -else - all_in_one_security_group = conn.security_groups.create name: security_group_name, - description: "network access for all-in-one application." - - conn.security_group_rules.create parent_group_id: all_in_one_security_group.id, - ip_protocol: "tcp", - from_port: 80, - to_port: 80 - - conn.security_group_rules.create parent_group_id: all_in_one_security_group.id, - ip_protocol: "tcp", - from_port: 22, - to_port: 22 - -end - -p conn.security_groups.all - -# step-11 -user_data = < 90% for period seconds - meter_name: cpu_util - statistic: avg - period: { get_param: period } - evaluation_periods: 1 - threshold: 90 - alarm_actions: - - {get_attr: [scale_up_policy, alarm_url]} - matching_metadata: {'metadata.user_metadata.stack': {get_param: "OS::stack_id"}} - comparison_operator: gt - - cpu_alarm_low: - type: OS::Ceilometer::Alarm - properties: - description: Scale-down if the average CPU < 15% for period seconds - meter_name: cpu_util - statistic: avg - period: { get_param: period } - evaluation_periods: 1 - threshold: 15 - alarm_actions: - - {get_attr: [scale_down_policy, alarm_url]} - matching_metadata: {'metadata.user_metadata.stack': {get_param: "OS::stack_id"}} - comparison_operator: lt - -outputs: - - api_url: - description: The URL for api server - value: - list_join: ['', ['http://', get_attr: [api_instance, first_address]]] - - scale__workers_up_url: - description: > - HTTP POST to this URL webhook to scale up the worker group. - Does not accept request headers or body. Place quotes around the URL. - value: {get_attr: [scale_up_policy, alarm_url]} - - scale_workers_down_url: - description: > - HTTP POST to this URL webhook to scale down the worker group. - Does not accept request headers or body. Place quotes around the URL. - value: {get_attr: [scale_down_policy, alarm_url]} - - ceilometer_statistics_query: - value: - str_replace: - template: > - ceilometer statistics -m cpu_util -q metadata.user_metadata.stack=stackval -p period -a avg - params: - stackval: { get_param: "OS::stack_id" } - period: { get_param: period } - description: > - This query shows the cpu_util sample statistics of the worker group in this stack. - These statistics trigger the alarms. - - ceilometer_sample_query: - value: - str_replace: - template: > - ceilometer sample-list -m cpu_util -q metadata.user_metadata.stack=stackval - params: - stackval: { get_param: "OS::stack_id" } - description: > - This query shows the cpu_util meter samples of the worker group in this stack. - These samples are used to calculate the statistics. \ No newline at end of file diff --git a/firstapp/samples/heat/hello_faafo.yaml b/firstapp/samples/heat/hello_faafo.yaml deleted file mode 100644 index 038585ae9..000000000 --- a/firstapp/samples/heat/hello_faafo.yaml +++ /dev/null @@ -1,90 +0,0 @@ -heat_template_version: 2014-10-16 - - -description: | - A template to bring up the faafo application as an all in one install - - -parameters: - - key_name: - type: string - description: Name of an existing KeyPair to enable SSH access to the instances - default: id_rsa - constraints: - - custom_constraint: nova.keypair - description: Must already exist on your cloud - - flavor: - type: string - description: The flavor the application is to use - constraints: - - custom_constraint: nova.flavor - description: Must be a valid flavor provided by your cloud provider. - - image_id: - type: string - description: ID of the image to use to create the instance - constraints: - - custom_constraint: glance.image - description: Must be a valid image on your cloud - - faafo_source: - type: string - description: The http location of the faafo application install script - default: https://opendev.org/openstack/faafo/raw/contrib/install.sh - -resources: - - security_group: - type: OS::Neutron::SecurityGroup - properties: - description: "SSH and HTTP for the all in one server" - rules: [ - {remote_ip_prefix: 0.0.0.0/0, - protocol: tcp, - port_range_min: 22, - port_range_max: 22}, - {remote_ip_prefix: 0.0.0.0/0, - protocol: tcp, - port_range_min: 80, - port_range_max: 80},] - - server: - type: OS::Nova::Server - properties: - image: { get_param: image_id } - flavor: { get_param: flavor } - key_name: { get_param: key_name } - security_groups: - - {get_resource: security_group} - user_data_format: RAW - user_data: - str_replace: - template: | - #!/usr/bin/env bash - curl -L -s faafo_installer | bash -s -- \ - -i faafo -i messaging -r api -r worker -r demo - wc_notify --data-binary '{"status": "SUCCESS"}' - params: - wc_notify: { get_attr: ['wait_handle', 'curl_cli'] } - faafo_installer: { get_param: faafo_source } - - wait_handle: - type: OS::Heat::WaitConditionHandle - - wait_condition: - type: OS::Heat::WaitCondition - depends_on: server - properties: - handle: { get_resource: wait_handle } - count: 1 - # we'll give it 10 minutes - timeout: 600 - -outputs: - - faafo_ip: - description: The faafo url - value: - list_join: ['', ['Faafo can be found at: http://', get_attr: [server, first_address]]] \ No newline at end of file diff --git a/firstapp/samples/jclouds/BlockStorage.java b/firstapp/samples/jclouds/BlockStorage.java deleted file mode 100644 index 1cc1385bd..000000000 --- a/firstapp/samples/jclouds/BlockStorage.java +++ /dev/null @@ -1,243 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import com.google.common.io.Closeables; -import org.jclouds.ContextBuilder; -import org.jclouds.net.domain.IpProtocol; -import org.jclouds.openstack.cinder.v1.CinderApi; -import org.jclouds.openstack.cinder.v1.domain.Snapshot; -import org.jclouds.openstack.cinder.v1.domain.Volume; -import org.jclouds.openstack.cinder.v1.features.SnapshotApi; -import org.jclouds.openstack.cinder.v1.features.VolumeApi; -import org.jclouds.openstack.cinder.v1.options.CreateSnapshotOptions; -import org.jclouds.openstack.cinder.v1.options.CreateVolumeOptions; -import org.jclouds.openstack.cinder.v1.predicates.SnapshotPredicates; -import org.jclouds.openstack.cinder.v1.predicates.VolumePredicates; -import org.jclouds.openstack.nova.v2_0.NovaApi; -import org.jclouds.openstack.nova.v2_0.domain.Ingress; -import org.jclouds.openstack.nova.v2_0.domain.SecurityGroup; -import org.jclouds.openstack.nova.v2_0.domain.ServerCreated; -import org.jclouds.openstack.nova.v2_0.extensions.SecurityGroupApi; -import org.jclouds.openstack.nova.v2_0.features.ServerApi; -import org.jclouds.openstack.nova.v2_0.options.CreateServerOptions; -import org.jclouds.openstack.nova.v2_0.predicates.ServerPredicates; - -import java.io.Closeable; -import java.io.IOException; -import java.util.Optional; -import java.util.Scanner; -import java.util.concurrent.TimeoutException; - -import static java.lang.System.out; - - -public class BlockStorage implements Closeable { - - // Set the following to match the values for your cloud - private static final String IDENTITY = "your_project_name:your_auth_username"; // note: projectName:userName - private static final String KEY_PAIR_NAME = "your_key_pair_name"; - private static final String AUTH_URL = "http://controller:5000"; - private static final String AVAILABILITY_ZONE = "your_availability_zone"; - private static final String IMAGE_ID = "your_desired_image_id"; - private static final String FLAVOR_ID = "your_desired_flavor_id"; - - private static final String DATABASE_SECURITY_GROUP_NAME = "database"; - - private final CinderApi cinderApi; - private final VolumeApi volumeApi; - private final NovaApi novaApi; - private final ServerApi serverApi; - private final String region; - - // step-1 - public BlockStorage(final String password) { - cinderApi = ContextBuilder.newBuilder("openstack-cinder") - .endpoint(AUTH_URL) - .credentials(IDENTITY, password) - .buildApi(CinderApi.class); - region = cinderApi.getConfiguredRegions().iterator().next(); - out.println("Running in region: " + region); - volumeApi = cinderApi.getVolumeApi(region); - novaApi = ContextBuilder.newBuilder("openstack-nova") - .endpoint(AUTH_URL) - .credentials(IDENTITY, password) - .buildApi(NovaApi.class); - serverApi = novaApi.getServerApi(region); - } - - // step-2 - private Volume createVolume() throws TimeoutException { - String volumeName = "Test"; - CreateVolumeOptions options = CreateVolumeOptions.Builder - .name(volumeName) - .availabilityZone(AVAILABILITY_ZONE); - out.println("Creating 1 Gig volume named '" + volumeName + "'"); - Volume volume = volumeApi.create(1, options); - // Wait for the volume to become available - if (!VolumePredicates.awaitAvailable(volumeApi).apply(volume)) { - throw new TimeoutException("Timeout on volume create"); - } - return volume; - } - - // step-3 - private void listVolumes() { - out.println("Listing volumes"); - cinderApi.getConfiguredRegions().forEach((region) -> { - out.println(" In region: " + region); - cinderApi.getVolumeApi(region).list().forEach((volume) -> { - out.println(" " + volume.getName()); - }); - }); - } - - // step-4 - private boolean isSecurityGroup(String securityGroupName, SecurityGroupApi securityGroupApi) { - for (SecurityGroup securityGroup : securityGroupApi.list()) { - if (securityGroup.getName().equals(securityGroupName)) { - return true; - } - } - return false; - } - - // A utility method to convert a google optional into a Java 8 optional - private Optional optional(com.google.common.base.Optional target) { - return target.isPresent() ? Optional.of(target.get()) : Optional.empty(); - } - - private void createSecurityGroup(String securityGroupName) { - optional(novaApi.getSecurityGroupApi(region)).ifPresent(securityGroupApi -> { - if (isSecurityGroup(securityGroupName, securityGroupApi)) { - out.println("Security group " + securityGroupName + " already exists"); - } else { - out.println("Creating security group " + securityGroupName + "..."); - SecurityGroup securityGroup = - securityGroupApi.createWithDescription(securityGroupName, - "For database service"); - securityGroupApi.createRuleAllowingCidrBlock( - securityGroup.getId(), Ingress - .builder() - .ipProtocol(IpProtocol.TCP) - .fromPort(3306) - .toPort(3306) - .build(), "0.0.0.0/0"); - } - }); - } - - private String createDbInstance() throws TimeoutException { - String instanceName = "app-database"; - out.println("Creating instance " + instanceName); - CreateServerOptions allInOneOptions = CreateServerOptions.Builder - .keyPairName(KEY_PAIR_NAME) - .availabilityZone(AVAILABILITY_ZONE) - .securityGroupNames(DATABASE_SECURITY_GROUP_NAME); - ServerCreated server = serverApi.create(instanceName, IMAGE_ID, FLAVOR_ID, allInOneOptions); - String id = server.getId(); - // Wait for the server to become available - if (!ServerPredicates.awaitActive(serverApi).apply(id)) { - throw new TimeoutException("Timeout on server create"); - } - return id; - } - - // step-5 - private void attachVolume(Volume volume, String instanceId) throws TimeoutException { - out.format("Attaching volume %s to instance %s%n", volume.getId(), instanceId); - optional(novaApi.getVolumeAttachmentApi(region)).ifPresent(volumeAttachmentApi -> { - volumeAttachmentApi.attachVolumeToServerAsDevice(volume.getId(), instanceId, "/dev/vdb"); - } - ); - // Wait for the volume to be attached - if (!VolumePredicates.awaitInUse(volumeApi).apply(volume)) { - throw new TimeoutException("Timeout on volume attach"); - } - } - - // step-6 - private void detachVolume(Volume volume, String instanceId) throws TimeoutException { - out.format("Detach volume %s from instance %s%n", volume.getId(), instanceId); - optional(novaApi.getVolumeAttachmentApi(region)).ifPresent(volumeAttachmentApi -> { - volumeAttachmentApi.detachVolumeFromServer(volume.getId(), instanceId); - }); - // Wait for the volume to be detached - if (!VolumePredicates.awaitAvailable(volumeApi).apply(Volume.forId(volume.getId()))) { - throw new TimeoutException("Timeout on volume detach"); - } - } - - private void destroyVolume(Volume volume) throws TimeoutException { - out.println("Destroy volume " + volume.getName()); - volumeApi.delete(volume.getId()); - // Wait for the volume to be deleted - if (!VolumePredicates.awaitDeleted(volumeApi).apply(volume)) { - throw new TimeoutException("Timeout on volume delete"); - } - } - - // step-7 - private Snapshot createVolumeSnapshot(Volume volume) throws TimeoutException { - out.println("Create snapshot of volume " + volume.getName()); - SnapshotApi snapshotApi = cinderApi.getSnapshotApi(region); - CreateSnapshotOptions options = CreateSnapshotOptions.Builder - .name(volume.getName() + " snapshot") - .description("Snapshot of " + volume.getId()); - Snapshot snapshot = snapshotApi.create(volume.getId(), options); - // Wait for the snapshot to become available - if (!SnapshotPredicates.awaitAvailable(snapshotApi).apply(snapshot)) { - throw new TimeoutException("Timeout on volume snapshot"); - } - return snapshot; - } - - private void deleteVolumeSnapshot(Snapshot snapshot) throws TimeoutException { - out.println("Delete volume snapshot " + snapshot.getName()); - SnapshotApi snapshotApi = cinderApi.getSnapshotApi(region); - snapshotApi.delete(snapshot.getId()); - // Wait for the snapshot to be deleted - if (!SnapshotPredicates.awaitDeleted(snapshotApi).apply(snapshot)) { - throw new TimeoutException("Timeout on snapshot delete"); - } - } - // step-8 - - @Override - public void close() throws IOException { - Closeables.close(novaApi, true); - Closeables.close(cinderApi, true); - } - - public static void main(String... args) throws TimeoutException, IOException { - try (Scanner scanner = new Scanner(System.in, "UTF-8")) { - out.println("Please enter your API password: "); - String password = scanner.next(); - try (BlockStorage storage = new BlockStorage(password)) { - Volume volume = storage.createVolume(); - storage.listVolumes(); - storage.createSecurityGroup(DATABASE_SECURITY_GROUP_NAME); - String dbInstanceId = storage.createDbInstance(); - storage.attachVolume(volume, dbInstanceId); - storage.detachVolume(volume, dbInstanceId); - Snapshot snapshot = storage.createVolumeSnapshot(volume); - // have to delete the snapshot before we can delete the volume... - storage.deleteVolumeSnapshot(snapshot); - storage.destroyVolume(volume); - } - } - } -} diff --git a/firstapp/samples/jclouds/Durability.java b/firstapp/samples/jclouds/Durability.java deleted file mode 100644 index 3347f80d6..000000000 --- a/firstapp/samples/jclouds/Durability.java +++ /dev/null @@ -1,296 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import com.google.common.collect.ImmutableMap; -import com.google.common.io.ByteSource; -import com.google.common.io.Closeables; -import com.google.common.io.Files; -import com.google.gson.Gson; -import org.jclouds.ContextBuilder; -import org.jclouds.blobstore.BlobStore; -import org.jclouds.blobstore.domain.Blob; -import org.jclouds.domain.Location; -import org.jclouds.io.Payload; -import org.jclouds.io.Payloads; -import org.jclouds.openstack.swift.v1.SwiftApi; -import org.jclouds.openstack.swift.v1.blobstore.RegionScopedBlobStoreContext; -import org.jclouds.openstack.swift.v1.domain.Container; -import org.jclouds.openstack.swift.v1.domain.SwiftObject; -import org.jclouds.openstack.swift.v1.features.ContainerApi; -import org.jclouds.openstack.swift.v1.features.ObjectApi; -import org.jclouds.openstack.swift.v1.options.CreateContainerOptions; -import org.jclouds.openstack.swift.v1.options.PutOptions; - -import java.io.*; -import java.net.URL; -import java.net.URLConnection; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.List; - -import static com.google.common.collect.Iterables.getOnlyElement; -import static java.lang.System.out; -import static org.jclouds.io.Payloads.newFilePayload; -import static org.jclouds.io.Payloads.newInputStreamPayload; - -public class Durability implements Closeable { - - // step-1 - private final SwiftApi swiftApi; - private final String region; - private static final String PROVIDER = "openstack-swift"; - - private static final String OS_AUTH_URL = "http://controller:5000/v2.0/"; - // format for identity is projectName:userName - private static final String IDENTITY = "your_project_name:your_auth_username"; - private static final String PASSWORD = "your_auth_password"; - - - public Durability() { - swiftApi = ContextBuilder.newBuilder(PROVIDER) - .endpoint(OS_AUTH_URL) - .credentials(IDENTITY, PASSWORD) - .buildApi(SwiftApi.class); - region = swiftApi.getConfiguredRegions().iterator().next(); - out.println("Running in region: " + region); - } - - // step-2 - private void createContainer(String containerName) { - ContainerApi containerApi = swiftApi.getContainerApi(region); - if (containerApi.create(containerName)) { - out.println("Created container: " + containerName); - } else { - out.println("Container all ready exists: " + containerName); - } - } - - // step-3 - private void listContainers() { - out.println("Containers:"); - ContainerApi containerApi = swiftApi.getContainerApi(region); - containerApi.list().forEach(container -> out.println(" " + container)); - } - - // step-4 - private String uploadObject(String containerName, String objectName, String filePath) { - Payload payload = newFilePayload(new File(filePath)); - ObjectApi objectApi = swiftApi.getObjectApi(region, containerName); - String eTag = objectApi.put(objectName, payload); - out.println(String.format("Uploaded %s as \"%s\" eTag = %s", filePath, objectName, eTag)); - return eTag; - } - - // step-5 - private void listObjectsInContainer(String containerName) { - out.println("Objects in " + containerName + ":"); - ObjectApi objectApi = swiftApi.getObjectApi(region, containerName); - objectApi.list().forEach(object -> out.println(" " + object)); - } - - // step-6 - private SwiftObject getObjectFromContainer(String containerName, String objectName) { - ObjectApi objectApi = swiftApi.getObjectApi(region, containerName); - SwiftObject object = objectApi.get(objectName); - out.println("Fetched: " + object.getName()); - return object; - } - - // step-7 - private void calculateMd5ForFile(String filePath) { - try (FileInputStream fis = new FileInputStream(new File(filePath))) { - MessageDigest md5Digest = MessageDigest.getInstance("MD5"); - - byte[] byteArray = new byte[1024]; - int bytesCount; - while ((bytesCount = fis.read(byteArray)) != -1) { - md5Digest.update(byteArray, 0, bytesCount); - } - byte[] digest = md5Digest.digest(); - - // Convert decimal number to hex string - StringBuilder sb = new StringBuilder(); - for (byte aByte : digest) { - sb.append(Integer.toString((aByte & 0xff) + 0x100, 16).substring(1)); - } - - out.println("MD5 for file " + filePath + ": " + sb.toString()); - } catch (IOException | NoSuchAlgorithmException e) { - out.println("Could not calculate md5: " + e.getMessage()); - } - } - - // step-8 - private void deleteObject(String containerName, String objectName) { - ObjectApi objectApi = swiftApi.getObjectApi(region, containerName); - objectApi.delete(objectName); - out.println("Deleted: " + objectName); - } - - // step-10 - private Container getContainer(String containerName) { - ContainerApi containerApi = swiftApi.getContainerApi(region); - // ensure container exists - containerApi.create(containerName); - return containerApi.get(containerName); - } - - // step-11 - static class Fractal { - // only included elements we want to work with - String uuid; - } - - static class Fractals { - // only included elements we want to work with - List objects; - } - - private void backupFractals(String containerName, String fractalsIp) { - // just need to make sure that there is container - getContainer(containerName); - try { - String response = ""; - String endpoint = "http://" + fractalsIp + "/v1/fractal"; - URLConnection connection = new URL(endpoint).openConnection(); - connection.setRequestProperty("'results_per_page", "-1"); - connection.getInputStream(); - try (BufferedReader in = new BufferedReader(new InputStreamReader( - connection.getInputStream()))) { - String inputLine; - while ((inputLine = in.readLine()) != null) { - response = response + inputLine; - } - } - - Gson gson = new Gson(); - Fractals fractals = gson.fromJson(response, Fractals.class); - ObjectApi objectApi = swiftApi.getObjectApi(region, containerName); - fractals.objects.forEach(fractal -> { - try { - String fractalEndpoint = "http://" + fractalsIp + "/fractal/" + fractal.uuid; - URLConnection conn = new URL(fractalEndpoint).openConnection(); - try (InputStream inputStream = conn.getInputStream()) { - Payload payload = newInputStreamPayload(inputStream); - String eTag = objectApi.put(fractal.uuid, payload); - out.println(String.format("Backed up %s eTag = %s", fractal.uuid, eTag)); - } - } catch (IOException e) { - out.println("Could not backup " + fractal.uuid + "! Cause: " + e.getMessage()); - } - }); - out.println("Backed up:"); - objectApi.list().forEach(object -> out.println(" " + object)); - } catch (IOException e) { - out.println("Could not backup fractals! Cause: " + e.getMessage()); - } - } - - // step-12 - private boolean deleteContainer(String containerName) { - ObjectApi objectApi = swiftApi.getObjectApi(region, containerName); - objectApi.list().forEach(object -> objectApi.delete(object.getName())); - ContainerApi containerApi = swiftApi.getContainerApi(region); - return containerApi.deleteIfEmpty(containerName); - } - - // step-13 - private void createWithMetadata(String containerName, String objectName, String filePath) { - - ContainerApi containerApi = swiftApi.getContainerApi(region); - CreateContainerOptions options = CreateContainerOptions.Builder - .metadata(ImmutableMap.of("photos", "of fractals")); - - if (containerApi.create(containerName, options)) { - out.println("Uploading: " + objectName); - - ObjectApi objectApi = swiftApi.getObjectApi(region, containerName); - Payload payload = newFilePayload(new File(filePath)); - PutOptions putOptions = PutOptions.Builder - .metadata(ImmutableMap.of( - "description", "a funny goat", - "created", "2015-06-02")); - String eTag = objectApi.put(objectName, payload, putOptions); - out.println( - String.format("Uploaded %s as \"%s\" eTag = %s", filePath, objectName, eTag)); - } else { - out.println("Could not upload " + objectName); - } - } - - // step-14 - private void uploadLargeFile(String containerName, String pathNameOfLargeFile) { - // Only works with jclouds V2 (in beta at the time of writing). See: - // https://issues.apache.org/jira/browse/JCLOUDS-894 - try { - RegionScopedBlobStoreContext context = ContextBuilder.newBuilder(PROVIDER) - .credentials(IDENTITY, PASSWORD) - .endpoint(OS_AUTH_URL) - .buildView(RegionScopedBlobStoreContext.class); - String region = context.getConfiguredRegions().iterator().next(); - out.println("Running in region: " + region); - BlobStore blobStore = context.getBlobStore(region); - // create the container if it doesn't exist... - Location location = getOnlyElement(blobStore.listAssignableLocations()); - blobStore.createContainerInLocation(location, containerName); - File largeFile = new File(pathNameOfLargeFile); - ByteSource source = Files.asByteSource(largeFile); - Payload payload = Payloads.newByteSourcePayload(source); - payload.getContentMetadata().setContentLength(largeFile.length()); - out.println("Uploading file. This may take some time!"); - Blob blob = blobStore.blobBuilder(largeFile.getName()) - .payload(payload) - .build(); - org.jclouds.blobstore.options.PutOptions putOptions = - new org.jclouds.blobstore.options.PutOptions(); - - String eTag = blobStore.putBlob(containerName, blob, putOptions.multipart()); - out.println(String.format("Uploaded %s eTag=%s", largeFile.getName(), eTag)); - } catch (UnsupportedOperationException e) { - out.println("Sorry: large file uploads only work in jclouds V2..."); - } - } - - // step-15 - @Override - public void close() throws IOException { - Closeables.close(swiftApi, true); - } - - public static void main(String[] args) throws IOException { - try (Durability tester = new Durability()) { - String containerName = "fractals"; - String objectName = "an amazing goat"; - String goatImageFilePath = "goat.jpg"; - String fractalsIp = "IP_API_1"; - String pathNameOfLargeFile = "big.img"; - - tester.createContainer(containerName); - tester.listContainers(); - tester.uploadObject(containerName, objectName, goatImageFilePath); - tester.listObjectsInContainer(containerName); - tester.getObjectFromContainer(containerName, objectName); - tester.calculateMd5ForFile(goatImageFilePath); - tester.deleteObject(containerName, objectName); - tester.getContainer(containerName); - tester.backupFractals(containerName, fractalsIp); - tester.deleteContainer(containerName); - tester.createWithMetadata(containerName, objectName, goatImageFilePath); - tester.listContainers(); - tester.uploadLargeFile("largeObject", pathNameOfLargeFile); - } - } -} diff --git a/firstapp/samples/jclouds/GettingStarted.java b/firstapp/samples/jclouds/GettingStarted.java deleted file mode 100644 index 51912e8a7..000000000 --- a/firstapp/samples/jclouds/GettingStarted.java +++ /dev/null @@ -1,266 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import com.google.common.base.Optional; -import org.jclouds.ContextBuilder; -import org.jclouds.net.domain.IpProtocol; -import org.jclouds.openstack.nova.v2_0.NovaApi; -import org.jclouds.openstack.nova.v2_0.domain.*; -import org.jclouds.openstack.nova.v2_0.extensions.FloatingIPApi; -import org.jclouds.openstack.nova.v2_0.extensions.KeyPairApi; -import org.jclouds.openstack.nova.v2_0.extensions.SecurityGroupApi; -import org.jclouds.openstack.nova.v2_0.features.FlavorApi; -import org.jclouds.openstack.nova.v2_0.features.ImageApi; -import org.jclouds.openstack.nova.v2_0.features.ServerApi; -import org.jclouds.openstack.nova.v2_0.options.CreateServerOptions; -import org.jclouds.openstack.nova.v2_0.predicates.ServerPredicates; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.nio.file.attribute.PosixFilePermission; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; - -import static java.lang.System.out; - - -class GettingStarted { - - public static void main(String[] args) throws IOException { - out.println("============================="); - -// # step-1 - - String provider = "openstack-nova"; - String identity = "your_project_name_or_id:your_auth_username"; - // NB: Do not check this file into source control with a real password in it! - String credential = "your_auth_password"; - String authUrl = "http://controller:5000/v2.0/"; - - NovaApi conn = ContextBuilder.newBuilder(provider) - .endpoint(authUrl) - .credentials(identity, credential) - .buildApi(NovaApi.class); - String region = conn.getConfiguredRegions().iterator().next(); - out.println("Running in region: " + region); - -// # step-2 - - ImageApi imageApi = conn.getImageApi(region); - out.println("Images in region:"); - imageApi.list().concat().forEach(image -> out.println(" " + image.getName())); - -// # step-3 - - FlavorApi flavorApi = conn.getFlavorApi(region); - out.println("Flavors in region:"); - flavorApi.list().concat().forEach(flavor -> out.println(" " + flavor.getName())); - -// # step-4 - - String imageId = "778e7b2e-4e67-44eb-9565-9c920e236dfd"; - Image retrievedImage = conn.getImageApi(region).get(imageId); - out.println(retrievedImage.toString()); - -// # step-5 - - String flavorId = "639b8b2a-a5a6-4aa2-8592-ca765ee7af63"; - Flavor flavor = conn.getFlavorApi(region).get(flavorId); - out.println(flavor.toString()); - -// # step-6 - - String testingInstance = "testingInstance"; - ServerCreated testInstance = conn.getServerApi(region).create(testingInstance, imageId, flavorId); - out.println("Server created. ID: " + testInstance.getId()); - -// # step-7 - - ServerApi serverApi = conn.getServerApi(region); - out.println("Instances in region:"); - serverApi.list().concat().forEach(instance -> out.println(" " + instance)); - -// # step-8 - - if (serverApi.delete(testInstance.getId())) { - out.println("Server " + testInstance.getId() + " being deleted, please wait."); - ServerPredicates.awaitStatus(serverApi, Server.Status.DELETED, 600, 5).apply(testInstance.getId()); - serverApi.list().concat().forEach(instance -> out.println(" " + instance)); - } else { - out.println("Server not deleted."); - } - -// # step-9 - - String pub_key_file = "id_rsa"; - String privateKeyFile = "~/.ssh/" + pub_key_file; - - Optional keyPairApiExtension = conn.getKeyPairApi(region); - if (keyPairApiExtension.isPresent()) { - out.println("Checking for existing SSH keypair..."); - KeyPairApi keyPairApi = keyPairApiExtension.get(); - boolean keyPairFound = keyPairApi.get(pub_key_file) != null; - if (keyPairFound) { - out.println("Keypair " + pub_key_file + " already exists."); - } else { - out.println("Creating keypair."); - KeyPair keyPair = keyPairApi.create(pub_key_file); - try { - Files.write(Paths.get(privateKeyFile), keyPair.getPrivateKey().getBytes()); - out.println("Wrote " + privateKeyFile + "."); - // set file permissions to 600 - Set permissions = new HashSet<>(); - permissions.add(PosixFilePermission.OWNER_READ); - permissions.add(PosixFilePermission.OWNER_WRITE); - Files.setPosixFilePermissions(Paths.get(privateKeyFile), permissions); - } catch (IOException e) { - e.printStackTrace(); - } - } - out.println("Existing keypairs:"); - keyPairApi.list().forEach(keyPair -> out.println(" " + keyPair)); - } else { - out.println("No keypair extension present; skipping keypair checks."); - } - -// # step-10 - - String securityGroupName = "all-in-one"; - - Optional securityGroupApiExtension = conn.getSecurityGroupApi(region); - if (securityGroupApiExtension.isPresent()) { - out.println("Checking security groups."); - - SecurityGroupApi securityGroupApi = securityGroupApiExtension.get(); - boolean securityGroupFound = false; - for (SecurityGroup securityGroup : securityGroupApi.list()) { - securityGroupFound = securityGroupFound || securityGroup.getName().equals(securityGroupName); - } - if (securityGroupFound) { - out.println("Security group " + securityGroupName + " already exists."); - } else { - out.println("Creating " + securityGroupName + "..."); - - SecurityGroup securityGroup = securityGroupApi.createWithDescription(securityGroupName, - securityGroupName + " network access for all-in-one application."); - - Ingress sshIngress = Ingress.builder().fromPort(22).ipProtocol(IpProtocol.TCP).toPort(22).build(); - Ingress webIngress = Ingress.builder().fromPort(80).ipProtocol(IpProtocol.TCP).toPort(80).build(); - securityGroupApi.createRuleAllowingCidrBlock(securityGroup.getId(), sshIngress, "0.0.0.0/0"); - securityGroupApi.createRuleAllowingCidrBlock(securityGroup.getId(), webIngress, "0.0.0.0/0"); - } - out.println("Existing Security Groups: "); - for (SecurityGroup thisSecurityGroup : securityGroupApi.list()) { - out.println(" " + thisSecurityGroup); - thisSecurityGroup.getRules().forEach(rule -> out.println(" " + rule)); - } - } else { - out.println("No security group extension present; skipping security group checks."); - } - -// # step-11 - - String ex_userdata = "#!/usr/bin/env bash\n" + - " curl -L -s https://opendev.org/openstack/faafo/raw/contrib/install.sh | bash -s -- \\\n" + - " -i faafo -i messaging -r api -r worker -r demo\n"; - -// # step-12 - - out.println("Checking for existing instance..."); - String instanceName = "all-in-one"; - Server allInOneInstance = null; - - for (Server thisInstance : serverApi.listInDetail().concat()) { - if (thisInstance.getName().equals(instanceName)) { - allInOneInstance = thisInstance; - } - } - - if (allInOneInstance != null) { - out.println("Instance " + instanceName + " already exists. Skipping creation."); - } else { - out.println("Creating instance..."); - CreateServerOptions allInOneOptions = CreateServerOptions.Builder - .keyPairName(pub_key_file) - .securityGroupNames(securityGroupName) - // If not running in a single-tenant network this where you add your network... - // .networks("79e8f822-99e1-436f-a62c-66e8d3706940") - .userData(ex_userdata.getBytes()); - ServerCreated allInOneInstanceCreated = serverApi.create(instanceName, imageId, flavorId, allInOneOptions); - ServerPredicates.awaitActive(serverApi).apply(allInOneInstanceCreated.getId()); - allInOneInstance = serverApi.get(allInOneInstanceCreated.getId()); - out.println("Instance created: " + allInOneInstance.getId()); - } - out.println("Existing instances:"); - serverApi.listInDetail().concat().forEach(instance -> out.println(" " + instance.getName())); - -// # step-13 - - out.println("Checking for unused floating IP's..."); - FloatingIP unusedFloatingIP = null; - if (conn.getFloatingIPApi(region).isPresent()) { - FloatingIPApi floatingIPApi = conn.getFloatingIPApi(region).get(); - - List freeIP = floatingIPApi.list().toList().stream().filter( - floatingIp -> floatingIp.getInstanceId() == null).collect(Collectors.toList()); - - if (freeIP.size() > 0) { - out.println("The following IPs are available:"); - freeIP.forEach(floatingIP -> out.println(" " + floatingIP.getIp())); - unusedFloatingIP = freeIP.get(0); - } else { - out.println("Creating new floating IP.... "); - unusedFloatingIP = floatingIPApi.create(); - } - if (unusedFloatingIP != null) { - out.println("Using: " + unusedFloatingIP.getIp()); - } - } else { - out.println("No floating ip extension present; skipping floating ip creation."); - } - -// # step-14 - - out.println(allInOneInstance.getAddresses()); - if (allInOneInstance.getAccessIPv4() != null) { - out.println("Public IP already assigned. Skipping attachment."); - } else if (unusedFloatingIP != null) { - out.println("Attaching new IP, please wait..."); - // api must be present if we have managed to allocate a floating IP - conn.getFloatingIPApi(region).get().addToServer(unusedFloatingIP.getIp(), allInOneInstance.getId()); - //This operation takes some indeterminate amount of time; don't move on until it's done. - while (allInOneInstance.getAccessIPv4() != null) { - //Objects are not updated "live" so keep checking to make sure it's been added - try { - TimeUnit.SECONDS.sleep(1); - } catch(InterruptedException ex) { - out.println( "Awakened prematurely." ); - } - allInOneInstance = serverApi.get(allInOneInstance.getId()); - } - } - -// # step-15 - - out.print("Be patient: all going well, the Fractals app will soon be available at http://" + allInOneInstance.getAccessIPv4()); - -// # step-16 - } -} \ No newline at end of file diff --git a/firstapp/samples/jclouds/Introduction.java b/firstapp/samples/jclouds/Introduction.java deleted file mode 100644 index e6f6fb13d..000000000 --- a/firstapp/samples/jclouds/Introduction.java +++ /dev/null @@ -1,428 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import com.google.common.base.Optional; -import com.google.common.collect.ImmutableSet; -import com.google.common.io.Closeables; -import com.google.inject.Module; -import org.jclouds.ContextBuilder; -import org.jclouds.logging.slf4j.config.SLF4JLoggingModule; -import org.jclouds.net.domain.IpProtocol; -import org.jclouds.openstack.nova.v2_0.NovaApi; -import org.jclouds.openstack.nova.v2_0.domain.*; -import org.jclouds.openstack.nova.v2_0.extensions.FloatingIPApi; -import org.jclouds.openstack.nova.v2_0.extensions.FloatingIPPoolApi; -import org.jclouds.openstack.nova.v2_0.extensions.SecurityGroupApi; -import org.jclouds.openstack.nova.v2_0.extensions.ServerWithSecurityGroupsApi; -import org.jclouds.openstack.nova.v2_0.features.ServerApi; -import org.jclouds.openstack.nova.v2_0.options.CreateServerOptions; -import org.jclouds.openstack.nova.v2_0.predicates.ServerPredicates; - -import java.io.Closeable; -import java.io.IOException; -import java.util.Arrays; -import java.util.List; -import java.util.Scanner; -import java.util.Set; -import java.util.stream.Collectors; - -import static java.lang.System.out; - -public class Introduction implements Closeable { - - - private static final String PROVIDER = "openstack-nova"; - - private static final String OS_AUTH_URL = "http://controller:5000/v2.0"; - // format for identity is tenantName:userName - private static final String IDENTITY = "your_project_name_or_id:your_auth_username"; - private static final String IMAGE_ID = "2cccbea0-cea9-4f86-a3ed-065c652adda5"; - private static final String FLAVOR_ID = "2"; - - private static final String ALL_IN_ONE_SECURITY_GROUP_NAME = "all-in-one"; - public static final String ALL_IN_ONE_INSTANCE_NAME = "all-in-one"; - - private static final String WORKER_SECURITY_GROUP_NAME = "worker"; - private static final String CONTROLLER_SECURITY_GROUP_NAME = "control"; - - private final NovaApi novaApi; - private final String region; - private final ServerApi serverApi; - private final String ex_keypair = "demokey"; - - public Introduction(final String password) { - Iterable modules = ImmutableSet.of(new SLF4JLoggingModule()); - novaApi = ContextBuilder.newBuilder(PROVIDER) - .endpoint(OS_AUTH_URL) - .credentials(IDENTITY, password) - .modules(modules) - .buildApi(NovaApi.class); - region = novaApi.getConfiguredRegions().iterator().next(); - serverApi = novaApi.getServerApi(region); - out.println("Running in region: " + region); - } - - // step-3 - private Ingress getIngress(int port) { - return Ingress - .builder() - .ipProtocol(IpProtocol.TCP) - .fromPort(port) - .toPort(port) - .build(); - } - - private void createAllInOneSecurityGroup() { - Optional optional = novaApi.getSecurityGroupApi(region); - if (optional.isPresent()) { - SecurityGroupApi securityGroupApi = optional.get(); - if (isSecurityGroup(ALL_IN_ONE_SECURITY_GROUP_NAME, securityGroupApi)) { - out.println("Security Group " + ALL_IN_ONE_SECURITY_GROUP_NAME + " already exists"); - } else { - out.println("Creating Security Group " + ALL_IN_ONE_SECURITY_GROUP_NAME + "..."); - SecurityGroup securityGroup = - securityGroupApi.createWithDescription(ALL_IN_ONE_SECURITY_GROUP_NAME, - "Network access for all-in-one application."); - securityGroupApi.createRuleAllowingCidrBlock( - securityGroup.getId(), getIngress(22), "0.0.0.0/0"); - securityGroupApi.createRuleAllowingCidrBlock( - securityGroup.getId(), getIngress(80), "0.0.0.0/0"); - } - } else { - out.println("No Security Group extension present; skipping security group demo."); - } - } - // step-3-end - - private SecurityGroup getSecurityGroup(String securityGroupName, SecurityGroupApi securityGroupApi) { - for (SecurityGroup securityGroup : securityGroupApi.list()) { - if (securityGroup.getName().equals(securityGroupName)) { - return securityGroup; - } - } - return null; - } - - private boolean isSecurityGroup(String securityGroupName, SecurityGroupApi securityGroupApi) { - return getSecurityGroup(securityGroupName, securityGroupApi) != null; - } - - // step-4 - private void listAllSecurityGroups() { - if (novaApi.getSecurityGroupApi(region).isPresent()) { - SecurityGroupApi securityGroupApi = novaApi.getSecurityGroupApi(region).get(); - out.println("Existing Security Groups:"); - for (SecurityGroup securityGroup : securityGroupApi.list()) { - out.println(" " + securityGroup.getName()); - } - } else { - out.println("No Security Group extension present; skipping listing of security groups."); - } - } - // step-4-end - - // step-5 - private void deleteSecurityGroupRule(SecurityGroupRule rule) { - if (novaApi.getSecurityGroupApi(region).isPresent()) { - SecurityGroupApi securityGroupApi = novaApi.getSecurityGroupApi(region).get(); - out.println("Deleting Security Group Rule " + rule.getIpProtocol()); - securityGroupApi.deleteRule(rule.getId()); - } else { - out.println("No Security Group extension present; can't delete Rule."); - } - } - - private void deleteSecurityGroup(SecurityGroup securityGroup) { - if (novaApi.getSecurityGroupApi(region).isPresent()) { - SecurityGroupApi securityGroupApi = novaApi.getSecurityGroupApi(region).get(); - out.println("Deleting Security Group " + securityGroup.getName()); - securityGroupApi.delete(securityGroup.getId()); - } else { - out.println("No Security Group extension present; can't delete Security Group."); - } - } - // step-5-end - - private void deleteSecurityGroups(String... groups) { - if (novaApi.getSecurityGroupApi(region).isPresent()) { - SecurityGroupApi securityGroupApi = novaApi.getSecurityGroupApi(region).get(); - securityGroupApi.list().forEach(securityGroup -> { - if (Arrays.asList(groups).contains(securityGroup.getName())) { - deleteSecurityGroup(securityGroup); - } - }); - } else { - out.println("No Security Group extension present; can't delete Security Groups."); - } - } - - private void deleteSecurityGroupRules(String securityGroupName) { - if (novaApi.getSecurityGroupApi(region).isPresent()) { - SecurityGroupApi securityGroupApi = novaApi.getSecurityGroupApi(region).get(); - for (SecurityGroup thisSecurityGroup : securityGroupApi.list()) { - if (thisSecurityGroup.getName().equals(securityGroupName)) { - out.println("Deleting Rules for Security Group " + securityGroupName); - Set rules = thisSecurityGroup.getRules(); - if (rules != null) { - rules.forEach(this::deleteSecurityGroupRule); - } - } - } - } else { - out.println("No Security Group extension present; skipping deleting of Rules."); - } - } - - // step-2 - final String ex_userdata = "#!/usr/bin/env bash\n" + - " curl -L -s https://opendev.org/openstack/faafo/raw/contrib/install.sh" + - " | bash -s -- \\\n" + - " -i faafo -i messaging -r api -r worker -r demo\n"; - // step-2-end - - // step-1 - - /** - * A helper function to create an instance - * - * @param name The name of the instance that is to be created - * @param options Keypairs, security groups etc... - * @return the id of the newly created instance. - */ - private String create_node(String name, CreateServerOptions... options) { - out.println("Creating Instance " + name); - ServerCreated serverCreated = serverApi.create(name, IMAGE_ID, FLAVOR_ID, options); - String id = serverCreated.getId(); - ServerPredicates.awaitActive(serverApi).apply(id); - return id; - } - - - private String createAllInOneInstance() { - CreateServerOptions allInOneOptions = CreateServerOptions.Builder - .keyPairName(ex_keyname) - .securityGroupNames(ALL_IN_ONE_SECURITY_GROUP_NAME) - .userData(ex_userdata.getBytes()); - return create_node(ALL_IN_ONE_INSTANCE_NAME, allInOneOptions); - } - // step-1-end - - // step-6 - private void listSecurityGroupsForServer(String serverId) { - if (novaApi.getServerWithSecurityGroupsApi(region).isPresent()) { - out.println("Listing Security Groups for Instance with id " + serverId); - ServerWithSecurityGroupsApi serverWithSecurityGroupsApi = - novaApi.getServerWithSecurityGroupsApi(region).get(); - ServerWithSecurityGroups serverWithSecurityGroups = - serverWithSecurityGroupsApi.get(serverId); - Set securityGroupNames = serverWithSecurityGroups.getSecurityGroupNames(); - securityGroupNames.forEach(name -> out.println(" " + name)); - } else { - out.println("No Server With Security Groups API found; can't list Security Groups for Instance."); - } - } - // step-6-end - - private void deleteInstance(String instanceName) { - serverApi.listInDetail().concat().forEach(instance -> { - if (instance.getName().equals(instanceName)) { - out.println("Deleting Instance: " + instance.getName()); - serverApi.delete(instance.getId()); - ServerPredicates.awaitStatus(serverApi, Server.Status.DELETED, 600, 5).apply(instance.getId()); - - } - }); - } - - // step-7 - private FloatingIP getFreeFloatingIp() { - FloatingIP unusedFloatingIP = null; - if (novaApi.getFloatingIPApi(region).isPresent()) { - out.println("Checking for unused Floating IP's..."); - FloatingIPApi floatingIPApi = novaApi.getFloatingIPApi(region).get(); - List freeIP = floatingIPApi.list().toList().stream().filter( - floatingIp -> floatingIp.getInstanceId() == null).collect(Collectors.toList()); - if (freeIP.size() > 0) { - unusedFloatingIP = freeIP.get(0); - } - } else { - out.println("No Floating IP extension present; could not fetch Floating IP."); - } - return unusedFloatingIP; - } - // step-7-end - - // step-8 - private String getFirstFloatingIpPoolName() { - String floatingIpPoolName = null; - if (novaApi.getFloatingIPPoolApi(region).isPresent()) { - out.println("Getting Floating IP Pool."); - FloatingIPPoolApi poolApi = novaApi.getFloatingIPPoolApi(region).get(); - if (poolApi.list().first().isPresent()) { - FloatingIPPool floatingIPPool = poolApi.list().first().get(); - floatingIpPoolName = floatingIPPool.getName(); - } else { - out.println("There is no Floating IP Pool"); - } - } else { - out.println("No Floating IP Pool API present; could not fetch Pool."); - } - return floatingIpPoolName; - } - // step-8-end - - // step-9 - private FloatingIP allocateFloatingIpFromPool(String poolName) { - FloatingIP unusedFloatingIP = null; - if (novaApi.getFloatingIPApi(region).isPresent()) { - out.println("Allocating IP from Pool " + poolName); - FloatingIPApi floatingIPApi = novaApi.getFloatingIPApi(region).get(); - unusedFloatingIP = floatingIPApi.allocateFromPool(poolName); - } else { - out.println("No Floating IP extension present; could not allocate IP from Pool."); - } - return unusedFloatingIP; - } - // step-9-end - - // step-10 - private void attachFloatingIpToInstance(FloatingIP unusedFloatingIP, String targetInstanceId) { - if (novaApi.getFloatingIPApi(region).isPresent()) { - out.println("Attaching new IP, please wait..."); - FloatingIPApi floatingIPApi = novaApi.getFloatingIPApi(region).get(); - floatingIPApi.addToServer(unusedFloatingIP.getIp(), targetInstanceId); - } else { - out.println("No Floating IP extension present; cannot attach IP to Instance."); - } - } - // step-10-end - - private void attachFloatingIp(String allInOneInstanceId) { - FloatingIP freeFloatingIp = getFreeFloatingIp(); - if (freeFloatingIp == null) { - String poolName = getFirstFloatingIpPoolName(); - if (poolName != null) { - freeFloatingIp = allocateFloatingIpFromPool(poolName); - if (freeFloatingIp != null) { - attachFloatingIpToInstance(freeFloatingIp, allInOneInstanceId); - } - } - } - } - - // step-11 - private void createApiAndWorkerSecurityGroups() { - if (novaApi.getSecurityGroupApi(region).isPresent()) { - SecurityGroupApi securityGroupApi = novaApi.getSecurityGroupApi(region).get(); - SecurityGroup workerGroup = - getSecurityGroup(WORKER_SECURITY_GROUP_NAME, securityGroupApi); - if (workerGroup == null) { - out.println("Creating Security Group " + WORKER_SECURITY_GROUP_NAME + "..."); - workerGroup = securityGroupApi.createWithDescription(WORKER_SECURITY_GROUP_NAME, - "For services that run on a worker node."); - securityGroupApi.createRuleAllowingCidrBlock( - workerGroup.getId(), getIngress(22), "0.0.0.0/0"); - } - SecurityGroup apiGroup = - getSecurityGroup(CONTROLLER_SECURITY_GROUP_NAME, securityGroupApi); - if (apiGroup == null) { - apiGroup = securityGroupApi.createWithDescription(CONTROLLER_SECURITY_GROUP_NAME, - "For services that run on a control node"); - securityGroupApi.createRuleAllowingCidrBlock( - apiGroup.getId(), getIngress(80), "0.0.0.0/0"); - securityGroupApi.createRuleAllowingCidrBlock( - apiGroup.getId(), getIngress(22), "0.0.0.0/0"); - securityGroupApi.createRuleAllowingSecurityGroupId( - apiGroup.getId(), getIngress(5672), workerGroup.getId()); - } - } else { - out.println("No Security Group extension present; skipping Security Group create."); - } - } - - private String createApiInstance() { - String userData = "#!/usr/bin/env bash\n" + - "curl -L -s https://opendev.org/openstack/faafo/raw/contrib/install.sh" + - " | bash -s -- \\\n" + - " -i messaging -i faafo -r api\n"; - String instanceName = "app-controller"; - CreateServerOptions allInOneOptions = CreateServerOptions.Builder - .keyPairName(ex_keyname) - .securityGroupNames(CONTROLLER_SECURITY_GROUP_NAME) - .userData(userData.getBytes()); - return create_node(instanceName, allInOneOptions); - } - // step-11-end - - // step-12 - private String createWorkerInstance(String apiAccessIP) { - String userData = "#!/usr/bin/env bash\n" + - "curl -L -s https://opendev.org/openstack/faafo/raw/contrib/install.sh" + - " | bash -s -- \\\n" + - " -i faafo -r worker -e 'http://%1$s' -m 'amqp://guest:guest@%1$s:5672/'"; - userData = String.format(userData, apiAccessIP); - CreateServerOptions options = CreateServerOptions.Builder - .keyPairName(ex_keyname) - .securityGroupNames(WORKER_SECURITY_GROUP_NAME) - .userData(userData.getBytes()); - return create_node("app-worker-1", options); - } - // step-12-end - - - private void createApiAndWorkerInstances() { - createApiAndWorkerSecurityGroups(); - String apiInstanceId = createApiInstance(); - attachFloatingIp(apiInstanceId); - String apiAccessIP = serverApi.get(apiInstanceId).getAccessIPv4(); - out.println("Controller is deployed to http://" + apiAccessIP); - String workerInstanceId = createWorkerInstance(apiAccessIP); - attachFloatingIp(workerInstanceId); - // step-13 - String workerAccessIP = serverApi.get(workerInstanceId).getAccessIPv4(); - out.println("Worker is deployed to " + workerAccessIP); - // step-13-end - } - - - private void setupIntroduction() { - createAllInOneSecurityGroup(); - String allInOneInstanceId = createAllInOneInstance(); - listAllSecurityGroups(); - listSecurityGroupsForServer(allInOneInstanceId); - attachFloatingIp(allInOneInstanceId); - deleteInstance(ALL_IN_ONE_INSTANCE_NAME); - deleteSecurityGroupRules(ALL_IN_ONE_SECURITY_GROUP_NAME); - deleteSecurityGroups(ALL_IN_ONE_SECURITY_GROUP_NAME); - createApiAndWorkerInstances(); - } - - @Override - public void close() throws IOException { - Closeables.close(novaApi, true); - } - - public static void main(String[] args) throws IOException { - try (Scanner scanner = new Scanner(System.in)) { - System.out.println("Please enter your password: "); - String password = scanner.next(); - try (Introduction gs = new Introduction(password)) { - gs.setupIntroduction(); - } - } - - } -} diff --git a/firstapp/samples/jclouds/ScalingOut.java b/firstapp/samples/jclouds/ScalingOut.java deleted file mode 100644 index b1e928fba..000000000 --- a/firstapp/samples/jclouds/ScalingOut.java +++ /dev/null @@ -1,300 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import com.google.common.collect.ImmutableSet; -import com.google.common.io.Closeables; -import com.google.inject.Module; -import org.jclouds.ContextBuilder; -import org.jclouds.logging.slf4j.config.SLF4JLoggingModule; -import org.jclouds.net.domain.IpProtocol; -import org.jclouds.openstack.nova.v2_0.NovaApi; -import org.jclouds.openstack.nova.v2_0.domain.FloatingIP; -import org.jclouds.openstack.nova.v2_0.domain.Ingress; -import org.jclouds.openstack.nova.v2_0.domain.SecurityGroup; -import org.jclouds.openstack.nova.v2_0.domain.ServerCreated; -import org.jclouds.openstack.nova.v2_0.extensions.FloatingIPApi; -import org.jclouds.openstack.nova.v2_0.extensions.SecurityGroupApi; -import org.jclouds.openstack.nova.v2_0.features.ServerApi; -import org.jclouds.openstack.nova.v2_0.options.CreateServerOptions; -import org.jclouds.openstack.nova.v2_0.predicates.ServerPredicates; - -import java.io.Closeable; -import java.io.IOException; -import java.util.Arrays; -import java.util.List; -import java.util.Optional; -import java.util.Scanner; -import java.util.stream.Collectors; - -import static java.lang.System.out; - -/** - * A class that shows the jclouds implementation for the scaling out chapter of the - * "Writing your first OpenStack application" book - * (http://developer.openstack.org/firstapp-libcloud/scaling_out.html) - */ -public class ScalingOut implements Closeable { - - - private final NovaApi novaApi; - private final String region; - private final ServerApi serverApi; - - // change the following to fit your OpenStack installation - private static final String KEY_PAIR_NAME = "demokey"; - private static final String PROVIDER = "openstack-nova"; - private static final String OS_AUTH_URL = "http://controller:5000/v2.0"; - // format for identity is tenantName:userName - private static final String IDENTITY = "your_project_name_or_id:your_auth_username"; - private static final String IMAGE_ID = "2cccbea0-cea9-4f86-a3ed-065c652adda5"; - private static final String FLAVOR_ID = "2"; - - public ScalingOut(final String password) { - Iterable modules = ImmutableSet.of(new SLF4JLoggingModule()); - novaApi = ContextBuilder.newBuilder(PROVIDER) - .endpoint(OS_AUTH_URL) - .credentials(IDENTITY, password) - .modules(modules) - .buildApi(NovaApi.class); - region = novaApi.getConfiguredRegions().iterator().next(); - serverApi = novaApi.getServerApi(region); - out.println("Running in region: " + region); - } - -// step-1 - - private void deleteInstances() { - List instances = Arrays.asList( - "all-in-one", "app-worker-1", "app-worker-2", "app-controller"); - serverApi.listInDetail().concat().forEach(instance -> { - if (instances.contains(instance.getName())) { - out.println("Destroying Instance: " + instance.getName()); - serverApi.delete(instance.getId()); - } - }); - } - - private void deleteSecurityGroups() { - List securityGroups = Arrays.asList( - "all-in-one", "control", "worker", "api", "services"); - if (novaApi.getSecurityGroupApi(region).isPresent()) { - SecurityGroupApi securityGroupApi = novaApi.getSecurityGroupApi(region).get(); - securityGroupApi.list().forEach(securityGroup -> { - if (securityGroups.contains(securityGroup.getName())) { - out.println("Deleting Security Group: " + securityGroup.getName()); - securityGroupApi.delete(securityGroup.getId()); - } - }); - } else { - out.println("No security group extension present; skipping security group delete."); - } - } - -// step-2 - - private Ingress getIngress(int port) { - return Ingress - .builder() - .ipProtocol(IpProtocol.TCP) - .fromPort(port) - .toPort(port) - .build(); - } - - private void createSecurityGroups() { - if (novaApi.getSecurityGroupApi(region).isPresent()) { - SecurityGroupApi securityGroupApi = novaApi.getSecurityGroupApi(region).get(); - SecurityGroup apiGroup = securityGroupApi.createWithDescription("api", - "for API services only"); - ImmutableSet.of(22, 80).forEach(port -> - securityGroupApi.createRuleAllowingCidrBlock( - apiGroup.getId(), getIngress(port), "0.0.0.0/0")); - - SecurityGroup workerGroup = securityGroupApi.createWithDescription("worker", - "for services that run on a worker node"); - securityGroupApi.createRuleAllowingCidrBlock( - workerGroup.getId(), getIngress(22), "0.0.0.0/0"); - - SecurityGroup controllerGroup = securityGroupApi.createWithDescription("control", - "for services that run on a control node"); - ImmutableSet.of(22, 80).forEach(port -> - securityGroupApi.createRuleAllowingCidrBlock( - controllerGroup.getId(), getIngress(port), "0.0.0.0/0")); - securityGroupApi.createRuleAllowingSecurityGroupId( - controllerGroup.getId(), getIngress(5672), workerGroup.getId()); - - SecurityGroup servicesGroup = securityGroupApi.createWithDescription("services", - "for DB and AMQP services only"); - securityGroupApi.createRuleAllowingCidrBlock( - servicesGroup.getId(), getIngress(22), "0.0.0.0/0"); - securityGroupApi.createRuleAllowingSecurityGroupId( - servicesGroup.getId(), getIngress(3306), apiGroup.getId()); - securityGroupApi.createRuleAllowingSecurityGroupId( - servicesGroup.getId(), getIngress(5672), workerGroup.getId()); - securityGroupApi.createRuleAllowingSecurityGroupId( - servicesGroup.getId(), getIngress(5672), apiGroup.getId()); - } else { - out.println("No security group extension present; skipping security group create."); - } - } - -// step-3 - - private Optional getOrCreateFloatingIP() { - FloatingIP unusedFloatingIP = null; - if (novaApi.getFloatingIPApi(region).isPresent()) { - FloatingIPApi floatingIPApi = novaApi.getFloatingIPApi(region).get(); - List freeIP = floatingIPApi.list().toList().stream() - .filter(floatingIP1 -> floatingIP1.getInstanceId() == null) - .collect(Collectors.toList()); - unusedFloatingIP = freeIP.size() > 0 ? freeIP.get(0) : floatingIPApi.create(); - } else { - out.println("No floating ip extension present; skipping floating ip creation."); - } - return Optional.ofNullable(unusedFloatingIP); - } - -// step-4 - - /** - * A helper function to create an instance - * - * @param name The name of the instance that is to be created - * @param options Keypairs, security groups etc... - * @return the id of the newly created instance. - */ - private String createInstance(String name, CreateServerOptions... options) { - out.println("Creating server " + name); - ServerCreated serverCreated = serverApi.create(name, IMAGE_ID, FLAVOR_ID, options); - String id = serverCreated.getId(); - ServerPredicates.awaitActive(serverApi).apply(id); - return id; - } - - /** - * @return the id of the newly created instance. - */ - private String createAppServicesInstance() { - String userData = "#!/usr/bin/env bash\n" + - "curl -L -s https://opendev.org/openstack/faafo/raw/contrib/install.sh | bash -s -- \\\n" + - "-i database -i messaging\n"; - CreateServerOptions options = CreateServerOptions.Builder - .keyPairName(KEY_PAIR_NAME) - .securityGroupNames("services") - .userData(userData.getBytes()); - return createInstance("app-services", options); - } - -// step-5 - - /** - * @return the id of the newly created instance. - */ - private String createApiInstance(String name, String servicesIp) { - String userData = String.format("#!/usr/bin/env bash\n" + - "curl -L -s https://opendev.org/openstack/faafo/raw/contrib/install.sh | bash -s -- \\\n" + - " -i faafo -r api -m 'amqp://guest:guest@%1$s:5672/' \\\n" + - " -d 'mysql+pymysql://faafo:password@%1$s:3306/faafo'", servicesIp); - CreateServerOptions options = CreateServerOptions.Builder - .keyPairName(KEY_PAIR_NAME) - .securityGroupNames("api") - .userData(userData.getBytes()); - return createInstance(name, options); - } - - /** - * @return the id's of the newly created instances. - */ - private String[] createApiInstances(String servicesIp) { - return new String[]{ - createApiInstance("app-api-1", servicesIp), - createApiInstance("app-api-2", servicesIp) - }; - } - -// step-6 - - /** - * @return the id of the newly created instance. - */ - private String createWorkerInstance(String name, String apiIp, String servicesIp) { - String userData = String.format("#!/usr/bin/env bash\n" + - "curl -L -s https://opendev.org/openstack/faafo/raw/contrib/install.sh | bash -s -- \\\n" + - " -i faafo -r worker -e 'http://%s' -m 'amqp://guest:guest@%s:5672/'", - apiIp, servicesIp); - CreateServerOptions options = CreateServerOptions.Builder - .keyPairName(KEY_PAIR_NAME) - .securityGroupNames("worker") - .userData(userData.getBytes()); - return createInstance(name, options); - } - - private void createWorkerInstances(String apiIp, String servicesIp) { - createWorkerInstance("app-worker-1", apiIp, servicesIp); - createWorkerInstance("app-worker-2", apiIp, servicesIp); - createWorkerInstance("app-worker-3", apiIp, servicesIp); - } - -// step-7 - - private String getPublicIp(String serverId) { - String publicIP = serverApi.get(serverId).getAccessIPv4(); - if (publicIP == null) { - Optional optionalFloatingIP = getOrCreateFloatingIP(); - if (optionalFloatingIP.isPresent()) { - publicIP = optionalFloatingIP.get().getIp(); - novaApi.getFloatingIPApi(region).get().addToServer(publicIP, serverId); - } - } - return publicIP; - } - - private String getPublicOrPrivateIP(String serverId) { - String result = serverApi.get(serverId).getAccessIPv4(); - if (result == null) { - // then there must be private one... - result = serverApi.get(serverId).getAddresses().values().iterator().next().getAddr(); - } - return result; - } - - private void setupFaafo() { - deleteInstances(); - deleteSecurityGroups(); - createSecurityGroups(); - String serviceId = createAppServicesInstance(); - String servicesIp = getPublicOrPrivateIP(serviceId); - String[] apiIds = createApiInstances(servicesIp); - String apiIp = getPublicIp(apiIds[0]); - createWorkerInstances(apiIp, servicesIp); - out.println("The Fractals app will be deployed to http://" + apiIp); - } - - @Override - public void close() throws IOException { - Closeables.close(novaApi, true); - } - - public static void main(String... args) throws IOException { - try (Scanner scanner = new Scanner(System.in)) { - System.out.println("Please enter your password: "); - String password = scanner.next(); - try (ScalingOut gs = new ScalingOut(password)) { - gs.setupFaafo(); - } - } - } -} diff --git a/firstapp/samples/jclouds/pom.xml b/firstapp/samples/jclouds/pom.xml deleted file mode 100644 index 5b48b1942..000000000 --- a/firstapp/samples/jclouds/pom.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - 4.0.0 - - openstack.demo.app - faafo_infrastructure - 1.0-SNAPSHOT - - - 1.9.2 - - - - - - org.apache.jclouds - jclouds-all - ${jclouds.version} - - - - org.apache.jclouds.driver - jclouds-slf4j - ${jclouds.version} - - - ch.qos.logback - logback-classic - 1.0.13 - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.3 - - 1.8 - 1.8 - - - - - \ No newline at end of file diff --git a/firstapp/samples/libcloud/block_storage.py b/firstapp/samples/libcloud/block_storage.py deleted file mode 100644 index 5efc4ad7e..000000000 --- a/firstapp/samples/libcloud/block_storage.py +++ /dev/null @@ -1,49 +0,0 @@ -# step-1 -from libcloud.compute.types import Provider -from libcloud.compute.providers import get_driver - -auth_username = 'your_auth_username' -auth_password = 'your_auth_password' -auth_url = 'http://controller:5000' -project_name = 'your_project_name_or_id' -region_name = 'your_region_name' - -provider = get_driver(Provider.OPENSTACK) -connection = provider(auth_username, - auth_password, - ex_force_auth_url=auth_url, - ex_force_auth_version='2.0_password', - ex_tenant_name=project_name, - ex_force_service_region=region_name) - -# step-2 -volume = connection.create_volume(1, 'test') -print(volume) - -# step-3 -volumes = connection.list_volumes() -print(volumes) - - -# step-4 -db_group = connection.ex_create_security_group('database', 'for database service') -connection.ex_create_security_group_rule(db_group, 'TCP', 3306, 3306) -instance = connection.create_node(name='app-database', - image=image, - size=flavor, - ex_keyname=keypair_name, - ex_security_groups=[db_group]) - -# step-5 -volume = connection.ex_get_volume('755ab026-b5f2-4f53-b34a-6d082fb36689') -connection.attach_volume(instance, volume, '/dev/vdb') - -# step-6 -connection.detach_volume(volume) -connection.destroy_volume(volume) - -# step-7 -snapshot_name = 'test_backup_1' -connection.create_volume_snapshot('test', name=snapshot_name) - -# step-8 diff --git a/firstapp/samples/libcloud/durability.py b/firstapp/samples/libcloud/durability.py deleted file mode 100644 index 36f7513ac..000000000 --- a/firstapp/samples/libcloud/durability.py +++ /dev/null @@ -1,92 +0,0 @@ -# step-1 -from __future__ import print_function -from libcloud.storage.types import Provider -from libcloud.storage.providers import get_driver - -auth_username = 'your_auth_username' -auth_password = 'your_auth_password' -auth_url = 'http://controller:5000' -project_name = 'your_project_name_or_id' -region_name = 'your_region_name' - -provider = get_driver(Provider.OPENSTACK_SWIFT) -swift = provider(auth_username, - auth_password, - ex_force_auth_url=auth_url, - ex_force_auth_version='2.0_password', - ex_tenant_name=project_name, - ex_force_service_region=region_name) - -# step-2 -container_name = 'fractals' -container = swift.create_container(container_name=container_name) -print(container) - -# step-3 -print(swift.list_containers()) - -# step-4 -file_path = 'goat.jpg' -object_name = 'an amazing goat' -container = swift.get_container(container_name=container_name) -object = container.upload_object(file_path=file_path, object_name=object_name) - -# step-5 -objects = container.list_objects() -print(objects) - -# step-6 -object = swift.get_object(container_name, object_name) -print(object) - -# step-7 -import hashlib -print(hashlib.md5(open('goat.jpg', 'rb').read()).hexdigest()) - -# step-8 -swift.delete_object(object) - -# step-9 -objects = container.list_objects() -print(objects) - -# step-10 -container_name = 'fractals' -container = swift.get_container(container_name) - -# step-11 -import json - -import requests - -endpoint = 'http://IP_API_1' -params = { 'results_per_page': '-1' } -response = requests.get('%s/v1/fractal' % endpoint, params=params) -data = json.loads(response.text) -for fractal in data['objects']: - response = requests.get('%s/fractal/%s' % (endpoint, fractal['uuid']), stream=True) - container.upload_object_via_stream(response.iter_content(), object_name=fractal['uuid']) - -for object in container.list_objects(): - print(object) - -# step-12 -for object in container.list_objects(): - container.delete_object(object) -swift.delete_container(container) - -# step-13 -file_path = 'goat.jpg' -object_name = 'backup_goat.jpg' -extra = {'meta_data': {'description': 'a funny goat', 'created': '2015-06-02'}} -with open('goat.jpg', 'rb') as iterator: - object = swift.upload_object_via_stream(iterator=iterator, - container=container, - object_name=object_name, - extra=extra) - -# step-14 -swift.ex_multipart_upload_object(file_path, container, object_name, - chunk_size=33554432) - -# step-15 diff --git a/firstapp/samples/libcloud/getting_started.py b/firstapp/samples/libcloud/getting_started.py deleted file mode 100755 index cf938e937..000000000 --- a/firstapp/samples/libcloud/getting_started.py +++ /dev/null @@ -1,158 +0,0 @@ -# step-1 -from libcloud.compute.types import Provider -from libcloud.compute.providers import get_driver - -auth_username = 'your_auth_username' -auth_password = 'your_auth_password' -auth_url = 'http://controller:5000' -project_name = 'your_project_name_or_id' -region_name = 'your_region_name' - -provider = get_driver(Provider.OPENSTACK) -conn = provider(auth_username, - auth_password, - ex_force_auth_url=auth_url, - ex_force_auth_version='2.0_password', - ex_tenant_name=project_name, - ex_force_service_region=region_name) - -# step-2 -images = conn.list_images() -for image in images: - print(image) - -# step-3 -flavors = conn.list_sizes() -for flavor in flavors: - print(flavor) - -# step-4 -image_id = '2cccbea0-cea9-4f86-a3ed-065c652adda5' -image = conn.get_image(image_id) -print(image) - -# step-5 -flavor_id = '2' -flavor = conn.ex_get_size(flavor_id) -print(flavor) - -# step-6 -instance_name = 'testing' -testing_instance = conn.create_node(name=instance_name, image=image, size=flavor) -print(testing_instance) - -# step-7 -instances = conn.list_nodes() -for instance in instances: - print(instance) - -# step-8 -conn.destroy_node(testing_instance) - -# step-9 -print('Checking for existing SSH key pair...') -keypair_name = 'demokey' -pub_key_file = '~/.ssh/id_rsa.pub' -keypair_exists = False -for keypair in conn.list_key_pairs(): - if keypair.name == keypair_name: - keypair_exists = True - -if keypair_exists: - print('Keypair ' + keypair_name + ' already exists. Skipping import.') -else: - print('adding keypair...') - conn.import_key_pair_from_file(keypair_name, pub_key_file) - -for keypair in conn.list_key_pairs(): - print(keypair) - -# step-10 -print('Checking for existing security group...') -security_group_name = 'all-in-one' -security_group_exists = False -for security_group in conn.ex_list_security_groups(): - if security_group.name == security_group_name: - all_in_one_security_group = security_group - security_group_exists = True - -if security_group_exists: - print('Security Group ' + all_in_one_security_group.name + ' already exists. Skipping creation.') -else: - all_in_one_security_group = conn.ex_create_security_group(security_group_name, 'network access for all-in-one application.') - conn.ex_create_security_group_rule(all_in_one_security_group, 'TCP', 80, 80) - conn.ex_create_security_group_rule(all_in_one_security_group, 'TCP', 22, 22) - -for security_group in conn.ex_list_security_groups(): - print(security_group) - -# step-11 -userdata = '''#!/usr/bin/env bash -curl -L -s https://opendev.org/openstack/faafo/raw/contrib/install.sh | bash -s -- \ - -i faafo -i messaging -r api -r worker -r demo -''' - -# step-12 -print('Checking for existing instance...') -instance_name = 'all-in-one' -instance_exists = False -for instance in conn.list_nodes(): - if instance.name == instance_name: - testing_instance = instance - instance_exists = True - -if instance_exists: - print('Instance ' + testing_instance.name + ' already exists. Skipping creation.') -else: - testing_instance = conn.create_node(name=instance_name, - image=image, - size=flavor, - ex_keyname=keypair_name, - ex_userdata=userdata, - ex_security_groups=[all_in_one_security_group]) - conn.wait_until_running([testing_instance]) - -for instance in conn.list_nodes(): - print(instance) - -# step-13 -private_ip = None -if len(testing_instance.private_ips): - private_ip = testing_instance.private_ips[0] - print('Private IP found: {}'.format(private_ip)) - -# step-14 -public_ip = None -if len(testing_instance.public_ips): - public_ip = testing_instance.public_ips[0] - print('Public IP found: {}'.format(public_ip)) - -# step-15 -print('Checking for unused Floating IP...') -unused_floating_ip = None -for floating_ip in conn.ex_list_floating_ips(): - if not floating_ip.node_id: - unused_floating_ip = floating_ip - break - -if not unused_floating_ip and len(conn.ex_list_floating_ip_pools()): - pool = conn.ex_list_floating_ip_pools()[0] - print('Allocating new Floating IP from pool: {}'.format(pool)) - unused_floating_ip = pool.create_floating_ip() - -# step-16 -if public_ip: - print('Instance ' + testing_instance.name + ' already has a public ip. Skipping attachment.') -elif unused_floating_ip: - conn.ex_attach_floating_ip_to_node(testing_instance, unused_floating_ip) - -# step-17 -actual_ip_address = None -if public_ip: - actual_ip_address = public_ip -elif unused_floating_ip: - actual_ip_address = unused_floating_ip.ip_address -elif private_ip: - actual_ip_address = private_ip - -print('The Fractals app will be deployed to http://{}'.format(actual_ip_address)) diff --git a/firstapp/samples/libcloud/introduction.py b/firstapp/samples/libcloud/introduction.py deleted file mode 100644 index 50f85d6ac..000000000 --- a/firstapp/samples/libcloud/introduction.py +++ /dev/null @@ -1,133 +0,0 @@ -# step-1 -userdata = '''#!/usr/bin/env bash -curl -L -s https://opendev.org/openstack/faafo/raw/contrib/install.sh | bash -s -- \ - -i faafo -i messaging -r api -r worker -r demo -''' - -instance_name = 'all-in-one' -testing_instance = conn.create_node(name=instance_name, - image=image, - size=flavor, - ex_keyname=keypair_name, - ex_userdata=userdata, - ex_security_groups=[all_in_one_security_group]) - -# step-2 -userdata = '''#!/usr/bin/env bash -curl -L -s https://opendev.org/openstack/faafo/raw/contrib/install.sh | bash -s -- \ - -i messaging -i faafo -r api -r worker -r demo -''' - -# step-3 -all_in_one_security_group = conn.ex_create_security_group('all-in-one', 'network access for all-in-one application.') -conn.ex_create_security_group_rule(all_in_one_security_group, 'TCP', 80, 80) -conn.ex_create_security_group_rule(all_in_one_security_group, 'TCP', 22, 22) - -# step-4 -conn.ex_list_security_groups() - -# step-5 -conn.ex_delete_security_group_rule(rule) -conn.ex_delete_security_group(security_group) - -# step-6 -conn.ex_get_node_security_groups(testing_instance) - -# step-7 -unused_floating_ip = None -for floating_ip in conn.ex_list_floating_ips(): - if not floating_ip.node_id: - unused_floating_ip = floating_ip - print("Found an unused Floating IP: %s" % floating_ip) - break - -# step-8 -pool = conn.ex_list_floating_ip_pools()[0] - -# step-9 -unused_floating_ip = pool.create_floating_ip() - -# step-10 -conn.ex_attach_floating_ip_to_node(instance, unused_floating_ip) - -# step-11 -worker_group = conn.ex_create_security_group('worker', 'for services that run on a worker node') -conn.ex_create_security_group_rule(worker_group, 'TCP', 22, 22) - -controller_group = conn.ex_create_security_group('control', 'for services that run on a control node') -conn.ex_create_security_group_rule(controller_group, 'TCP', 22, 22) -conn.ex_create_security_group_rule(controller_group, 'TCP', 80, 80) -conn.ex_create_security_group_rule(controller_group, 'TCP', 5672, 5672, source_security_group=worker_group) - -userdata = '''#!/usr/bin/env bash -curl -L -s https://opendev.org/openstack/faafo/raw/contrib/install.sh | bash -s -- \ - -i messaging -i faafo -r api -''' - -instance_controller_1 = conn.create_node(name='app-controller', - image=image, - size=flavor, - ex_keyname='demokey', - ex_userdata=userdata, - ex_security_groups=[controller_group]) - -conn.wait_until_running([instance_controller_1]) -print('Checking for unused Floating IP...') -unused_floating_ip = None -for floating_ip in conn.ex_list_floating_ips(): - if not floating_ip.node_id: - unused_floating_ip = floating_ip - break - - -if not unused_floating_ip: - pool = conn.ex_list_floating_ip_pools()[0] - print('Allocating new Floating IP from pool: {}'.format(pool)) - unused_floating_ip = pool.create_floating_ip() - - -conn.ex_attach_floating_ip_to_node(instance_controller_1, unused_floating_ip) -print('Application will be deployed to http://%s' % unused_floating_ip.ip_address) - -# step-12 -instance_controller_1 = conn.ex_get_node_details(instance_controller_1.id) -if instance_controller_1.public_ips: - ip_controller = instance_controller_1.private_ips[0] -else: - ip_controller = instance_controller_1.public_ips[0] - -userdata = '''#!/usr/bin/env bash -curl -L -s https://opendev.org/openstack/faafo/raw/contrib/install.sh | bash -s -- \ - -i faafo -r worker -e 'http://%(ip_controller)s' -m 'amqp://guest:guest@%(ip_controller)s:5672/' -''' % {'ip_controller': ip_controller} -instance_worker_1 = conn.create_node(name='app-worker-1', - image=image, - size=flavor, - ex_keyname='demokey', - ex_userdata=userdata, - ex_security_groups=[worker_group]) - -conn.wait_until_running([instance_worker_1]) -print('Checking for unused Floating IP...') -unused_floating_ip = None -for floating_ip in conn.ex_list_floating_ips(): - if not floating_ip.node_id: - unused_floating_ip = floating_ip - break - - -if not unused_floating_ip: - pool = conn.ex_list_floating_ip_pools()[0] - print('Allocating new Floating IP from pool: {}'.format(pool)) - unused_floating_ip = pool.create_floating_ip() - - -conn.ex_attach_floating_ip_to_node(instance_worker_1, unused_floating_ip) -print('The worker will be available for SSH at %s' % unused_floating_ip.ip_address) - - -# step-13 -ip_instance_worker_1 = instance_worker_1.private_ips[0] -print(ip_instance_worker_1) - -# step-14 diff --git a/firstapp/samples/libcloud/scaling_out.py b/firstapp/samples/libcloud/scaling_out.py deleted file mode 100644 index 8d090bb15..000000000 --- a/firstapp/samples/libcloud/scaling_out.py +++ /dev/null @@ -1,110 +0,0 @@ -# step-1 -for instance in conn.list_nodes(): - if instance.name in ['all-in-one','app-worker-1', 'app-worker-2', 'app-controller']: - print('Destroying Instance: %s' % instance.name) - conn.destroy_node(instance) - - -for group in conn.ex_list_security_groups(): - if group.name in ['control', 'worker', 'api', 'services']: - print('Deleting security group: %s' % group.name) - conn.ex_delete_security_group(group) - -# step-2 -api_group = conn.ex_create_security_group('api', 'for API services only') -conn.ex_create_security_group_rule(api_group, 'TCP', 80, 80) -conn.ex_create_security_group_rule(api_group, 'TCP', 22, 22) - -worker_group = conn.ex_create_security_group('worker', 'for services that run on a worker node') -conn.ex_create_security_group_rule(worker_group, 'TCP', 22, 22) - -controller_group = conn.ex_create_security_group('control', 'for services that run on a control node') -conn.ex_create_security_group_rule(controller_group, 'TCP', 22, 22) -conn.ex_create_security_group_rule(controller_group, 'TCP', 80, 80) -conn.ex_create_security_group_rule(controller_group, 'TCP', 5672, 5672, source_security_group=worker_group) - -services_group = conn.ex_create_security_group('services', 'for DB and AMQP services only') -conn.ex_create_security_group_rule(services_group, 'TCP', 22, 22) -conn.ex_create_security_group_rule(services_group, 'TCP', 3306, 3306, source_security_group=api_group) -conn.ex_create_security_group_rule(services_group, 'TCP', 5672, 5672, source_security_group=worker_group) -conn.ex_create_security_group_rule(services_group, 'TCP', 5672, 5672, source_security_group=api_group) - -# step-3 -def get_floating_ip(conn): - '''A helper function to re-use available Floating IPs''' - unused_floating_ip = None - for floating_ip in conn.ex_list_floating_ips(): - if not floating_ip.node_id: - unused_floating_ip = floating_ip - break - if not unused_floating_ip: - pool = conn.ex_list_floating_ip_pools()[0] - unused_floating_ip = pool.create_floating_ip() - return unused_floating_ip - -# step-4 -userdata = '''#!/usr/bin/env bash -curl -L -s https://opendev.org/openstack/faafo/raw/contrib/install.sh | bash -s -- \ - -i database -i messaging -''' - -instance_services = conn.create_node(name='app-services', - image=image, - size=flavor, - ex_keyname='demokey', - ex_userdata=userdata, - ex_security_groups=[services_group]) -instance_services = conn.wait_until_running([instance_services])[0][0] -services_ip = instance_services.private_ips[0] - - -# step-5 -userdata = '''#!/usr/bin/env bash -curl -L -s https://opendev.org/openstack/faafo/raw/contrib/install.sh | bash -s -- \ - -i faafo -r api -m 'amqp://guest:guest@%(services_ip)s:5672/' \ - -d 'mysql+pymysql://faafo:password@%(services_ip)s:3306/faafo' -''' % { 'services_ip': services_ip } -instance_api_1 = conn.create_node(name='app-api-1', - image=image, - size=flavor, - ex_keyname='demokey', - ex_userdata=userdata, - ex_security_groups=[api_group]) -instance_api_2 = conn.create_node(name='app-api-2', - image=image, - size=flavor, - ex_keyname='demokey', - ex_userdata=userdata, - ex_security_groups=[api_group]) -instance_api_1 = conn.wait_until_running([instance_api_1])[0][0] -api_1_ip = instance_api_1.private_ips[0] -instance_api_2 = conn.wait_until_running([instance_api_2])[0][0] -api_2_ip = instance_api_2.private_ips[0] - -for instance in [instance_api_1, instance_api_2]: - floating_ip = get_floating_ip(conn) - conn.ex_attach_floating_ip_to_node(instance, floating_ip) - print('allocated %(ip)s to %(host)s' % {'ip': floating_ip.ip_address, 'host': instance.name}) - -# step-6 -userdata = '''#!/usr/bin/env bash -curl -L -s https://opendev.org/openstack/faafo/raw/contrib/install.sh | bash -s -- \ - -i faafo -r worker -e 'http://%(api_1_ip)s' -m 'amqp://guest:guest@%(services_ip)s:5672/' -''' % {'api_1_ip': api_1_ip, 'services_ip': services_ip} -instance_worker_1 = conn.create_node(name='app-worker-1', - image=image, size=flavor, - ex_keyname='demokey', - ex_userdata=userdata, - ex_security_groups=[worker_group]) -instance_worker_2 = conn.create_node(name='app-worker-2', - image=image, size=flavor, - ex_keyname='demokey', - ex_userdata=userdata, - ex_security_groups=[worker_group]) -instance_worker_3 = conn.create_node(name='app-worker-3', - image=image, size=flavor, - ex_keyname='demokey', - ex_userdata=userdata, - ex_security_groups=[worker_group]) - -# step-7 diff --git a/firstapp/samples/openstacksdk/getting_started.py b/firstapp/samples/openstacksdk/getting_started.py deleted file mode 100644 index 99ef9d1bb..000000000 --- a/firstapp/samples/openstacksdk/getting_started.py +++ /dev/null @@ -1,188 +0,0 @@ -# step-1 -import base64 -from os.path import expanduser - -from openstack import connection -from openstack import exceptions - -auth_username = 'your_auth_username' -auth_password = 'your_auth_password' -auth_url = 'http://controller:5000/v2.0' -project_name = 'your_project_name_or_id' -region_name = 'your_region_name' - -conn = connection.Connection(auth_url=auth_url, - project_name=project_name, - username=auth_username, - password=auth_password, - region=region_name) - -# step-2 -images = conn.image.images() -for image in images: - print(image) - -# step-3 -flavors = conn.compute.flavors() -for flavor in flavors: - print(flavor) - -# step-4 -image_id = 'cb6b7936-d2c5-4901-8678-c88b3a6ed84c' -image = conn.compute.get_image(image_id) -print(image) - -# step-5 -flavor_id = '2' -flavor = conn.compute.get_flavor(flavor_id) -print(flavor) - -# step-6 -instance_name = 'testing' -image_args = { - 'name': instance_name, - 'imageRef': image, - 'flavorRef': flavor -} - -testing_instance = conn.compute.create_server(**image_args) -print(testing_instance) - -# step-7 -instances = conn.compute.servers() -for instance in instances: - print(instance) - -# step-8 -conn.compute.delete_server(testing_instance) - -# step-9 -print('Checking for existing SSH key pair...') -keypair_name = 'demokey' -keypair_exists = False -for keypair in conn.compute.keypairs(): - if keypair.name == keypair_name: - keypair_exists = True - -if keypair_exists: - print('Keypair ' + keypair_name + ' already exists. Skipping import.') -else: - print('adding keypair...') - pub_key_file = open(expanduser('~/.ssh/id_rsa.pub')).read() - keypair_args = { - "name": keypair_name, - "public_key": pub_key_file - } - conn.compute.create_keypair(**keypair_args) - -for keypair in conn.compute.keypairs(): - print(keypair) - -# step-10 -print('Checking for existing security group...') -security_group_name = 'all-in-one' -security_group_exists = False -for security_group in conn.network.security_groups(): - if security_group.name == security_group_name: - all_in_one_security_group = security_group - security_group_exists = True - -if security_group_exists: - print('Security Group ' + all_in_one_security_group.name + ' already exists. Skipping creation.') -else: - security_group_args = { - 'name' : security_group_name, - 'description': 'network access for all-in-one application.' - } - all_in_one_security_group = conn.network.create_security_group(**security_group_args) - - security_rule_args = { - 'security_group_id': all_in_one_security_group, - 'direction': 'ingress', - 'protocol': 'tcp', - 'port_range_min': '80', - 'port_range_max': '80' - } - conn.network.create_security_group_rule(**security_rule_args) - - security_rule_args['port_range_min'] = '22' - security_rule_args['port_range_max'] = '22' - conn.network.create_security_group_rule(**security_rule_args) - -for security_group in conn.network.security_groups(): - print(security_group) - -# step-11 -userdata = '''#!/usr/bin/env bash -curl -L -s https://opendev.org/openstack/faafo/raw/contrib/install.sh | bash -s -- \ - -i faafo -i messaging -r api -r worker -r demo -''' -userdata_b64str = base64.b64encode(userdata) - -# step-12 -print('Checking for existing instance...') -instance_name = 'all-in-one' -instance_exists = False -for instance in conn.compute.servers(): - if instance.name == instance_name: - testing_instance = instance - instance_exists = True - -if instance_exists: - print('Instance ' + testing_instance.name + ' already exists. Skipping creation.') -else: - - testing_instance_args = { - 'name': instance_name, - 'imageRef': image, - 'flavorRef': flavor, - 'key_name': keypair_name, - 'user_data': userdata_b64str, - 'security_groups': [{'name': all_in_one_security_group.name}] - } - - testing_instance = conn.compute.create_server(**testing_instance_args) - conn.compute.wait_for_server(testing_instance) - -for instance in conn.compute.servers(): - print(instance) - -# step-13 -print('Checking if Floating IP is already assigned to testing_instance...') -testing_instance_floating_ip = None -for values in testing_instance.addresses.values(): - for address in values: - if address['OS-EXT-IPS:type'] == 'floating': - testing_instance_floating_ip = conn.network.find_ip(address['addr']) - -unused_floating_ip = None -if not testing_instance_floating_ip: - print('Checking for unused Floating IP...') - for floating_ip in conn.network.ips(): - if not floating_ip.fixed_ip_address: - unused_floating_ip = floating_ip - break - -if not testing_instance_floating_ip and not unused_floating_ip: - print('No free unused Floating IPs. Allocating new Floating IP...') - public_network_id = conn.network.find_network('public').id - try: - unused_floating_ip = conn.network.create_ip(floating_network_id=public_network_id) - unused_floating_ip = conn.network.get_ip(unused_floating_ip) - print(unused_floating_ip) - except exceptions.HttpException as e: - print(e) - -# step-14 -if testing_instance_floating_ip: - print('Instance ' + testing_instance.name + ' already has a public ip. Skipping attachment.') -else: - for port in conn.network.ports(): - if port.device_id == testing_instance.id: - testing_instance_port = port - - testing_instance_floating_ip = unused_floating_ip - conn.network.add_ip_to_port(testing_instance_port, testing_instance_floating_ip) - -# step-15 -print('The Fractals app will be deployed to http://%s' % testing_instance_floating_ip.floating_ip_address) diff --git a/firstapp/samples/openstacksdk/introduction.py b/firstapp/samples/openstacksdk/introduction.py deleted file mode 100644 index 1a3f3e90e..000000000 --- a/firstapp/samples/openstacksdk/introduction.py +++ /dev/null @@ -1,228 +0,0 @@ -# step-1 -userdata = '''#!/usr/bin/env bash -curl -L -s https://opendev.org/openstack/faafo/raw/contrib/install.sh | bash -s -- \ - -i faafo -i messaging -r api -r worker -r demo -''' -userdata_b64str = base64.b64encode(userdata) - -instance_name = 'all-in-one' -testing_instance_args = { - 'name': instance_name, - 'imageRef': image, - 'flavorRef': flavor, - 'key_name': keypair_name, - 'user_data': userdata_b64str, - 'security_groups': [{'name': all_in_one_security_group.name}] -} - -testing_instance = conn.compute.create_server(**testing_instance_args) - -# step-2 -userdata = '''#!/usr/bin/env bash -curl -L -s https://opendev.org/openstack/faafo/raw/contrib/install.sh | bash -s -- \ - -i faafo -i messaging -r api -r worker -r demo -''' -userdata_b64str = base64.b64encode(userdata) - -# step-3 -security_group_args = { - 'name' : 'all-in-one', - 'description': 'network access for all-in-one application.' -} -all_in_one_security_group = conn.network.create_security_group(**security_group_args) - -# HTTP access -security_rule_args = { - 'security_group_id': all_in_one_security_group, - 'direction': 'ingress', - 'protocol': 'tcp', - 'port_range_min': '80', - 'port_range_max': '80' -} -conn.network.create_security_group_rule(**security_rule_args) - -# SSH access -security_rule_args['port_range_min'] = '22' -security_rule_args['port_range_max'] = '22' -conn.network.create_security_group_rule(**security_rule_args) - -# step-4 -for security_group in conn.network.security_groups(): - print(security_group) - -# step-5 -conn.network.delete_security_group_rule(rule) -conn.network.delete_security_group(security_group) - -# step-6 -testing_instance['security_groups'] - -# step-7 -unused_floating_ip = None -for floating_ip in conn.network.ips(): - if not floating_ip.fixed_ip_address: - unused_floating_ip = floating_ip - print("Found an unused Floating IP: %s" % floating_ip) - break - -# step-8 -public_network_id = conn.network.find_network('public').id - -# step-9 -unused_floating_ip = conn.network.create_ip(floating_network_id=public_network_id) -unused_floating_ip = conn.network.get_ip(unused_floating_ip) - -# step-10 -for port in conn.network.ports(): - if port.device_id == testing_instance.id: - testing_instance_port = port - break - -testing_instance_floating_ip = unused_floating_ip -conn.network.add_ip_to_port(testing_instance_port, testing_instance_floating_ip) - -# step-11 -security_group_args = { - 'name' : 'worker', - 'description': 'for services that run on a worker node' -} -worker_group = conn.network.create_security_group(**security_group_args) - -security_rule_args = { - 'security_group_id': worker_group, - 'direction': 'ingress', - 'protocol': 'tcp', - 'port_range_min': '22', - 'port_range_max': '22' -} -conn.network.create_security_group_rule(**security_rule_args) - -security_group_args = { - 'name' : 'control', - 'description': 'for services that run on a control node' -} -controller_group = conn.network.create_security_group(**security_group_args) - -# Switch to controller_group and readd SSH access rule -security_rule_args['security_group_id'] = controller_group -conn.network.create_security_group_rule(**security_rule_args) - -# Add HTTP access rule -security_rule_args['port_range_min'] = '80' -security_rule_args['port_range_max'] = '80' -conn.network.create_security_group_rule(**security_rule_args) - -# Add RabbitMQ access rule for all instances with -# 'worker' security group -security_rule_args['port_range_min'] = '5672' -security_rule_args['port_range_max'] = '5672' -security_rule_args['remote_group_id'] = worker_group -conn.network.create_security_group_rule(**security_rule_args) - -userdata = '''#!/usr/bin/env bash -curl -L -s https://opendev.org/openstack/faafo/raw/contrib/install.sh | bash -s -- \ - -i messaging -i faafo -r api -''' -userdata_b64str = base64.b64encode(userdata) - -instance_controller_1_args = { - 'name': 'app-controller', - 'imageRef': image, - 'flavorRef': flavor, - 'key_name': 'demokey', - 'user_data': userdata_b64str, - 'security_groups': [{'name': controller_group.name}] -} - -instance_controller_1 = conn.compute.create_server(**instance_controller_1_args) -conn.compute.wait_for_server(instance_controller_1) - -print('Checking for unused Floating IP...') -unused_floating_ip = None -for floating_ip in conn.network.ips(): - if not floating_ip.fixed_ip_address: - unused_floating_ip = floating_ip - print("Found an unused Floating IP: %s" % floating_ip) - break - -if not unused_floating_ip: - print('No free unused Floating IPs. Allocating new Floating IP...') - public_network_id = conn.network.find_network('public').id - unused_floating_ip = conn.network.create_ip(floating_network_id=public_network_id) - unused_floating_ip = conn.network.get_ip(unused_floating_ip) - -for port in conn.network.ports(): - if port.device_id == instance_controller_1.id: - controller_instance_port = port - break - -controller_instance_floating_ip = unused_floating_ip -conn.network.add_ip_to_port(controller_instance_port, controller_instance_floating_ip) - -# Retrieve all information about 'instance_controller_1' -instance_controller_1 = conn.compute.get_server(instance_controller_1) - -print('Application will be deployed to http://%s' % controller_instance_floating_ip.floating_ip_address) - -# step-12 -for values in instance_controller_1.addresses.values(): - for address in values: - if address['OS-EXT-IPS:type'] == 'fixed': - ip_controller = address['addr'] - break - -userdata = '''#!/usr/bin/env bash -curl -L -s https://opendev.org/openstack/faafo/raw/contrib/install.sh | bash -s -- \ - -i faafo -r worker -e 'http://%(ip_controller)s' -m 'amqp://guest:guest@%(ip_controller)s:5672/' -''' % {'ip_controller': ip_controller} -userdata_b64str = base64.b64encode(userdata) - -instance_worker_1_args = { - 'name': 'app-worker-1', - 'imageRef': image, - 'flavorRef': flavor, - 'key_name': 'demokey', - 'user_data': userdata_b64str, - 'security_groups': [{'name': worker_group.name}] -} - -instance_worker_1 = conn.compute.create_server(**instance_worker_1_args) -conn.compute.wait_for_server(instance_worker_1) - -print('Checking for unused Floating IP...') -unused_floating_ip = None -for floating_ip in conn.network.ips(): - if not floating_ip.fixed_ip_address: - unused_floating_ip = floating_ip - print("Found an unused Floating IP: %s" % floating_ip) - break - -if not unused_floating_ip: - print('No free unused Floating IPs. Allocating new Floating IP...') - public_network_id = conn.network.find_network('public').id - unused_floating_ip = conn.network.create_ip(floating_network_id=public_network_id) - unused_floating_ip = conn.network.get_ip(unused_floating_ip) - -for port in conn.network.ports(): - if port.device_id == instance_worker_1.id: - worker_instance_port = port - break - -worker_instance_floating_ip = unused_floating_ip -conn.network.add_ip_to_port(worker_instance_port, worker_instance_floating_ip) - -# Retrieve all information about 'instance_worker_1' -instance_worker_1 = conn.compute.get_server(instance_worker_1) - -print('The worker will be available for SSH at %s' % worker_instance_floating_ip.floating_ip_address) - -# step-13 -for values in instance_worker_1.addresses.values(): - for address in values: - if address['OS-EXT-IPS:type'] == 'floating': - ip_instance_worker_1 = address['addr'] - break - -print(ip_instance_worker_1) - -# step-14 diff --git a/firstapp/samples/pkgcloud/getting_started.js b/firstapp/samples/pkgcloud/getting_started.js deleted file mode 100644 index 7234a8f49..000000000 --- a/firstapp/samples/pkgcloud/getting_started.js +++ /dev/null @@ -1,182 +0,0 @@ -// step-1 - -auth_username = 'your_auth_username'; -auth_password = 'your_auth_password'; -auth_url = 'http://controller:5000'; -project_name = 'your_project_name_or_id'; -region_name = 'your_region_name'; - - -var conn = require('pkgcloud').compute.createClient({ - provider: 'openstack', - username: auth_username, - password: auth_password, - authUrl:auth_url, - region: region_name -}); - - -// step-2 -conn.getImages(function(err, images) { - for (i =0; i` -to implement functional checks within your application that external -tools can access through exposed endpoints at regular intervals. - -Backups -~~~~~~~ - -Just as you back up information on a non-cloud server, you must back -up non-reproducible information, such as information on a database -server, file server, or in application log files. Just because -something is 'in the cloud' does not mean that the underlying hardware -or systems cannot fail. - -OpenStack provides a couple of tools that make it easy to back up -data. If your provider runs OpenStack Object Storage, you can use its -API calls and CLI tools to work with archive files. - -You can also use the OpenStack API to create snapshots of running -instances and persistent volumes. For more information, see your SDK -documentation. - -.. todo:: Link to appropriate documentation, or better yet, link and - also include the commands here. - -In addition to configuring backups, review your policies about what -you back up and how long to retain each backed up item. - -Phoenix servers -~~~~~~~~~~~~~~~ - -`Phoenix Servers `_, -named for the mythical bird that is consumed by fire and rises from -the ashes to live again, make it easy to start over with new -instances. - -Application developers and operators who use phoenix servers have -access to systems that are built from a known baseline, such as a -specific operating system version, and to tooling that automatically -builds, installs, and configures a system. - -If you deploy your application on a regular basis, you can resolve -outages and make security updates without manual intervention. If an -outage occurs, you can provision more resources in another region. If -you must patch security holes, you can provision additional compute -nodes that are built with the updated software. Then, you can -terminate vulnerable nodes and automatically fail-over traffic to the -new instances. - -Security -~~~~~~~~ - -If one application instance is compromised, all instances with the -same image and configuration will likely suffer the same -vulnerability. The safest path is to use configuration management to -rebuild all instances. - -Configuration management -~~~~~~~~~~~~~~~~~~~~~~~~ - -Configuration management tools, such as Ansible, Chef, and Puppet, -enable you to describe exactly what to install and configure on an -instance. Using these descriptions, these tools implement the changes -that are required to get to the desired state. - -These tools vastly reduce the effort it takes to work with large -numbers of servers, and also improve the ability to recreate, update, -move, and distribute applications. - -Application deployment -~~~~~~~~~~~~~~~~~~~~~~ - -How do you deploy your application? For example, do you pull the -latest code from a source control repository? Do you make packaged -releases that update infrequently? Do you perform haphazard tests in a -development environment and deploy only after major changes? - -One of the latest trends in scalable cloud application deployment is -`continuous integration `_ -and `continuous deployment `_ -(CI/CD). - -CI/CD means that you always test your application and make frequent -deployments to production. - -In this tutorial, we have downloaded the latest version of our -application from source and installed it on a standard image. Our -magic installation script also updates the standard image to have the -latest dependencies that you need to run the application. - -Another approach is to create a 'gold' image, which pre-installs your -application and its dependencies. A 'gold' image enables faster boot -times and more control over what is on the instance. However, if you -use 'gold' images, you must have a process in place to ensure that -these images do not fall behind on security updates. - -Fail fast -~~~~~~~~~ - -.. todo:: Section needs to be written. diff --git a/firstapp/source/appendix.rst b/firstapp/source/appendix.rst deleted file mode 100644 index e7a671578..000000000 --- a/firstapp/source/appendix.rst +++ /dev/null @@ -1,56 +0,0 @@ -======== -Appendix -======== - -Bootstrap your network -~~~~~~~~~~~~~~~~~~~~~~ - -Most cloud providers provision all network objects that are required -to boot an instance. To determine whether these objects were created -for you, access the Network Topology section of the OpenStack -dashboard. - -.. figure:: images/network-topology.png - :width: 920px - :align: center - :height: 622px - :alt: network topology view - :figclass: align-center - -Specify a network during instance build -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. todo:: code for creating a networking using code - -.. only:: shade - - Add the parameter network and send its name or id to attach the instance to: - - .. code-block:: python - - testing_instance = conn.create_server(wait=True, auto_ip=True, - name=instance_name, - image=image_id, - flavor=flavor_id, - network=network_id) - -.. only:: gophercloud - - Add the option Networks and send its id to attach the instance to: - - .. code-block:: go - - opts := servers.CreateOpts { - Name: instanceName, - ImageRef: image.ID, - FlavorRef: flavor.ID, - SecurityGroups: []string{securityGroupName}, - UserData: []byte(userData), - Networks: []servers.Network{servers.Network{UUID: networkID}}, - - } - - testingInstance, _ = servers.Create(client, keypairs.CreateOptsExt { - CreateOptsBuilder: opts, - KeyName: keyPairName, - }).Extract() diff --git a/firstapp/source/block_storage.rst b/firstapp/source/block_storage.rst deleted file mode 100644 index 7909d95b7..000000000 --- a/firstapp/source/block_storage.rst +++ /dev/null @@ -1,434 +0,0 @@ -============= -Block Storage -============= - -.. todo:: (For nick: Restructure the introduction to this chapter to - provide context of what we're actually going to do.) - -By default, data in OpenStack instances is stored on 'ephemeral' -disks. These disks remain with the instance throughout its lifetime. -When you terminate the instance, that storage and all the data stored -on it disappears. Ephemeral storage is allocated to a single instance -and cannot be moved to another instance. - -This section introduces block storage, also known as volume storage, -which provides access to persistent storage devices. You interact with -block storage by attaching volumes to running instances just as you -might attach a USB drive to a physical server. You can detach volumes -from one instance and reattach them to another instance and the data -remains intact. The OpenStack Block Storage (cinder) project -implements block storage. - -Though you might have configured Object Storage to store images, the -Fractal application needs a database to track the location of, and -parameters that were used to create, images in Object Storage. This -database server cannot fail. - -If you are an advanced user, think about how you might remove the -database from the architecture and replace it with Object Storage -metadata, and then contribute these steps to :doc:`craziness`. - -Otherwise, continue reading to learn how to work with, and move the -Fractal application database server to use, block storage. - -Basics -~~~~~~ - -Later on, you will use a Block Storage volume to provide persistent -storage for the database server for the Fractal application. But -first, learn how to create and attach a Block Storage device. - -.. only:: dotnet - - .. warning:: This section has not yet been completed for the .NET SDK. - -.. only:: fog - - .. warning:: This section has not yet been completed for the fog SDK. - -.. only:: pkgcloud - - .. warning:: This section has not yet been completed for the pkgcloud SDK. - -.. only:: openstacksdk - - .. warning:: This section has not yet been completed for the OpenStack SDK. - -.. only:: phpopencloud - - .. warning:: This section has not yet been completed for the - PHP-OpenCloud SDK. - - -Connect to the API endpoint: - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/block_storage.py - :language: python - :start-after: step-1 - :end-before: step-2 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/BlockStorage.java - :language: java - :start-after: step-1 - :end-before: step-2 - -.. only:: shade - - .. literalinclude:: ../samples/shade/block_storage.py - :language: python - :start-after: step-1 - :end-before: step-2 - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/block_storage.go - :language: go - :start-after: step-1 - :end-before: step-2 - -To try it out, make a 1GB volume called 'test'. - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/block_storage.py - :language: python - :start-after: step-2 - :end-before: step-3 - - :: - - - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/BlockStorage.java - :language: java - :start-after: step-2 - :end-before: step-3 - -.. only:: shade - - .. literalinclude:: ../samples/shade/block_storage.py - :language: python - :start-after: step-2 - :end-before: step-3 - - .. note:: The parameter :code:`size` is in gigabytes. - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/block_storage.go - :language: go - :start-after: step-2 - :end-before: step-3 - - .. note:: The parameter :code:`Size` is in gigabytes. - -To see if the volume creation was successful, list all volumes: - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/block_storage.py - :language: python - :start-after: step-3 - :end-before: step-4 - - :: - - [] - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/BlockStorage.java - :language: java - :start-after: step-3 - :end-before: step-4 - -.. only:: shade - - .. literalinclude:: ../samples/shade/block_storage.py - :language: python - :start-after: step-3 - :end-before: step-4 - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/block_storage.go - :language: go - :start-after: step-3 - :end-before: step-4 - -Use Block Storage for the Fractal database server -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -You need a server for the dedicated database. Use the image, flavor, and -keypair that you used in :doc:`/getting_started` to launch an -:code:`app-database` instance. - -You also need a security group to permit access to the database server (for -MySQL, port 3306) from the network: - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/block_storage.py - :language: python - :start-after: step-4 - :end-before: step-5 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/BlockStorage.java - :language: java - :start-after: step-4 - :end-before: step-5 - -.. only:: shade - - .. literalinclude:: ../samples/shade/block_storage.py - :language: python - :start-after: step-4 - :end-before: step-5 - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/block_storage.go - :language: go - :start-after: step-4 - :end-before: step-5 - -Create a volume object by using the unique identifier (UUID) for the -volume. Then, use the server object from the previous code snippet to -attach the volume to it at :code:`/dev/vdb`: - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/block_storage.py - :language: python - :start-after: step-5 - :end-before: step-6 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/BlockStorage.java - :language: java - :start-after: step-5 - :end-before: step-6 - -.. only:: shade - - .. literalinclude:: ../samples/shade/block_storage.py - :language: python - :start-after: step-5 - :end-before: step-6 - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/block_storage.go - :language: go - :start-after: step-5 - :end-before: step-6 - -Log in to the server to run the following steps. - -.. note:: Replace :code:`IP_DATABASE` with the IP address of the - database instance and USERNAME to the appropriate user name. - -Now prepare the empty block device. - -.. code-block:: console - - $ ssh -i ~/.ssh/id_rsa USERNAME@IP_DATABASE - # fdisk -l - Disk /dev/vdb: 1073 MB, 1073741824 bytes - 16 heads, 63 sectors/track, 2080 cylinders, total 2097152 sectors - Units = sectors of 1 * 512 = 512 bytes - Sector size (logical/physical): 512 bytes / 512 bytes - I/O size (minimum/optimal): 512 bytes / 512 bytes - Disk identifier: 0x00000000 - - Disk /dev/vdb doesn't contain a valid partition table - - # mke2fs /dev/vdb - mke2fs 1.42.9 (4-Feb-2014) - Filesystem label= - OS type: Linux - Block size=4096 (log=2) - Fragment size=4096 (log=2) - Stride=0 blocks, Stripe width=0 blocks - 65536 inodes, 262144 blocks - 13107 blocks (5.00%) reserved for the super user - First data block=0 - Maximum filesystem blocks=268435456 - 8 block groups - 32768 blocks per group, 32768 fragments per group - 8192 inodes per group - Superblock backups stored on blocks: - 32768, 98304, 163840, 229376 - - Allocating group tables: done - Writing inode tables: done - Writing superblocks and filesystem accounting information: done - - # mkdir /mnt/database - # mount /dev/vdb /mnt/database - - -Stop the running MySQL database service and move the database files from -:file:`/var/lib/mysql` to the new volume, which is temporarily mounted at -:file:`/mnt/database`. - -.. code-block:: console - - # systemctl stop mariadb - # mv /var/lib/mysql/* /mnt/database - -Sync the file systems and mount the block device that contains the database -files to :file:`/var/lib/mysql`. - -.. code-block:: console - - # sync - # umount /mnt/database - # rm -rf /mnt/database - # echo "/dev/vdb /var/lib/mysql ext4 defaults 1 2" >> /etc/fstab - # mount /var/lib/mysql - -Finally, start the stopped MySQL database service and validate that everything -works as expected. - -.. code-block:: console - - # systemctl start mariadb - # mysql -ufaafo -ppassword -h localhost faafo -e 'show tables;' - -Extras -~~~~~~ - -You can detach the volume and reattach it elsewhere, or use the following -steps to delete the volume. - -.. warning:: - The following operations are destructive and result in data loss. - -To detach and delete a volume: - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/block_storage.py - :start-after: step-6 - :end-before: step-7 - - :: - - True - - .. note:: :code:`detach_volume` and :code:`destroy_volume` take a - volume object, not a name. - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/BlockStorage.java - :language: java - :start-after: step-6 - :end-before: step-7 - -.. only:: shade - - .. literalinclude:: ../samples/shade/block_storage.py - :language: python - :start-after: step-6 - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/block_storage.go - :language: go - :start-after: step-6 - -.. only:: libcloud - - Other features, such as creating volume snapshots, are useful for backups: - - .. literalinclude:: ../samples/libcloud/block_storage.py - :language: python - :start-after: step-7 - :end-before: step-8 - - .. todo:: Do we need a note here to mention that 'test' is the - volume name and not the volume object? - - For information about these and other calls, see - `libcloud documentation `_. - -.. only:: jclouds - - Other features, such as creating volume snapshots, are useful for backups: - - .. literalinclude:: ../samples/jclouds/BlockStorage.java - :language: java - :start-after: step-7 - :end-before: step-8 - - The following file contains all of the code from this section of the - tutorial. This comprehensive code sample lets you view and run the code - as a single file. - - .. literalinclude:: ../samples/jclouds/BlockStorage.java - :language: java - -Work with the OpenStack Database service -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Previously, you manually created the database, which is useful for a single -database that you rarely update. However, the OpenStack :code:`trove` -component provides Database as a Service (DBaaS). - -.. note:: This OpenStack Database service is not installed in many - clouds right now, but if your cloud supports it, it can - make your life a lot easier when working with databases. - -SDKs do not generally support the service yet, but you can use the -'trove' command-line client to work with it instead. - -To install the 'trove' command-line client, see -`Install the OpenStack command-line clients -`_. - -To set up environment variables for your cloud in an :file:`openrc.sh` -file, see -`Set environment variables using the OpenStack RC file `_. - -Ensure you have an :file:`openrc.sh` file, source it, and validate that -your trove client works: - -.. code-block:: console - - $ cat openrc.sh - export OS_USERNAME=your_auth_username - export OS_PASSWORD=your_auth_password - export OS_TENANT_NAME=your_project_name - export OS_AUTH_URL=http://controller:5000/v2.0 - export OS_REGION_NAME=your_region_name - - $ source openrc.sh - - $ trove --version - 1.0.9 - -For information about supported features and how to work with an -existing database service installation, see -`Database as a Service in OpenStack `_. - -Next steps -~~~~~~~~~~ - -You should now be fairly confident working with Block Storage volumes. -For information about other calls, see the volume documentation for -your SDK. Or, try one of these tutorial steps: - -* :doc:`/orchestration`: Automatically orchestrate your application. -* :doc:`/networking`: Learn about complex networking. -* :doc:`/advice`: Get advice about operations. diff --git a/firstapp/source/conf.py b/firstapp/source/conf.py deleted file mode 100644 index 89a0ca5a6..000000000 --- a/firstapp/source/conf.py +++ /dev/null @@ -1,294 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import os -import subprocess - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ------------------------------------------------ - -# If your documentation needs a minimal Sphinx version, state it here. -# needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'sphinx.ext.todo', - 'sphinx.ext.ifconfig', - 'sphinxcontrib.nwdiag', - 'sphinx.ext.graphviz', - 'sphinx.ext.todo', - 'openstackdocstheme' -] - -# Add any paths that contain templates here, relative to this directory. -# templates_path = ['_templates'] - -# The suffix of source filenames. -source_suffix = '.rst' - -# The encoding of source files. -# source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -repository_name = 'openstack/api-site' -project = u'FirstApp' -bug_project = 'openstack-api-site' -bug_tag = u'firstapp' -copyright = u'2015-2017, OpenStack contributors' - -# The version info for the project you are documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = '0.1' -# The full version, including alpha/beta/rc tags. -release = '0.1' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -# today = '' -# Else, today_fmt is used as the format for a strftime call. -# today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = [] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -# default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -# add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -# add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -# show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -# modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -# keep_warnings = False - - -# -- Options for HTML output ---------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'openstackdocs' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -# html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -# html_theme_path = [openstackdocstheme.get_html_theme_path()] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -# html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -# html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -# html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -# html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -# html_static_path = ['_static'] - -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -# html_extra_path = [] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -# So that we can enable "log-a-bug" links from each output HTML page, this -# variable must be set to a format that includes year, month, day, hours and -# minutes. -html_last_updated_fmt = '%Y-%m-%d %H:%M' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -# html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -# html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -# html_additional_pages = {} - -# If false, no module index is generated. -# html_domain_indices = True - -# If false, no index is generated. -html_use_index = False - -# If true, the index is split into individual pages for each letter. -# html_split_index = False - -# If true, links to the reST sources are added to the pages. -html_show_sourcelink = False - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -# html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -# html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -# html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -# html_file_suffix = None - -# Output file base name for HTML help builder. -htmlhelp_basename = 'FirstAppdoc' - -# If true, publish source files -html_copy_source = False - -# -- Options for LaTeX output --------------------------------------------- - -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - # 'papersize': 'letterpaper', - - # The font size ('10pt', '11pt' or '12pt'). - # 'pointsize': '10pt', - - # Additional stuff for the LaTeX preamble. - # 'preamble': '', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - ('index', 'FirstApp.tex', u'FirstApp Documentation', - u'OpenStack Doc Team', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -# latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -# latex_use_parts = False - -# If true, show page references after internal links. -# latex_show_pagerefs = False - -# If true, show URL addresses after external links. -# latex_show_urls = False - -# Documents to append as an appendix to all manuals. -# latex_appendices = [] - -# If false, no module index is generated. -# latex_domain_indices = True - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - ('index', 'firstapp', u'FirstApp Documentation', - [u'OpenStack Doc Team'], 1) -] - -# If true, show URL addresses after external links. -# man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - ('index', 'FirstApp', u'FirstApp Documentation', - u'OpenStack Doc Team', 'FirstApp', 'One line description of project.', - 'Miscellaneous'), -] - -# Documents to append as an appendix to all manuals. -# texinfo_appendices = [] - -# If false, no module index is generated. -# texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -# texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -# texinfo_no_detailmenu = False - -# Set to True to enable printing of the TODO sections -todo_include_todos = False - -# -- Options for Internationalization output ------------------------------ -locale_dirs = ['locale/'] - -# -- Options for PDF output -------------------------------------------------- - -pdf_documents = [ - ('index', u'FirstApp', u'FirstApp Documentation', - u'OpenStack contributors') -] diff --git a/firstapp/source/craziness.rst b/firstapp/source/craziness.rst deleted file mode 100644 index 5aad77abd..000000000 --- a/firstapp/source/craziness.rst +++ /dev/null @@ -1,77 +0,0 @@ -=========== -Going crazy -=========== - -This section explores options for expanding the sample application. - -Regions and geographic diversity -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: For more information about multi-site clouds, see the - `Multi-Site chapter `_ - in the Architecture Design Guide. - -OpenStack supports 'regions', which are geographically-separated -installations that are connected to a single service catalog. This -section explains how to expand the Fractal application to use multiple -regions for high availability. - -.. note:: This section is incomplete. Please help us finish it! - -Multiple clouds -~~~~~~~~~~~~~~~ - -.. note:: For more information about hybrid clouds, see the `Hybrid - Cloud chapter - `_ - in the Architecture Design Guide. - -You might want to use multiple clouds, such as a private cloud inside -your organization and a public cloud. This section attempts to do -exactly that. - -.. note:: This section is incomplete. Please help us finish it! - -High availability -~~~~~~~~~~~~~~~~~ - -Using Pacemaker to look at the API. - -.. note:: This section is incomplete. Please help us finish it! - -conf.d, etc.d -~~~~~~~~~~~~~ - -Use conf.d and etc.d. - -In earlier sections, the Fractal application used an installation -script into which the metadata API passed parameters to bootstrap the -cluster. `Etcd `_ is "a distributed, -consistent key-value store for shared configuration and service -discovery" that you can use to store configurations. You can write -updated versions of the Fractal worker component to connect to Etcd or -use `Confd `_ to poll for -changes from Etcd and write changes to a configuration file on the -local file system, which the Fractal worker can use for configuration. - -Use Object Storage instead of a database -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -We have not quite figured out how to stop using a database, but the -general steps are: - -* Change the Fractal upload code to store metadata with the object in - Object Storage. - -* Change the API code, such as "list fractals," to query Object Storage - to get the metadata. - -.. note:: This section is incomplete. Please help us finish it! - -Next steps -~~~~~~~~~~ - -Wow! If you have made it through this section, you know more than the -authors of this guide know about working with OpenStack clouds. - -Perhaps you can `contribute `_? diff --git a/firstapp/source/durability.rst b/firstapp/source/durability.rst deleted file mode 100644 index 957cc06c4..000000000 --- a/firstapp/source/durability.rst +++ /dev/null @@ -1,747 +0,0 @@ -=============== -Make it durable -=============== - -.. todo:: https://github.com/apache/libcloud/pull/492 - -.. todo:: For later versions of the guide: Extend the Fractals app to use Swift directly, and show the actual code from there. - -.. todo:: Explain how to get objects back out again. - -.. todo:: Large object support in Swift - https://docs.openstack.org/swift/latest/overview_large_objects.html - -This section introduces object storage. - -`OpenStack Object Storage `_ -(code-named swift) is open-source software that enables you to create -redundant, scalable data storage by using clusters of standardized servers to -store petabytes of accessible data. It is a long-term storage system for large -amounts of static data that you can retrieve, leverage, and update. Unlike -more traditional storage systems that you access through a file system, you -access Object Storage through an API. - -The Object Storage API is organized around objects and containers. - -Similar to the UNIX programming model, an object, such as a document or an -image, is a "bag of bytes" that contains data. You use containers to group -objects. You can place many objects inside a container, and your account can -have many containers. - -If you think about how you traditionally make what you store durable, you -quickly conclude that keeping multiple copies of your objects on separate -systems is a good way strategy. However, keeping track of those multiple -copies is difficult, and building that into an app requires complicated logic. - -OpenStack Object Storage automatically replicates each object at least twice -before returning 'write success' to your API call. A good strategy is to keep -three copies of objects, by default, at all times, replicating them across the -system in case of hardware failure, maintenance, network outage, or another -kind of breakage. This strategy is very convenient for app creation. You can -just dump objects into object storage and not worry about the additional work -that it takes to keep them safe. - - -Use Object Storage to store fractals ------------------------------------- - -The Fractals app currently uses the local file system on the instance to store -the images that it generates. For a number of reasons, this approach is not -scalable or durable. - -Because the local file system is ephemeral storage, the fractal images are -lost along with the instance when the instance is terminated. Block-based -storage, which the :doc:`/block_storage` section discusses, avoids that -problem, but like local file systems, it requires administration to ensure -that it does not fill up, and immediate attention if disks fail. - -The Object Storage service manages many of the tasks normally managed by the -application owner. The Object Storage service provides a scalable and durable -API that you can use for the fractals app, eliminating the need to be aware of -the low level details of how objects are stored and replicated, and how to -grow the storage pool. Object Storage handles replication for you. It stores -multiple copies of each object. You can use the Object Storage API to return -an object, on demand. - -First, learn how to connect to the Object Storage endpoint: - -.. only:: dotnet - - .. warning:: This section has not yet been completed for the .NET SDK. - -.. only:: fog - - .. literalinclude:: ../samples/fog/durability.rb - :start-after: step-1 - :end-before: step-2 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/Durability.java - :language: java - :start-after: step-1 - :end-before: step-2 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/durability.py - :start-after: step-1 - :end-before: step-2 - - - .. warning:: - - Libcloud 0.16 and 0.17 are afflicted with a bug that means - authentication to a swift endpoint can fail with `a Python - exception - `_. If - you encounter this, you can upgrade your libcloud version, or - apply a simple `2-line patch - `_. - - .. note:: Libcloud uses a different connector for Object Storage - to all other OpenStack services, so a conn object from - previous sections will not work here and we have to create - a new one named :code:`swift`. - -.. only:: pkgcloud - - .. warning:: This section has not yet been completed for the pkgcloud SDK. - -.. only:: openstacksdk - - .. warning:: This section has not yet been completed for the OpenStack SDK. - -.. only:: phpopencloud - - .. warning:: This section has not yet been completed for the - PHP-OpenCloud SDK. - -.. only:: shade - - .. literalinclude:: ../samples/shade/durability.py - :start-after: step-1 - :end-before: step-2 - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/durability.go - :language: go - :start-after: step-1 - :end-before: step-2 - -To begin to store objects, we must first make a container. -Call yours :code:`fractals`: - -.. only:: fog - - .. literalinclude:: ../samples/fog/durability.rb - :start-after: step-2 - :end-before: step-3 - - You should see output such as: - - .. code-block:: ruby - - TBC - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/Durability.java - :language: java - :start-after: step-2 - :end-before: step-3 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/durability.py - :start-after: step-2 - :end-before: step-3 - - You should see output such as: - - .. code-block:: python - - - -.. only:: shade - - .. literalinclude:: ../samples/shade/durability.py - :start-after: step-2 - :end-before: step-3 - - You should see output such as: - - .. code-block:: python - - Munch({u'content-length': u'0', u'x-container-object-count': u'0', - u'accept-ranges': u'bytes', u'x-container-bytes-used': u'0', - u'x-timestamp': u'1463950178.11674', u'x-trans-id': - u'txc6262b9c2bc1445b9dfe3-00574277ff', u'date': u'Mon, 23 May 2016 - 03:24:47 GMT', u'content-type': u'text/plain; charset=utf-8'}) - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/durability.go - :language: go - :start-after: step-2 - :end-before: step-3 - -You should now be able to see this container appear in a listing of -all containers in your account: - -.. only:: fog - - .. literalinclude:: ../samples/fog/durability.rb - :start-after: step-3 - :end-before: step-4 - - You should see output such as: - - .. code-block:: ruby - - TBC - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/Durability.java - :language: java - :start-after: step-3 - :end-before: step-4 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/durability.py - :start-after: step-3 - :end-before: step-4 - - You should see output such as: - - .. code-block:: python - - [] - -.. only:: shade - - .. literalinclude:: ../samples/shade/durability.py - :start-after: step-3 - :end-before: step-4 - - .. code-block:: python - - [Munch({u'count': 0, u'bytes': 0, u'name': u'fractals'}), - Munch({u'count': 0, u'bytes': 0, u'name': u'fractals_segments'})] - - .. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/durability.go - :language: go - :start-after: step-3 - :end-before: step-4 - -The next logical step is to upload an object. Find a photo of a goat -online, name it :code:`goat.jpg`, and upload it to your -:code:`fractals` container: - -.. only:: fog - - .. literalinclude:: ../samples/fog/durability.rb - :start-after: step-4 - :end-before: step-5 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/Durability.java - :language: java - :start-after: step-4 - :end-before: step-5 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/durability.py - :start-after: step-4 - :end-before: step-5 - -.. only:: shade - - .. literalinclude:: ../samples/shade/durability.py - :start-after: step-4 - :end-before: step-5 - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/durability.go - :language: go - :start-after: step-4 - :end-before: step-5 - -List objects in your :code:`fractals` container to see if the upload -was successful. Then, download the file to verify that the md5sum is -the same: - -.. only:: fog - - .. literalinclude:: ../samples/fog/durability.rb - :start-after: step-5 - :end-before: step-6 - - :: - - TBC - - - .. literalinclude:: ../samples/fog/durability.rb - :start-after: step-6 - :end-before: step-7 - - :: - - TBC - - .. literalinclude:: ../samples/fog/durability.rb - :start-after: step-7 - :end-before: step-8 - - :: - - 7513986d3aeb22659079d1bf3dc2468b - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/Durability.java - :language: java - :start-after: step-5 - :end-before: step-6 - - :: - - Objects in fractals: - SwiftObject{name=an amazing goat, - uri=https://swift.some.org:8888/v1/AUTH_8997868/fractals/an%20amazing%20goat, - etag=439884df9c1c15c59d2cf43008180048, - lastModified=Wed Nov 25 15:09:34 AEDT 2015, metadata={}} - - .. literalinclude:: ../samples/jclouds/Durability.java - :language: java - :start-after: step-6 - :end-before: step-7 - - :: - - Fetched: an amazing goat - - .. literalinclude:: ../samples/jclouds/Durability.java - :language: java - :start-after: step-7 - :end-before: step-8 - - :: - - MD5 for file goat.jpg: 439884df9c1c15c59d2cf43008180048 - - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/durability.py - :start-after: step-5 - :end-before: step-6 - - :: - - [] - - - .. literalinclude:: ../samples/libcloud/durability.py - :start-after: step-6 - :end-before: step-7 - - :: - - - - .. literalinclude:: ../samples/libcloud/durability.py - :start-after: step-7 - :end-before: step-8 - - :: - - 7513986d3aeb22659079d1bf3dc2468b - -.. only:: shade - - .. literalinclude:: ../samples/shade/durability.py - :start-after: step-5 - :end-before: step-6 - - :: - - [Munch({u'hash': u'd1408b5bf6510426db6e2bafc2f90854', u'last_modified': - u'2016-05-23T03:34:59.353480', u'bytes': 63654, u'name': u'an amazing - goat', u'content_type': u'application/octet-stream'})] - - .. literalinclude:: ../samples/shade/durability.py - :start-after: step-6 - :end-before: step-7 - - .. literalinclude:: ../samples/shade/durability.py - :start-after: step-7 - :end-before: step-8 - - :: - - d1408b5bf6510426db6e2bafc2f90854 - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/durability.go - :language: go - :start-after: step-5 - :end-before: step-6 - -Finally, clean up by deleting the test object: - -.. only:: fog - - .. literalinclude:: ../samples/fog/durability.rb - :start-after: step-8 - :end-before: step-9 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/Durability.java - :language: java - :start-after: step-8 - :end-before: step-10 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/durability.py - :start-after: step-8 - :end-before: step-9 - - .. note:: You must pass in objects and not object names to the delete commands. - - Now, no more objects are available in the :code:`fractals` container. - - .. literalinclude:: ../samples/libcloud/durability.py - :start-after: step-9 - :end-before: step-10 - - :: - - [] - -.. only:: shade - - .. literalinclude:: ../samples/shade/durability.py - :start-after: step-8 - :end-before: step-9 - - :: - - Munch({u'content-length': u'0', u'x-container-object-count': u'0', - u'accept-ranges': u'bytes', u'x-container-bytes-used': u'0', - u'x-timestamp': u'1463950178.11674', u'x-trans-id': - u'tx46c83fa41030422493110-0057427af3', u'date': u'Mon, 23 May 2016 - 03:37:23 GMT', u'content-type': u'text/plain; charset=utf-8'}) - - Now, no more objects are available in the :code:`fractals` container. - - .. literalinclude:: ../samples/shade/durability.py - :start-after: step-9 - :end-before: step-10 - - :: - - [] - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/durability.go - :language: go - :start-after: step-8 - :end-before: step-9 - -Back up the Fractals from the database on the Object Storage -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Back up the Fractals app images, which are currently stored inside the -database, on Object Storage. - -Place the images in the :code:`fractals` container: - -.. only:: fog - - .. literalinclude:: ../samples/fog/durability.rb - :start-after: step-10 - :end-before: step-11 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/Durability.java - :language: java - :start-after: step-10 - :end-before: step-11 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/durability.py - :start-after: step-10 - :end-before: step-11 - -.. only:: shade - - .. literalinclude:: ../samples/shade/durability.py - :start-after: step-10 - :end-before: step-11 - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/durability.go - :language: go - :start-after: step-10 - :end-before: step-11 - -Next, back up all existing fractals from the database to the swift container. -A simple loop takes care of that: - -.. note:: Replace :code:`IP_API_1` with the IP address of the API instance. - -.. only:: fog - - .. literalinclude:: ../samples/fog/durability.rb - :start-after: step-11 - :end-before: step-12 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/Durability.java - :language: java - :start-after: step-11 - :end-before: step-12 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/durability.py - :start-after: step-11 - :end-before: step-12 - - :: - - - - - - - .. note:: The example code uses the awesome - `Requests library `_. - Before you try to run the previous script, make sure that - it is installed on your system. - -.. only:: shade - - .. literalinclude:: ../samples/shade/durability.py - :start-after: step-11 - :end-before: step-12 - - .. note:: The example code uses the awesome - `Requests library `_. - Before you try to run the previous script, make sure that - it is installed on your system. - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/durability.go - :language: go - :start-after: step-11 - :end-before: step-12 - -Configure the Fractals app to use Object Storage -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. warning:: Currently, you cannot directly store generated - images in OpenStack Object Storage. Please revisit - this section again in the future. - -Extra features --------------- - -Delete containers -~~~~~~~~~~~~~~~~~ - -To delete a container, you must first remove all objects from the container. -Otherwise, the delete operation fails: - -.. only:: fog - - .. literalinclude:: ../samples/fog/durability.rb - :start-after: step-12 - :end-before: step-13 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/Durability.java - :language: java - :start-after: step-12 - :end-before: step-13 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/durability.py - :start-after: step-12 - :end-before: step-13 - -.. only:: shade - - .. literalinclude:: ../samples/shade/durability.py - :start-after: step-12 - :end-before: step-13 - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/durability.go - :language: go - :start-after: step-12 - :end-before: step-13 - -.. warning:: It is not possible to restore deleted objects. Be careful. - -Add metadata to objects -~~~~~~~~~~~~~~~~~~~~~~~ - -You can complete advanced tasks such as uploading an object with metadata, as -shown in following example. For more information, see the documentation for -your SDK. - -.. only:: fog - - This option also uses a bit stream to upload the file, iterating bit - by bit over the file and passing those bits to Object Storage as they come. - Compared to loading the entire file in memory and then sending it, this method - is more efficient, especially for larger files. - - .. literalinclude:: ../samples/fog/durability.rb - :start-after: step-13 - :end-before: step-14 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/Durability.java - :language: java - :start-after: step-13 - :end-before: step-14 - -.. only:: libcloud - - This option also uses a bit stream to upload the file, iterating bit - by bit over the file and passing those bits to Object Storage as they come. - Compared to loading the entire file in memory and then sending it, this method - is more efficient, especially for larger files. - - .. literalinclude:: ../samples/libcloud/durability.py - :start-after: step-13 - :end-before: step-14 - -.. todo:: It would be nice to have a pointer here to section 9. - -.. only:: shade - - This adds a "foo" key to the metadata that has a value of "bar". - - .. Note:: - - Swift metadata keys are prepended with "x-object-meta-" so when you get - the object with get_object(), in order to get the value of the metadata - your key will be "x-object-meta-foo". - - .. literalinclude:: ../samples/shade/durability.py - :start-after: step-13 - :end-before: step-14 - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/durability.go - :language: go - :start-after: step-13 - :end-before: step-14 - -Large objects -~~~~~~~~~~~~~ - -For efficiency, most Object Storage installations treat large objects, -:code:`> 5GB`, differently than smaller objects. - -.. only:: fog - - .. literalinclude:: ../samples/fog/durability.rb - :start-after: step-14 - :end-before: step-15 - -.. only:: jclouds - - If you work with large objects, use the :code:`RegionScopedBlobStoreContext` - class family instead of the ones used so far. - - .. note:: Large file uploads that use the :code:`openstack-swift` provider - are supported in only jclouds V2, currently in beta. Also, the - default chunk size is 64 Mb. Consider changing this as homework. - - .. literalinclude:: ../samples/jclouds/Durability.java - :language: java - :start-after: step-14 - :end-before: step-15 - -.. only:: libcloud - - If you work with large objects, use the :code:`ex_multipart_upload_object` - call instead of the simpler :code:`upload_object` call. The call splits - the large object into chunks and creates a manifest so that the chunks can - be recombined on download. Change the :code:`chunk_size` parameter, in - bytes, to a value that your cloud can accept. - - .. literalinclude:: ../samples/libcloud/durability.py - :start-after: step-14 - :end-before: step-15 - -.. only:: jclouds - - Complete code sample - ~~~~~~~~~~~~~~~~~~~~ - - This file contains all the code from this tutorial section. This - class lets you view and run the code. - - Before you run this class, confirm that you have configured it for - your cloud and the instance running the Fractals application. - - .. literalinclude:: ../samples/jclouds/Durability.java - :language: java - -.. only:: shade - - Shade's create_object function has a "use_slo" parameter (that defaults to - true) which will break your object into smaller objects for upload and - rejoin them if needed. - -Next steps ----------- - -You should now be fairly confident working with Object Storage. You -can find more information about the Object Storage SDK calls at: - -.. only:: fog - - https://github.com/fog/fog/blob/master/lib/fog/openstack/docs/storage.md - -.. only:: libcloud - - https://libcloud.readthedocs.org/en/latest/storage/api.html - -Or, try one of these tutorial steps: - -* :doc:`/block_storage`: Migrate the database to block storage, or use - the database-as-a-service component. -* :doc:`/orchestration`: Automatically orchestrate your application. -* :doc:`/networking`: Learn about complex networking. -* :doc:`/advice`: Get advice about operations. -* :doc:`/craziness`: Learn some crazy things that you might not think to do ;) diff --git a/firstapp/source/getting_started.rst b/firstapp/source/getting_started.rst deleted file mode 100644 index 4c83adf4f..000000000 --- a/firstapp/source/getting_started.rst +++ /dev/null @@ -1,1810 +0,0 @@ -=============== -Getting started -=============== - -Who should read this guide -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -This guide is for experienced software developers who want to deploy -applications to OpenStack clouds. - -If you are familiar with OpenStack but have not created a cloud -application in general or an OpenStack application in particular, this -section teaches you how to program with OpenStack components. - -What you will learn -~~~~~~~~~~~~~~~~~~~ - -Deploying applications in a cloud environment can be very different -from deploying them in a traditional IT environment. This guide -teaches you how to deploy applications on OpenStack and some best -practices for cloud application development. - -A general overview -~~~~~~~~~~~~~~~~~~ - -This tutorial shows two applications. The first application is a simple -fractal generator that uses mathematical equations to generate beautiful -`fractal images `_. We show you this -application in its entirety so that you can compare it to a second, more -robust, application. - -The second application is an OpenStack application that enables you to: - -* Create and delete compute resources. These resources are virtual - machine instances where the Fractals application runs. -* Make cloud-related architecture decisions such as turning - functions into micro-services and modularizing them. -* Scale available resources up and down. -* Use Object and Block storage for file and database persistence. -* Use Orchestration services to automatically adjust to the environment. -* Customize networking for better performance and segregation. -* Explore and apply advanced OpenStack cloud features. - -Choose your OpenStack SDK -~~~~~~~~~~~~~~~~~~~~~~~~~ - -Anyone with a programming background can easily read the code in this guide. -Although this guide focuses on a particular SDK, you can use other languages -and toolkits with the OpenStack cloud: - - -.. list-table:: OpenStack SDKs - :header-rows: 1 - :widths: 10, 10, 40, 40 - - * - Language - - Name - - Description - - URL - * - Python - - OpenStack SDK - - Official Python-based library for OpenStack. - - https://docs.openstack.org/openstacksdk/latest/ - * - Python - - `Libcloud `_ - - A Python-based library that the Apache Foundation manages. - Use it to work with multiple cloud types. - - https://libcloud.readthedocs.org/en/latest/compute/drivers/openstack.html - * - Python - - Shade - - A Python-based library developed by OpenStack Infra team. - Use it to operate multiple OpenStack clouds. - - https://docs.openstack.org/infra/shade/ - * - Java - - `jClouds `_ - - A Java-based library that the Apache Foundation manages. - Use it to work with multiple cloud types. - - https://jclouds.apache.org/guides/openstack/ - * - Ruby - - `fog `_ - - A Ruby-based SDK. - Use it to work with multiple clouds. - - https://github.com/fog/fog-openstack/blob/master/docs/getting_started.md - * - node.js - - `pkgcloud `_ - - A Node.js-based SDK. - Use it work with multiple clouds. - - https://github.com/pkgcloud/pkgcloud/tree/master/docs/providers/openstack - * - PHP - - `php-opencloud `_ - - A PHP-based library. - Use it to write PHP code that works with OpenStack clouds. - - http://php-opencloud.readthedocs.org/en/latest/getting-started-with-openstack.html - * - .NET Framework - - OpenStack SDK for Microsoft .NET - - A .NET-based library. - Use it to write C++ or C# code for Microsoft applications. - - https://www.nuget.org/packages/openstack.net - * - Go - - `gophercloud `_ - - A go-based SDK. - Use it to write Golang code that works with OpenStack clouds. - - http://gophercloud.io/ - -For a list of available SDKs, see `Software Development Kits `_. - -Other versions of this guide show you how to use the other SDKs and languages -to complete these tasks. If you are a developer for another toolkit that you -would like this guide to include, feel free to submit code snippets. For more -information, contact -`OpenStack Documentation team `_ members. - -What you need -------------- - -We assume that you can already access an OpenStack cloud. You must have a -project, also known as a tenant, with a minimum quota of six instances. -Because the Fractals application runs in Ubuntu, Debian, Fedora-based, and -openSUSE-based distributions, you must create instances that use one of these -operating systems. - -To interact with the cloud, you must also have - -.. only:: dotnet - - `OpenStack Cloud SDK for Microsoft .NET 1.4.0.1 or later installed - `_. - - .. note:: - - To install the OpenStack .NET SDK, use the NeGet Package Manager that - is included with Visual Studio and Xamarin Studio. You simply add a - package named 'openstack.net' and the NeGet Package Manager - automatically installs the necessary dependencies. - - .. warning:: - - This document has not yet been completed for the .NET SDK. - -.. only:: fog - - `fog 1.19 or higher installed - `_ - and working with ruby gems 1.9. - - .. warning:: - - This document has not yet been completed for the fog SDK. - -.. only:: jclouds - - `jClouds 1.8 or higher installed `_. - - Our code samples use - `Java 8 `_. - - We have created a Maven POM file to help you get started. - - If you do not know Maven then the `Maven home site `_ - is a good place to learn more. - - **pom.xml:** - - .. literalinclude:: ../samples/jclouds/pom.xml - :language: xml - - Place the above pom.xml into the root directory of your project. Then create the nested - subdirectory tree :code:`src` -> :code:`main` -> :code:`java`. - Place the Java code samples that you copy from this book into the folder named ":code:`java`". - - So, for example, the file named :code:`GettingStarted.java` from the end of this chapter - would be located as follows: - - .. figure:: images/jclouds/screenshot_maven_layout.png - :width: 328px - :align: center - :height: 179px - :alt: Screenshot of the Maven project directory structure - :figclass: align-center - - To use Maven to compile a downloaded sample, with the command prompt located in the same - directory as the :code:`pom.xml` file, enter: - - .. code-block:: bash - - mvn compile - - Maven will download and install any dependencies required for compilation, then execute - the Java compiler. All files in the :code:`java` subdirectory will be compiled. - - To use Maven to run each downloaded sample, with the command prompt located in the same - directory as the :code:`pom.xml` file, enter: - - .. code-block:: bash - - # In the sample below replace GettingStarted with the name of the class you want to run - mvn exec:java -Dexec.mainClass="GettingStarted" - - Maven will download and install any further dependencies required and then run the chosen - class. - -.. only:: libcloud - - `libcloud 0.15.1 or higher installed - `_. - -.. only:: pkgcloud - - `pkgcloud 1.2 or higher installed - `_. - - .. highlight:: javascript - -.. only:: openstacksdk - - a recent version of `OpenStackSDK `_ - installed. - -.. only:: phpopencloud - - `a recent version of php-opencloud installed `_. - - .. warning:: - - This document has not yet been completed for the php-opencloud SDK. - -.. only:: shade - - `a recent version of shade installed `_. - - .. note:: Before proceeding, install the latest version of shade. - -.. only:: gophercloud - - `a recent version of gophercloud installed `_ - - -Obtain the following information from your cloud provider: - -* auth URL -* user name -* password -* project ID or name (projects are also known as tenants) -* cloud region - -You can also download the OpenStack RC file from the OpenStack Horizon -dashboard. Log in to the dashboard and click :guilabel:`Project->Access & -Security->API Access->Download OpenStack RC file`. If you use this method, be -aware that the "auth URL" does not include the path. For example, if your -:file:`openrc.sh` file shows: - -.. code-block:: bash - - export OS_AUTH_URL=http://controller:5000/v2.0 - -The actual auth URL is: - -.. code-block:: python - - http://controller:5000 - -How you interact with OpenStack -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -In this tutorial, you interact with your OpenStack cloud through the SDK that -you chose in "Choose your OpenStack SDK." This guide assumes that you know how -to run code snippets in your language of choice. - -.. only:: fog - - .. literalinclude:: ../samples/fog/getting_started.rb - :language: ruby - :start-after: step-1 - :end-before: step-2 - -.. only:: libcloud - - To try it, add the following code to a Python script (or use an - interactive Python shell) by calling :code:`python -i`. - - .. literalinclude:: ../samples/libcloud/getting_started.py - :start-after: step-1 - :end-before: step-2 - -.. only:: jclouds - - First provide the appropriate identity, credentials and authorization URL - for your project. Then get an instance of the Nova API interface. - - .. literalinclude:: ../samples/jclouds/GettingStarted.java - :language: java - :start-after: step-1 - :end-before: step-2 - -.. only:: openstacksdk - - To try it out, add the following code to a Python script (or use an - interactive Python shell) by calling :code:`python -i`. - - .. literalinclude:: ../samples/openstacksdk/getting_started.py - :start-after: step-1 - :end-before: step-2 - -.. only:: pkgcloud - - To try it, use an interactive Node.js shell by calling :code:`node` or add - the following code to a script. - - .. literalinclude:: ../samples/pkgcloud/getting_started.js - :start-after: step-1 - :end-before: step-2 - -.. only:: dotnet - - To use the OpenStack .NET SDK, add the following code in the required - namespace section. - - .. code-block:: c# - - using net.openstack.Core.Domain; - using net.openstack.Core.Providers; - using net.openstack.Providers.Rackspace; - - Because all service endpoints use the Identity Service for authentication - and authorization, place the following code in the 'void Main()' - entry-point function. - - .. literalinclude:: ../samples/dotnet/getting_started.cs - :language: c# - :dedent: 3 - :start-after: step-1 - :end-before: step-2 - - -.. note:: Because the tutorial reuses the :code:`conn` object, - make sure that you always have one handy. - -.. only:: libcloud - - .. note:: If you receive the - :code:`libcloud.common.types.InvalidCredsError: 'Invalid - credentials with the provider'` exception when you run - one of these API calls, double-check your credentials. - - .. note:: If your provider does not support regions, try a - blank string ('') for the `region_name`. - -.. only:: shade - - Use your credentials above to specify the cloud provider name, - username, password, project_name and region_name in the file - :file:`~/.config/openstack/clouds.yml`. - - .. literalinclude:: ../samples/shade/clouds.yml - :language: yaml - - .. note:: If you do use a public cloud `known by shade - `_, - you can avoid specifying :code:`auth_url:` and instead specify - :code:`profile: $PROVIDER_NAME` in the clouds.yml file. - - To configure shade using a profile, use your credentials above to specify the cloud provider - name, username, password, project name, and region name in the file - :file:`~/.config/openstack/clouds.yml`. - - .. literalinclude:: ../samples/shade/shade.yml - :language: yaml - - See `configure shade `_, - to configure your cloud using a profile. - - .. literalinclude:: ../samples/shade/getting_started.py - :start-after: step-1 - :end-before: step-2 - -.. only:: openstacksdk - - .. note:: If you receive the exception - :code:`openstack.exceptions.HttpException: HttpException: - 401 Client Error: Unauthorized,` while trying to run one - of the following API calls please double-check your - credentials. - -.. only:: gophercloud - - Use environment variables to set your cloud credentials - - .. literalinclude:: ../samples/gophercloud/getting_started.go - :language: go - :start-after: step-1 - :end-before: step-2 - - .. note:: The client object accesses the Compute v2.0 service and type v2.1, - so that version is in this tutorial. - -Flavors and images -~~~~~~~~~~~~~~~~~~ - -To run your application, you must launch an instance. This instance serves as -a virtual machine. - -To launch an instance, you choose a flavor and an image. The flavor represents -the size of the instance, including the number of CPUs and amount of RAM and -disk space. An image is a prepared OS installation from which you clone your -instance. When you boot instances in a public cloud, larger flavors can be -more expensive than smaller ones in terms of resources and monetary cost. - -To list the images that are available in your cloud, run some API calls: - -.. only:: fog - - .. literalinclude:: ../samples/fog/getting_started.rb - :language: ruby - :start-after: step-2 - :end-before: step-3 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/getting_started.py - :start-after: step-2 - :end-before: step-3 - - This code returns output like this: - - .. code-block:: python - - - - -.. only:: pkgcloud - - .. literalinclude:: ../samples/pkgcloud/getting_started.js - :start-after: step-2 - :end-before: step-3 - - This code returns output like this: - - .. code-block:: none - - id: 6c7f5627-ca40-4781-ac34-4d9af53d4b29 - name: Fedora 22 - Updated - created: 2015-08-17T03:53:17Z - updated: 2015-08-17T04:53:12Z - status: ACTIVE - - ... - id: 2cccbea0-cea9-4f86-a3ed-065c652adda5 - name: Ubuntu 14.04 - created: 2015-08-13T02:25:10Z - updated: 2015-08-13T02:43:38Z - status: ACTIVE - -.. only:: dotnet - - .. literalinclude:: ../samples/dotnet/getting_started.cs - :language: c# - :dedent: 3 - :start-after: step-2 - :end-before: step-3 - - This code returns output like this: - - .. code-block:: none - - Image Id: dce1a289-2ad5-4aaa-a7a6-fe30adc2094e - Image Name: snap1 - Image Id: 97f55846-6ea5-4e9d-b437-bda97586bd0c - Image Name: cirros-0.3.4-x86_64-uec - Image Id: 3e0e8270-0da4-4fec-bfc7-eeb763604cad - Image Name: cirros-0.3.4-x86_64-uec-ramdisk - Image Id: 0b151382-d2f1-44d7-835b-6408bd523917 - Image Name: cirros-0.3.4-x86_64-uec-kernel - -.. only:: shade - - .. literalinclude:: ../samples/shade/getting_started.py - :language: python - :start-after: step-2 - :end-before: step-3 - - This code returns output like this: - - .. code-block:: none - - checksum: 750a56555d4ec7303f5dc33b007ff632 - container_format: bare - created_at: '2014-07-14T19:02:15Z' - direct_url: - rbd://7e14670e-a6f8-445b-b632-4b79bafc4781/masseffect-images/b4efbc2a-6130-4f2e-b436-55a618c4de20/snap - disk_format: raw - file: /v2/images/b4efbc2a-6130-4f2e-b436-55a618c4de20/file - id: b4efbc2a-6130-4f2e-b436-55a618c4de20 - min_disk: 10 - min_ram: 1024 - name: Debian-7.0-Wheezy - owner: 0bacd8121bb548698f340455b38bf561 - protected: false - schema: /v2/schemas/image - size: 5242880000 - status: active - tags: [] - updated_at: '2014-10-15T22:42:52Z' - visibility: public - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/GettingStarted.java - :language: java - :start-after: step-2 - :end-before: step-3 - -.. only:: openstacksdk - - .. literalinclude:: ../samples/openstacksdk/getting_started.py - :start-after: step-2 - :end-before: step-3 - - You should see output something like this: - - .. code-block:: python - - openstack.image.v1.image.Image(attrs={u'name': u'ubuntu-14.04', u'container_format': u'bare', u'disk_format': u'qcow2', u'checksum': u'6d8f1c8cf05e1fbdc8b543fda1a9fa7f', u'id': u'cb6b7936-d2c5-4901-8678-c88b3a6ed84c', u'size': 258540032}, loaded=True) - ... - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/getting_started.go - :language: go - :start-after: step-2 - :end-before: step-3 - - This code returns output like this: - - .. code-block:: none - - [{74e6d1ec-9a08-444c-8518-4f232446386d 2016-02-01T07:20:31Z 0 0 cirros-0.3.4-x86_64-uec 100 ACTIVE 2016-02-01T07:20:32Z} - {f70b7fb0-348a-4519-b358-0f239dc64dc5 2016-02-01T07:20:30Z 0 0 cirros-0.3.4-x86_64-uec-ramdisk 100 ACTIVE 2016-02-01T07:20:31Z} - {e92f5e17-60d2-4cb5-b893-d605b136afab 2016-02-01T07:20:29Z 0 0 cirros-0.3.4-x86_64-uec-kernel 100 ACTIVE 2016-02-01T07:20:30Z}] - -You can also get information about available flavors: - -.. only:: fog - - .. literalinclude:: ../samples/fog/getting_started.rb - :language: ruby - :start-after: step-3 - :end-before: step-4 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/getting_started.py - :start-after: step-3 - :end-before: step-4 - - This code returns output like this: - - .. code-block:: python - - - - - - - -.. only:: pkgcloud - - .. literalinclude:: ../samples/pkgcloud/getting_started.js - :start-after: step-3 - :end-before: step-4 - - This code returns output like this: - - .. code-block:: none - - id: c46104de-d5fd-4567-ab0b-3dcfd117bd99 - name: m2.xlarge - ram: 49152 - disk: 30 - vcpus: 12 - - ... - id: cba9ea52-8e90-468b-b8c2-777a94d81ed3 - name: m1.small - ram: 2048 - disk: 20 - vcpus: 1 - -.. only:: dotnet - - .. literalinclude:: ../samples/dotnet/getting_started.cs - :language: c# - :dedent: 3 - :start-after: step-3 - :end-before: step-4 - - This code returns output like this: - - .. code-block:: none - - Flavor Id: 1 - Flavor Name: m1.tiny - Flavor Id: 2 - Flavor Name: m1.small - Flavor Id: 3 - Flavor Name: m1.medium - Flavor Id: 4 - Flavor Name: m1.large - Flavor Id: 42 - Flavor Name: m1.nano - Flavor Id: 5 - Flavor Name: m1.xlarge - Flavor Id: 84 - Flavor Name: m1.micro - -.. only:: shade - - .. literalinclude:: ../samples/shade/getting_started.py - :language: python - :start-after: step-3 - :end-before: step-4 - - This code returns output like this: - - .. code-block:: none - - HUMAN_ID: true - NAME_ATTR: name - OS-FLV-DISABLED:disabled: false - OS-FLV-EXT-DATA:ephemeral: 0 - disk: 80 - ephemeral: 0 - human_id: supersonic - id: '200' - is_public: true - links: - - href: - https://compute.dream.io:8774/v2/5d013ac5962749a49af7ff18c2fb228c/flavors/200 - rel: self - - href: - https://compute.dream.io:8774/5d013ac5962749a49af7ff18c2fb228c/flavors/200 - rel: bookmark - name: supersonic - os-flavor-access:is_public: true - ram: 2048 - swap: '' - vcpus: 1 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/GettingStarted.java - :language: java - :start-after: step-3 - :end-before: step-4 - -.. only:: openstacksdk - - .. literalinclude:: ../samples/openstacksdk/getting_started.py - :start-after: step-3 - :end-before: step-4 - - You should see output something like this: - - .. code-block:: python - - openstack.compute.v2.flavor.FlavorDetail(attrs={u'name': u'm1.tiny', u'links': [{u'href': u'http://controller:8774/v2/96ff6aa79e60423d9848b70d5475c415/flavors/1', u'rel': u'self'}, {u'href': u'http://controller:8774/96ff6aa79e60423d9848b70d5475c415/flavors/1', u'rel': u'bookmark'}], u'ram': 512, u'OS-FLV-DISABLED:disabled': False, u'vcpus': 1, u'swap': u'', u'os-flavor-access:is_public': True, u'rxtx_factor': 1.0, u'OS-FLV-EXT-DATA:ephemeral': 0, u'disk': 1, u'id': u'1'}, loaded=True) - - openstack.compute.v2.flavor.FlavorDetail(attrs={u'name': u'm1.small', u'links': [{u'href': u'http://controller:8774/v2/96ff6aa79e60423d9848b70d5475c415/flavors/2', u'rel': u'self'}, {u'href': u'http://controller:8774/96ff6aa79e60423d9848b70d5475c415/flavors/2', u'rel': u'bookmark'}], u'ram': 2048, u'OS-FLV-DISABLED:disabled': False, u'vcpus': 1, u'swap': u'', u'os-flavor-access:is_public': True, u'rxtx_factor': 1.0, u'OS-FLV-EXT-DATA:ephemeral': 0, u'disk': 20, u'id': u'2'}, loaded=True) - - openstack.compute.v2.flavor.FlavorDetail(attrs={u'name': u'm1.medium', u'links': [{u'href': u'http://controller:8774/v2/96ff6aa79e60423d9848b70d5475c415/flavors/3', u'rel': u'self'}, {u'href': u'http://controller:8774/96ff6aa79e60423d9848b70d5475c415/flavors/3', u'rel': u'bookmark'}], u'ram': 4096, u'OS-FLV-DISABLED:disabled': False, u'vcpus': 2, u'swap': u'', u'os-flavor-access:is_public': True, u'rxtx_factor': 1.0, u'OS-FLV-EXT-DATA:ephemeral': 0, u'disk': 40, u'id': u'3'}, loaded=True) - - ... - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/getting_started.go - :language: go - :start-after: step-3 - :end-before: step-4 - - This code returns output like this: - - .. code-block:: none - - [{1 1 512 m1.tiny 1 0 1} - {2 20 2048 m1.small 1 0 1} - {3 40 4096 m1.medium 1 0 2} - ... - {84 0 128 m1.micro 1 0 1}] - -Your images and flavors will be different, of course. - -Choose an image and flavor for your instance. You need about 1GB RAM, 1 CPU, -and a 1GB disk. This example uses the Ubuntu image with a small -flavor, which is a safe choice. In subsequent tutorial sections in -this guide, you must change the image and flavor IDs to correspond to -the image and flavor that you choose. - -If the image that you want is not available in your cloud, you can usually -upload one depending on the policy settings of your cloud. For information about -how to upload images, see -`obtaining images `_. - -Set the image and size variables to appropriate values for your cloud. We will -use these variables in later sections. - -First, tell the connection to get a specified image by using the ID of the -image that you picked in the previous section: - -.. only:: fog - - .. literalinclude:: ../samples/fog/getting_started.rb - :language: ruby - :start-after: step-4 - :end-before: step-5 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/getting_started.py - :start-after: step-4 - :end-before: step-5 - - This code returns output like this: - - .. code-block:: python - - - -.. only:: pkgcloud - - .. literalinclude:: ../samples/pkgcloud/getting_started.js - :start-after: step-4 - :end-before: step-5 - - This code returns output like this: - - .. code-block:: none - - id: 2cccbea0-cea9-4f86-a3ed-065c652adda5 - name: Ubuntu 14.04 - created: 2015-08-13T02:25:10Z - updated: 2015-08-13T02:43:38Z - status: ACTIVE - -.. only:: dotnet - - .. literalinclude:: ../samples/dotnet/getting_started.cs - :language: c# - :dedent: 3 - :start-after: step-4 - :end-before: step-5 - - This code returns output like this: - - .. code-block:: none - - Image Id: 97f55846-6ea5-4e9d-b437-bda97586bd0c - Image Name: cirros-0.3.4-x86_64-uec - -.. only:: shade - - .. literalinclude:: ../samples/shade/getting_started.py - :start-after: step-4 - :end-before: step-5 - - This code returns output like this: - - .. code-block:: none - - checksum: da578dd59289a35a0ac7744a0bd85cf5 - container_format: bare - created_at: '2014-10-27T22:05:37Z' - direct_url: - rbd://7e14670e-a6f8-445b-b632-4b79bafc4781/masseffect-images/c55094e9-699c-4da9-95b4-2e2e75f4c66e/snap - disk_format: raw - file: /v2/images/c55094e9-699c-4da9-95b4-2e2e75f4c66e/file - id: c55094e9-699c-4da9-95b4-2e2e75f4c66e - min_disk: 0 - min_ram: 0 - name: Ubuntu-14.04-Trusty - owner: 0bacd8121bb548698f340455b38bf561 - protected: false - schema: /v2/schemas/image - size: 10737418240 - status: active - tags: [] - updated_at: '2014-10-27T22:08:55Z' - visibility: public - -.. only:: openstacksdk - - .. literalinclude:: ../samples/openstacksdk/getting_started.py - :start-after: step-4 - :end-before: step-5 - - You should see output something like this: - - .. code-block:: python - - openstack.image.v1.image.Image(attrs={u'name': u'ubuntu-14.04', u'container_format': u'bare', u'disk_format': u'qcow2', u'checksum': u'6d8f1c8cf05e1fbdc8b543fda1a9fa7f', u'id': u'cb6b7936-d2c5-4901-8678-c88b3a6ed84c', u'size': 258540032}, loaded=True) - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/GettingStarted.java - :language: java - :start-after: step-4 - :end-before: step-5 - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/getting_started.go - :language: go - :start-after: step-4 - :end-before: step-5 - - You should see output like this: - - .. code-block:: none - - &{74e6d1ec-9a08-444c-8518-4f232446386d 2016-02-01T07:20:31Z 0 0 cirros-0.3.4-x86_64-uec 100 ACTIVE 2016-02-01T07:20:32Z} - -Next, tell the script which flavor you want to use: - -.. only:: fog - - .. literalinclude:: ../samples/fog/getting_started.rb - :language: ruby - :start-after: step-5 - :end-before: step-6 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/getting_started.py - :start-after: step-5 - :end-before: step-6 - - This code returns output like this: - - .. code-block:: python - - - -.. only:: pkgcloud - - .. literalinclude:: ../samples/pkgcloud/getting_started.js - :start-after: step-5 - :end-before: step-6 - - This code returns output like this: - - .. code-block:: none - - - id: cba9ea52-8e90-468b-b8c2-777a94d81ed3 - name: m1.small - ram: 2048 - disk: 20 - vcpus: 1 - -.. only:: dotnet - - .. literalinclude:: ../samples/dotnet/getting_started.cs - :language: c# - :dedent: 3 - :start-after: step-5 - :end-before: step-6 - - This code returns output like this: - - .. code-block:: none - - Flavor Id: 2 - Flavor Name: m1.small - -.. only:: shade - - Specify the flavor ID that you would like to use. - - .. literalinclude:: ../samples/shade/getting_started.py - :start-after: step-5 - :end-before: step-6 - - This code returns output like this: - - .. code-block:: none - - HUMAN_ID: true - NAME_ATTR: name - OS-FLV-DISABLED:disabled: false - OS-FLV-EXT-DATA:ephemeral: 0 - disk: 80 - ephemeral: 0 - human_id: subsonic - id: '100' - is_public: true - links: - - href: - https://compute.dream.io:8774/v2/5d013ac5962749a49af7ff18c2fb228c/flavors/100 - rel: self - - href: - https://compute.dream.io:8774/5d013ac5962749a49af7ff18c2fb228c/flavors/100 - rel: bookmark - name: subsonic - os-flavor-access:is_public: true - ram: 1024 - swap: '' - vcpus: 1 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/GettingStarted.java - :language: java - :start-after: step-5 - :end-before: step-6 - -.. only:: openstacksdk - - .. literalinclude:: ../samples/openstacksdk/getting_started.py - :start-after: step-5 - :end-before: step-6 - - You should see output something like this: - - .. code-block:: python - - openstack.compute.v2.flavor.Flavor(attrs={u'name': u'm1.small', u'links': [{u'href': u'http://controller:8774/v2/96ff6aa79e60423d9848b70d5475c415/flavors/2', u'rel': u'self'}, {u'href': u'http://controller:8774/96ff6aa79e60423d9848b70d5475c415/flavors/2', u'rel': u'bookmark'}], u'ram': 2048, u'OS-FLV-DISABLED:disabled': False, u'vcpus': 1, u'swap': u'', u'os-flavor-access:is_public': True, u'rxtx_factor': 1.0, u'OS-FLV-EXT-DATA:ephemeral': 0, u'disk': 20, 'id': u'2'}, loaded=True) - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/getting_started.go - :language: go - :start-after: step-5 - :end-before: step-6 - - You should see output like this: - - .. code-block:: none - - &{1 1 512 m1.tiny 1 0 1} - -Now, you can launch the instance. - -Launch an instance -~~~~~~~~~~~~~~~~~~ - -Use your selected image and flavor to create an instance. - -.. note:: The following instance creation example assumes that you have a - single-tenant network. If you receive the 'Exception: 400 Bad - Request Multiple possible networks found, use a Network ID to be - more specific' error, you have multiple-tenant networks. You - must add a `networks` parameter to the call that creates the - server. See :doc:`/appendix` for details. - -Create the instance. - -.. note:: Your SDK might call an instance a 'node' or 'server'. - -.. only:: fog - - .. literalinclude:: ../samples/fog/getting_started.rb - :language: ruby - :start-after: step-6 - :end-before: step-7 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/getting_started.py - :start-after: step-6 - :end-before: step-7 - - This code returns output like this: - - .. code-block:: python - - - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/GettingStarted.java - :language: java - :start-after: step-6 - :end-before: step-7 - -.. only:: openstacksdk - - .. literalinclude:: ../samples/openstacksdk/getting_started.py - :start-after: step-6 - :end-before: step-7 - - You should see output something like: - - .. code-block:: python - - openstack.compute.v2.server.Server(attrs={'flavorRef': openstack.compute.v2.flavor.Flavor(attrs={u'name': u'm1.small', u'links': [{u'href': u'http://controller:8774/v2/96ff6aa79e60423d9848b70d5475c415/flavors/2', u'rel': u'self'}, {u'href': u'http://controller:8774/96ff6aa79e60423d9848b70d5475c415/flavors/2', u'rel': u'bookmark'}], u'ram': 2048, u'OS-FLV-DISABLED:disabled': False, u'vcpus': 1, u'swap': u'', u'os-flavor-access:is_public': True, u'rxtx_factor': 1.0, u'OS-FLV-EXT-DATA:ephemeral': 0, u'disk': 20, 'id': u'2'}, loaded=True), 'name': 'testing', 'imageRef': openstack.image.v1.image.Image(attrs={u'name': u'ubuntu14.04', u'container_format': u'bare', u'disk_format': u'qcow2', u'checksum': u'6d8f1c8cf05e1fbdc8b543fda1a9fa7f', u'id': u'cb6b7936-d2c5-4901-8678-c88b3a6ed84c', u'size': 258540032}, loaded=True), 'id': u'a1700b84-dc9a-434e-8f7a-40852e97781c'}, loaded=False) - -.. only:: pkgcloud - - .. literalinclude:: ../samples/pkgcloud/getting_started.js - :start-after: step-6 - :end-before: step-7 - - This code returns output like this: - - .. code-block:: none - - 0d7968dc-4bf4-4e01-b822-43c9c1080d77 - -.. only:: dotnet - - .. literalinclude:: ../samples/dotnet/getting_started.cs - :language: c# - :dedent: 3 - :start-after: step-6 - :end-before: step-7 - - This code returns output like this: - - .. code-block:: none - - Instance Id: 4e480ef1-68f0-491f-b237-d9b7f500ef24 at net.openstack.Core.Domain.Link[] - -.. only:: shade - - .. literalinclude:: ../samples/shade/getting_started.py - :start-after: step-6 - :end-before: step-7 - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/getting_started.go - :language: go - :start-after: step-6 - :end-before: step-7 - - You should see output like this: - - .. code-block:: none - - &{739dd964-ae88-461d-9746-f8f1139d20f6 0 map[] map[] map[] map[] ... RPUkTFM8fynn [map[name:default]]} - -If you list existing instances: - -.. only:: fog - - .. literalinclude:: ../samples/fog/getting_started.rb - :language: ruby - :start-after: step-7 - :end-before: step-8 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/getting_started.py - :start-after: step-7 - :end-before: step-8 - -.. only:: pkgcloud - - .. literalinclude:: ../samples/pkgcloud/getting_started.js - :start-after: step-7 - :end-before: step-8 - -.. only:: dotnet - - .. literalinclude:: ../samples/dotnet/getting_started.cs - :language: c# - :dedent: 3 - :start-after: step-7 - :end-before: step-8 - -.. only:: shade - - .. literalinclude:: ../samples/shade/getting_started.py - :start-after: step-7 - :end-before: step-8 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/GettingStarted.java - :language: java - :start-after: step-7 - :end-before: step-8 - -.. only:: openstacksdk - - .. literalinclude:: ../samples/openstacksdk/getting_started.py - :start-after: step-7 - :end-before: step-8 - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/getting_started.go - :language: go - :start-after: step-7 - :end-before: step-8 - -The new instance appears. - -.. only:: libcloud - - .. code-block:: python - - - -.. only:: openstacksdk - - .. code-block:: python - - openstack.compute.v2.server.ServerDetail(attrs={u'OS-EXT-STS:task_state': u'scheduling', u'addresses': {}, u'links': [{u'href': u'http://controller:8774/v2/96ff6aa79e60423d9848b70d5475c415/servers/a1700b84-dc9a-434e-8f7a-40852e97781c', u'rel': u'self'}, {u'href': u'http://controller:8774/96ff6aa79e60423d9848b70d5475c415/servers/a1700b84-dc9a-434e-8f7a-40852e97781c', u'rel': u'bookmark'}], u'image': {u'id': u'cb6b7936-d2c5-4901-8678-c88b3a6ed84c', u'links': [{u'href': u'http://controller:8774/96ff6aa79e60423d9848b70d5475c415/images/cb6b7936-d2c5-4901-8678-c88b3a6ed84c', u'rel': u'bookmark'}]}, u'OS-EXT-STS:vm_state': u'building', u'OS-SRV-USG:launched_at': None, u'flavor': {u'id': u'2', u'links': [{u'href': u'http://controller:8774/96ff6aa79e60423d9848b70d5475c415/flavors/2', u'rel': u'bookmark'}]}, u'id': u'a1700b84-dc9a-434e-8f7a-40852e97781c', u'user_id': u'59f76712914b44819cf311af43946079', 'imageRef': openstack.compute.v2.image.Image(attrs={u'id': u'cb6b7936-d2c5-4901-8678-c88b3a6ed84c', u'links': [{u'href': u'http://controller:8774/96ff6aa79e60423d9848b70d5475c415/images/cb6b7936-d2c5-4901-8678-c88b3a6ed84c', u'rel': u'bookmark'}]}, loaded=False), u'OS-DCF:diskConfig': u'MANUAL', u'accessIPv4': u'', u'accessIPv6': u'', u'progress': 0, u'OS-EXT-STS:power_state': 0, u'OS-EXT-AZ:availability_zone': u'nova', u'config_drive': u'', u'status': u'BUILD', u'updated': u'2015-10-12T13:45:37Z', u'hostId': u'', u'OS-SRV-USG:terminated_at': None, u'key_name': None, 'flavorRef': openstack.compute.v2.flavor.Flavor(attrs={u'id': u'2', u'links': [{u'href': u'http://controller:8774/96ff6aa79e60423d9848b70d5475c415/flavors/2', u'rel': u'bookmark'}]}, loaded=False), u'name': u'testing', u'created': u'2015-10-12T13:45:37Z', u'tenant_id': u'96ff6aa79e60423d9848b70d5475c415', u'os-extended-volumes:volumes_attached': [], u'metadata': {}}, loaded=True) - -.. only:: pkgcloud - - .. code-block:: none - - ... - id: '0d7968dc-4bf4-4e01-b822-43c9c1080d77', - name: 'testing', - status: 'PROVISIONING', - progress: 0, - imageId: '2cccbea0-cea9-4f86-a3ed-065c652adda5', - adminPass: undefined, - addresses: {}, - metadata: {}, - flavorId: '3', - hostId: 'b6ee757ed678e8c6589ae8cce405eeded89ac914daec73e45a5c50b8', - created: '2015-06-30T08:17:39Z', - updated: '2015-06-30T08:17:44Z', - ... - -.. only:: dotnet - - .. code-block:: none - - Instance Id: 4e480ef1-68f0-491f-b237-d9b7f500ef24 at net.openstack.Core.Domain.Link[] - -.. only:: shade - - .. code-block:: none - - HUMAN_ID: true - NAME_ATTR: name - OS-DCF:diskConfig: MANUAL - OS-EXT-AZ:availability_zone: iad-1 - OS-EXT-STS:power_state: 1 - OS-EXT-STS:task_state: null - OS-EXT-STS:vm_state: active - OS-SRV-USG:launched_at: '2015-07-20T20:31:10.000000' - OS-SRV-USG:terminated_at: null - accessIPv4: '' - accessIPv6: '' - addresses: - private-network: - - OS-EXT-IPS-MAC:mac_addr: fa:16:3e:60:f5:cd - OS-EXT-IPS:type: fixed - addr: 2607:f298:6050:4e14:f816:3eff:fe60:f5cd - version: 6 - - OS-EXT-IPS-MAC:mac_addr: fa:16:3e:60:f5:cd - OS-EXT-IPS:type: fixed - addr: 10.10.10.14 - version: 4 - config_drive: '' - created: '2015-07-20T20:30:23Z' - flavor: - id: '100' - links: - - href: - https://compute.dream.io:8774/5d013ac5962749a49af7ff18c2fb228c/flavors/100 - rel: bookmark - hostId: f71865b497e6fa71063e292b11846eb64b5a41cd5c00fbb7465b6a48 - human_id: testing - id: 67ecebdc-daff-4d84-bd04-bc76c67b48ec - image: - id: c55094e9-699c-4da9-95b4-2e2e75f4c66e - links: - - href: - https://compute.dream.io:8774/5d013ac5962749a49af7ff18c2fb228c/images/c55094e9-699c-4da9-95b4-2e2e75f4c66e - rel: bookmark - key_name: null - links: - - href: - https://compute.dream.io:8774/v2/5d013ac5962749a49af7ff18c2fb228c/servers/67ecebdc-daff-4d84-bd04-bc76c67b48ec - rel: self - - href: - https://compute.dream.io:8774/5d013ac5962749a49af7ff18c2fb228c/servers/67ecebdc-daff-4d84-bd04-bc76c67b48ec - rel: bookmark - metadata: {} - name: testing - networks: - private-network: - - 2607:f298:6050:4e14:f816:3eff:fe60:f5cd - - 10.10.10.14 - os-extended-volumes:volumes_attached: [] - progress: 0 - security_groups: - - name: default - status: ACTIVE - tenant_id: 5d013ac5962749a49af7ff18c2fb228c - updated: '2015-07-20T20:31:10Z' - user_id: bfd3dbf1c8a242cd90884408de547bb9 - -.. only:: gophercloud - - .. code-block:: none - - [... - {739dd964-ae88-461d-9746-f8f1139d20f6 061fdb617b6c4bdf8694bf5b0d8eefdd bb210009e42c4b509ba75893a757c8e5 testing 2016-02-16T07:16:52Z 2016-02-16T07:16:52Z 2d2f4bba90498fd46c72e7d019dde9189c36637b73e71e1e652d75db BUILD 0 ... [map[name:default]]} - ...] - -Before you continue, you must do one more thing. - -Destroy an instance -~~~~~~~~~~~~~~~~~~~ - -Cloud resources, such as running instances that you no longer use, can -cost money. To avoid unexpected expenses, destroy cloud resources. - -.. only:: fog - - .. literalinclude:: ../samples/fog/getting_started.rb - :language: ruby - :start-after: step-8 - :end-before: step-9 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/getting_started.py - :start-after: step-8 - :end-before: step-9 - -.. only:: pkgcloud - - .. literalinclude:: ../samples/pkgcloud/getting_started.js - :start-after: step-8 - :end-before: step-9 - -.. only:: dotnet - - .. literalinclude:: ../samples/dotnet/getting_started.cs - :language: c# - :dedent: 3 - :start-after: step-8 - :end-before: step-9 - -.. only:: shade - - .. literalinclude:: ../samples/shade/getting_started.py - :start-after: step-8 - :end-before: step-9 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/GettingStarted.java - :language: java - :start-after: step-8 - :end-before: step-9 - -.. only:: openstacksdk - - .. literalinclude:: ../samples/openstacksdk/getting_started.py - :start-after: step-8 - :end-before: step-9 - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/getting_started.go - :language: go - :start-after: step-8 - :end-before: step-9 - -If you list the instances again, the instance disappears. - -Leave your shell open to use it for another instance deployment in this -section. - -Deploy the application to a new instance -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Now that you know how to create and delete instances, you can deploy the -sample application. The instance that you create for the application is -similar to the first instance that you created, but this time, we introduce a -few extra concepts. - -.. note:: Internet connectivity from your cloud instance is required - to download the application. - -When you create an instance for the application, you want to give it a bit -more information than you supplied to the bare instance that you just created -and deleted. We will go into more detail in later sections, but for now, -simply create the following resources so that you can feed them to the -instance: - -* A key pair. To access your instance, you must import an SSH public key into - OpenStack to create a key pair. OpenStack installs this key pair on the new - instance. Typically, your public key is written to :code:`.ssh/id_rsa.pub`. If - you do not have an SSH public key file, follow - `these instructions `_ first. - We will cover these instructions in depth in :doc:`/introduction`. - -In the following example, set :code:`pub_key_file` to the location of -your public SSH key file. - -.. only:: fog - - .. literalinclude:: ../samples/fog/getting_started.rb - :language: ruby - :start-after: step-9 - :end-before: step-10 - - -.. only:: libcloud - - .. note:: If you see an IOError, you may need to change ``~/.ssh/`` to - ``/home/{USERNAME}/.ssh/``, using an absolute path. - - .. literalinclude:: ../samples/libcloud/getting_started.py - :start-after: step-9 - :end-before: step-10 - - :: - - - -.. only:: pkgcloud - - .. literalinclude:: ../samples/pkgcloud/getting_started.js - :start-after: step-9 - :end-before: step-10 - -.. only:: shade - - .. literalinclude:: ../samples/shade/getting_started.py - :start-after: step-9 - :end-before: step-10 - -.. only:: jclouds - - If a key pair of the given name is not found then one is generated. - - .. literalinclude:: ../samples/jclouds/GettingStarted.java - :language: java - :start-after: step-9 - :end-before: step-10 - -.. only:: openstacksdk - - .. literalinclude:: ../samples/openstacksdk/getting_started.py - :start-after: step-9 - :end-before: step-10 - - .. code-block:: python - - openstack.compute.v2.keypair.Keypair(attrs={u'public_key': u'ssh-rsa ABAAABAQCyyzkyaPf.....', u'name': u'demokey', u'fingerprint': aa:bb:cc:... '}, loaded=True) - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/getting_started.go - :language: go - :start-after: step-9 - :end-before: step-10 - -* Network access. By default, OpenStack filters all traffic. You must create - a security group and apply it to your instance. The security group allows HTTP - and SSH access. We will go into more detail in :doc:`/introduction`. - -.. only:: fog - - .. literalinclude:: ../samples/fog/getting_started.rb - :language: ruby - :start-after: step-10 - :end-before: step-11 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/getting_started.py - :start-after: step-10 - :end-before: step-11 - -.. only:: pkgcloud - - .. literalinclude:: ../samples/pkgcloud/getting_started.js - :start-after: step-10 - :end-before: step-11 - -.. only:: shade - - .. literalinclude:: ../samples/shade/getting_started.py - :start-after: step-10 - :end-before: step-11 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/GettingStarted.java - :language: java - :start-after: step-10 - :end-before: step-11 - -.. only:: openstacksdk - - .. literalinclude:: ../samples/openstacksdk/getting_started.py - :start-after: step-10 - :end-before: step-11 - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/getting_started.go - :language: go - :start-after: step-10 - :end-before: step-11 - -* Userdata. During instance creation, you can provide userdata to OpenStack to - configure instances after they boot. The cloud-init service applies the - user data to an instance. You must pre-install the cloud-init service on your - chosen image. We will go into more detail in :doc:`/introduction`. - -.. only:: fog - - .. literalinclude:: ../samples/fog/getting_started.rb - :language: ruby - :start-after: step-11 - :end-before: step-12 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/getting_started.py - :start-after: step-11 - :end-before: step-12 - -.. only:: pkgcloud - - .. literalinclude:: ../samples/pkgcloud/getting_started.js - :start-after: step-11 - :end-before: step-12 - -.. only:: shade - - .. literalinclude:: ../samples/shade/getting_started.py - :start-after: step-11 - :end-before: step-12 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/GettingStarted.java - :language: java - :start-after: step-11 - :end-before: step-12 - -.. only:: openstacksdk - - .. note:: User data in openstacksdk must be encoded to Base64 - - .. literalinclude:: ../samples/openstacksdk/getting_started.py - :start-after: step-11 - :end-before: step-12 - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/getting_started.go - :language: go - :start-after: step-11 - :end-before: step-12 - -Now, you can boot and configure the instance. - -Boot and configure an instance ------------------------------- - -Use the image, flavor, key pair, and userdata to create an instance. -After you request the instance, wait for it to build. - -.. only:: fog - - .. literalinclude:: ../samples/fog/getting_started.rb - :language: ruby - :start-after: step-12 - :end-before: step-13 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/getting_started.py - :start-after: step-12 - :end-before: step-13 - -.. only:: pkgcloud - - .. literalinclude:: ../samples/pkgcloud/getting_started.js - :start-after: step-12 - :end-before: step-13 - -.. only:: shade - - The shade framework can select and assign a free floating IP quickly - - .. literalinclude:: ../samples/shade/getting_started.py - :start-after: step-12 - :end-before: step-13 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/GettingStarted.java - :language: java - :start-after: step-12 - :end-before: step-13 - -.. only:: openstacksdk - - .. literalinclude:: ../samples/openstacksdk/getting_started.py - :start-after: step-12 - :end-before: step-13 - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/getting_started.go - :language: go - :start-after: step-12 - :end-before: step-13 - -When the instance boots, the `ex_userdata` variable value instructs the -instance to deploy the Fractals application. - -Associate a floating IP for external connectivity -------------------------------------------------- - -We cover networking in detail in :doc:`/networking`. - -To see the application running, you must know where to look for it. By -default, your instance has outbound network access. To make your -instance reachable from the Internet, you need an IP address. By -default in some cases, your instance is provisioned with a publicly -rout-able IP address. In this case, you see an IP address listed -under `public_ips` or `private_ips` when you list the instances. If -not, you must create and attach a floating IP address to your -instance. - -.. only:: fog - - .. literalinclude:: ../samples/fog/getting_started.rb - :language: ruby - :start-after: step-13 - :end-before: step-14 - - This gets an IP address that you can assign to your instance: - - .. literalinclude:: ../samples/fog/getting_started.rb - :language: ruby - :start-after: step-14 - :end-before: step-15 - -.. only:: libcloud - - To see whether a private IP address is assigned to your instance: - - .. literalinclude:: ../samples/libcloud/getting_started.py - :start-after: step-13 - :end-before: step-14 - - If one is assigned, users can use this address to access the instance on - some OpenStack clouds. - - To determine whether a public IP address is assigned to your instance: - - .. literalinclude:: ../samples/libcloud/getting_started.py - :start-after: step-14 - :end-before: step-15 - - If one is assigned, users can use this address to access the instance. - - To create a floating IP address to use with your instance: - - Use :code:`ex_list_floating_ip_pools()` and select the first floating IP - address pool. Allocate this pool to your project and use it to get a - floating IP address. - - .. literalinclude:: ../samples/libcloud/getting_started.py - :start-after: step-15 - :end-before: step-16 - - This code returns the floating IP address: - - :: - - , driver=> - - Attach the floating IP address to the instance: - - .. literalinclude:: ../samples/libcloud/getting_started.py - :start-after: step-16 - :end-before: step-17 - -.. only:: pkgcloud - - Use :code:`getFloatingIps` to check for unused addresses. Select the first - available address. Otherwise, use :code:`allocateNewFloatingIp` to - allocate a floating IP to your project from the default address pool. - - .. literalinclude:: ../samples/pkgcloud/getting_started.js - :start-after: step-13 - :end-before: step-14 - - This code returns the floating IP address: - - :: - - 203.0.113.101 - - Attach the floating IP address to the instance: - - .. literalinclude:: ../samples/pkgcloud/getting_started.js - :start-after: step-14 - :end-before: step-15 - -.. only:: shade - - .. literalinclude:: ../samples/shade/getting_started.py - :start-after: step-13 - :end-before: step-14 - -.. only:: jclouds - - Allocate the floating IP address: - - .. literalinclude:: ../samples/jclouds/GettingStarted.java - :language: java - :start-after: step-13 - :end-before: step-14 - - Then attach it to the instance: - - .. literalinclude:: ../samples/jclouds/GettingStarted.java - :language: java - :start-after: step-14 - :end-before: step-15 - -.. only:: openstacksdk - - .. note:: For this example, we take a floating IP pool from the 'public' - network, which is your external network. - - List all available floating IPs for this project and select the first free - one. Allocate a new floating IP if none is available. - - .. literalinclude:: ../samples/openstacksdk/getting_started.py - :start-after: step-13 - :end-before: step-14 - - This code returns the floating IP address: - - .. code-block:: python - - openstack.network.v2.floating_ip.FloatingIP(attrs={u'router_id': None, u'status': u'DOWN', u'tenant_id': u'96ff6aa79e60423d9848b70d5475c415', u'floating_network_id': u'0e43db46-8fd9-4ef1-8826-4cf9e809aede', u'fixed_ip_address': None, u'floating_ip_address': u'203.0.113.101', u'port_id': None, u'id': u'da890b1e-0afa-4724-9af6-0e5ab9cc33dd'}, loaded=True) - - You can then attach it to the instance: - - .. literalinclude:: ../samples/openstacksdk/getting_started.py - :start-after: step-14 - :end-before: step-15 - -.. only:: gophercloud - - To see whether a private IP address is assigned to your instance: - - .. literalinclude:: ../samples/gophercloud/getting_started.go - :language: go - :start-after: step-13 - :end-before: step-14 - - - - If one is assigned, users can use this address to access the instance on - some OpenStack clouds. - - To determine whether a public IP address is assigned to your instance: - - .. literalinclude:: ../samples/gophercloud/getting_started.go - :language: go - :start-after: step-14 - :end-before: step-15 - - If one is assigned, users can use this address to access the instance. - - To create a floating IP address to use with your instance: - - Use network service client to select the first floating IP address pool. - Allocate this pool to your project and use it to get a floating IP address. - - .. literalinclude:: ../samples/gophercloud/getting_started.go - :language: go - :start-after: step-15 - :end-before: step-16 - - Attach the floating IP address to the instance: - - .. literalinclude:: ../samples/gophercloud/getting_started.go - :language: go - :start-after: step-16 - :end-before: step-17 - -Run the script to start the deployment. - -Access the application ----------------------- - -Deploying application data and configuration to the instance can take some -time. Consider enjoying a cup of coffee while you wait. After the application -deploys, you can use your preferred browser to visit the awesome graphic -interface at the following link. - -.. only:: fog - - .. literalinclude:: ../samples/fog/getting_started.rb - :language: ruby - :start-after: step-15 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/getting_started.py - :start-after: step-17 - -.. only:: pkgcloud - - .. literalinclude:: ../samples/pkgcloud/getting_started.js - :start-after: step-15 - -.. only:: shade - - .. literalinclude:: ../samples/shade/getting_started.py - :start-after: step-15 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/GettingStarted.java - :language: java - :start-after: step-15 - :end-before: step-16 - - -.. only:: openstacksdk - - .. literalinclude:: ../samples/openstacksdk/getting_started.py - :start-after: step-15 - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/getting_started.go - :language: go - :start-after: step-17 - -.. note:: If you do not use floating IP addresses, substitute another IP - address, as appropriate. - -.. figure:: images/screenshot_webinterface.png - :width: 800px - :align: center - :height: 600px - :alt: screenshot of the webinterface - :figclass: align-center - -Next steps -~~~~~~~~~~ - -Do not worry if these concepts are not yet completely clear. In -:doc:`/introduction`, we explore these concepts in more detail. - -* :doc:`/scaling_out`: Learn how to scale your application. -* :doc:`/durability`: Learn how to use Object Storage to make your application durable. -* :doc:`/block_storage`: Migrate the database to block storage, or use - the database-as-a-service component. -* :doc:`/orchestration`: Automatically orchestrate your application. -* :doc:`/networking`: Learn about complex networking. -* :doc:`/advice`: Get advice about operations. -* :doc:`/craziness`: Learn some crazy things that you might not think to do ;) - -.. todo:: List the next sections here or simply reference introduction. - -Complete code sample -~~~~~~~~~~~~~~~~~~~~ - -The following file contains all of the code from this section of the -tutorial. This comprehensive code sample lets you view and run the code -as a single script. - -Before you run this script, confirm that you have set your authentication -information, the flavor ID, and image ID. - -.. only:: fog - - .. literalinclude:: ../samples/fog/getting_started.rb - :language: ruby - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/getting_started.py - :language: python - -.. only:: pkgcloud - - .. literalinclude:: ../samples/pkgcloud/getting_started.js - :language: javascript - -.. only:: dotnet - - .. literalinclude:: ../samples/dotnet/getting_started.cs - :language: c# - -.. only:: shade - - .. literalinclude:: ../samples/shade/getting_started.py - :language: python - -.. only:: jclouds - - **GettingStarted.java:** - - .. literalinclude:: ../samples/jclouds/GettingStarted.java - :language: java - -.. only:: openstacksdk - - .. literalinclude:: ../samples/openstacksdk/getting_started.py - :language: python - -.. only:: gophercloud - - .. literalinclude:: ../samples/gophercloud/getting_started.go - :language: go diff --git a/firstapp/source/images/architecture.dot b/firstapp/source/images/architecture.dot deleted file mode 100644 index 2e585e790..000000000 --- a/firstapp/source/images/architecture.dot +++ /dev/null @@ -1,9 +0,0 @@ -digraph { - API -> Database [color=green]; - API -> Database [color=orange]; - Database -> API [color=red]; - API -> Webinterface [color=red]; - API -> "Queue Service" [color=orange]; - "Queue Service" -> Worker [color=orange]; - Worker -> API [color=green]; -} diff --git a/firstapp/source/images/fractal-example.png b/firstapp/source/images/fractal-example.png deleted file mode 100644 index dd756f3ac..000000000 Binary files a/firstapp/source/images/fractal-example.png and /dev/null differ diff --git a/firstapp/source/images/jclouds/screenshot_maven_layout.png b/firstapp/source/images/jclouds/screenshot_maven_layout.png deleted file mode 100644 index b1e691b3b..000000000 Binary files a/firstapp/source/images/jclouds/screenshot_maven_layout.png and /dev/null differ diff --git a/firstapp/source/images/network-topology.png b/firstapp/source/images/network-topology.png deleted file mode 100644 index e42767175..000000000 Binary files a/firstapp/source/images/network-topology.png and /dev/null differ diff --git a/firstapp/source/images/screenshot_webinterface.png b/firstapp/source/images/screenshot_webinterface.png deleted file mode 100644 index 053d24163..000000000 Binary files a/firstapp/source/images/screenshot_webinterface.png and /dev/null differ diff --git a/firstapp/source/images/work_queue.dot b/firstapp/source/images/work_queue.dot deleted file mode 100644 index 8a63a79d7..000000000 --- a/firstapp/source/images/work_queue.dot +++ /dev/null @@ -1,7 +0,0 @@ -digraph { - rankdir=LR; - Queue [shape="doublecircle"]; - API -> Queue; - Queue -> "Worker 1"; - Queue -> "Worker 2"; -} diff --git a/firstapp/source/index.rst b/firstapp/source/index.rst deleted file mode 100644 index e306c9ee1..000000000 --- a/firstapp/source/index.rst +++ /dev/null @@ -1,20 +0,0 @@ -======================================== -Writing your first OpenStack application -======================================== - -Contents -~~~~~~~~ - -.. toctree:: - :maxdepth: 2 - - getting_started - introduction - scaling_out - durability - block_storage - orchestration - networking - advice - craziness - appendix diff --git a/firstapp/source/introduction.rst b/firstapp/source/introduction.rst deleted file mode 100644 index 973730bb4..000000000 --- a/firstapp/source/introduction.rst +++ /dev/null @@ -1,961 +0,0 @@ -===================================================== -Introduction to the fractals application architecture -===================================================== - -This section introduces the application architecture and explains how -it was designed to take advantage of cloud features in general and -OpenStack in particular. It also describes some commands in the -previous section. - -.. todo:: (for Nick) Improve the architecture discussion. - -.. only:: dotnet - - .. warning:: This section has not yet been completed for the .NET SDK. - -.. only:: fog - - .. highlight:: ruby - -.. only:: pkgcloud - - .. warning:: This section has not yet been completed for the pkgcloud SDK. - -.. only:: phpopencloud - - .. warning:: This section has not yet been completed for the - PHP-OpenCloud SDK. - - -Cloud application architecture principles -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Cloud applications typically share several design principles. -These principles influenced the design of the Fractals application. - -.. todo:: Do you want to state the core design principles or assume - the reader can follow below. - - -Modularity and micro-services ------------------------------ - -`Micro-services `_ are an -important design pattern that helps achieve application modularity. Separating -logical application functions into independent services simplifies maintenance -and re-use. Decoupling components also makes it easier to selectively scale -individual components, as required. Further, application modularity is a -required feature of applications that scale out well and are fault tolerant. - -Scalability ------------ - -Cloud applications often use many small instances rather than a few large -instances. Provided that an application is sufficiently modular, you can -easily distribute micro-services across as many instances as required. This -architecture enables an application to grow past the limit imposed by the -maximum size of an instance. It is like trying to move a large number of people -from one place to another; there is only so many people you can put on the -largest bus, but you can use an unlimited number of buses or small cars, which -provide just the capacity you need - and no more. - -Fault tolerance ---------------- - -In cloud programming, there is a well-known analogy known as "cattle vs -pets". If you have not heard it before, it goes like this: - -When you deal with pets, you name and care for them. If they get sick, -you nurse them back to health, which can be difficult and very time -consuming. When you deal with cattle, you attach a numbered tag to -their ear. If they get sick, you put them down and move on. - -That, as it happens, is the new reality of programming. Applications -and systems used to be created on large, expensive servers, cared for -by operations staff dedicated to keeping them healthy. If something -went wrong with one of those servers, the staff's job was to do -whatever it took to make it right again and save the server and the -application. - -In cloud programming, it is very different. Rather than large, -expensive servers, you have virtual machines that are disposable; if -something goes wrong, you shut the server down and spin up a new one. -There is still operations staff, but rather than nursing individual -servers back to health, their job is to monitor the health of the -overall system. - -There are definite advantages to this architecture. It is easy to get a -"new" server, without any of the issues that inevitably arise when a -server has been up and running for months, or even years. - -As with classical infrastructure, failures of the underpinning cloud -infrastructure (hardware, networks, and software) are unavoidable. -When you design for the cloud, it is crucial that your application is -designed for an environment where failures can happen at any moment. -This may sound like a liability, but it is not; by designing your -application with a high degree of fault tolerance, you also make it -resilient, and more adaptable, in the face of change. - -Fault tolerance is essential to the cloud-based application. - -Automation ----------- - -If an application is meant to automatically scale up and down to meet -demand, it is not feasible have any manual steps in the process of -deploying any component of the application. Automation also decreases -the time to recovery for your application in the event of component -failures, increasing fault tolerance and resilience. - -Programmatic interfaces (APIs) ------------------------------- - -Like many cloud applications, the Fractals application has a -`RESTful API `_. -You can connect to it directly and generate fractals, or you can integrate it -as a component of a larger application. Any time a standard interface such as -an API is available, automated testing becomes much more feasible, increasing -software quality. - -Fractals application architecture -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The Fractals application was designed with the principles of the previous -subsection in mind. You will note that in :doc:`getting_started`, we deployed the -application in an all-in-one style, on a single virtual machine. This is not -a good practice, but because the application uses micro-services to decouple -logical application functions, we can change this easily. - -.. graphviz:: images/architecture.dot - -Message queues are used to facilitate communication between the -Fractal application services. The Fractal application uses a `work queue -`_ (or -task queue) to distribute tasks to the worker services. - -Message queues work in a way similar to a queue (or a line, for those -of us on the other side of the ocean) in a bank being served by -multiple clerks. The message queue in our application provides a feed -of work requests that can be taken one-at-a-time by worker services, -whether there is a single worker service or hundreds of them. - -This is a `useful pattern `_ -for many cloud applications that have long lists of requests coming in and a -pool of resources from which to service them. This also means that a -worker may crash and the tasks will be processed by other workers. - -.. note:: The `RabbitMQ getting started tutorial - `_ provides a - great introduction to message queues. - -.. graphviz:: images/work_queue.dot - -The worker service consumes messages from the work queue and then processes -them to create the corresponding fractal image file. - -Of course there is also a web interface which offers a more human -friendly way of accessing the API to view the created fractal images, -and a simple command line interface. - -.. figure:: images/screenshot_webinterface.png - :width: 800px - :align: center - :height: 600px - :alt: screenshot of the webinterface - :figclass: align-center - - -There are also multiple storage back ends (to store the generated -fractal images) and a database component (to store the state of -tasks), but we will talk about those in :doc:`/durability` and -:doc:`/block_storage` respectively. - -How the Fractals application interacts with OpenStack ------------------------------------------------------ - -.. todo:: Description of the components of OpenStack and how they - relate to the Fractals application and how it runs on the cloud. - TF notes this is already covered in the guide, just split - across each section. Adding it here forces the - introduction of block storage, object storage, orchestration - and neutron networking too early, which could seriously - confuse users who do not have these services in their - cloud. Therefore, this should not be done here. - - -The magic revisited -~~~~~~~~~~~~~~~~~~~ - -So what exactly was that request doing at the end of the previous section? -Let us look at it again. In this subsection, we are just explaining what you -have already done in the previous section; you do not need to run these -commands again. - -.. only:: shade - - .. literalinclude:: ../samples/shade/introduction.py - :language: python - :start-after: step-1 - :end-before: step-2 - -.. only:: fog - - .. literalinclude:: ../samples/fog/introduction.rb - :start-after: step-1 - :end-before: step-2 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/introduction.py - :start-after: step-1 - :end-before: step-2 - -.. only:: jclouds - - Note that we will be showing the commands in a more idiomatic Java way: - as methods on a class. - - .. literalinclude:: ../samples/jclouds/Introduction.java - :language: java - :start-after: step-1 - :end-before: step-1-end - -.. only:: openstacksdk - - .. literalinclude:: ../samples/openstacksdk/introduction.py - :start-after: step-1 - :end-before: step-2 - -We explained image and flavor in :doc:`getting_started`, so in the following -sections, we will explain the other parameters in detail, including -:code:`ex_userdata` (cloud-init) and :code:`ex_keyname` (key pairs). - -.. only:: openstacksdk - - .. note:: In openstacksdk parameter :code:`ex_userdata` is called :code:`user_data` - and parameter :code:`ex_keyname` is called :code:`key_name`. - - -Introduction to cloud-init --------------------------- - -`cloud-init `_ is a tool -that performs instance configuration tasks during the boot of a cloud -instance, and comes installed on most cloud -images. :code:`ex_userdata`, which was passed to :code:`create_node`, -is the configuration data passed to cloud-init. - -In this case, we are presenting a shell script as the `userdata -`_. -When :code:`create_node` creates the instance, :code:`cloud-init` -executes the shell script in the :code:`userdata` variable. - -When an SSH public key is provided during instance creation, -cloud-init installs this key on a user account. (The user name -varies between cloud images.) See the `Obtaining Images `_ -section of the image guide for guidance about which user name you -should use when SSHing. If you still have problems logging in, ask -your cloud provider to confirm the user name. - -.. only:: shade - - .. literalinclude:: ../samples/shade/introduction.py - :language: python - :start-after: step-2 - :end-before: step-3 - -.. only:: fog - - .. literalinclude:: ../samples/fog/introduction.rb - :start-after: step-2 - :end-before: step-3 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/introduction.py - :start-after: step-2 - :end-before: step-3 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/Introduction.java - :language: java - :start-after: step-2 - :end-before: step-2-end - -.. only:: openstacksdk - - .. literalinclude:: ../samples/openstacksdk/introduction.py - :start-after: step-2 - :end-before: step-3 - - .. note:: User data in openstacksdk must be encoded to Base64. - -After the instance is created, cloud-init downloads and runs a script called -:code:`install.sh`. This script installs the Fractals application. Cloud-init -can consume bash scripts and a number of different types of data. You -can even provide multiple types of data. You can find more information -about cloud-init in the `official documentation `_. - -Introduction to key pairs -------------------------- - -Security is important when it comes to your instances; you can not have just -anyone accessing them. To enable logging into an instance, you must provide -the public key of an SSH key pair during instance creation. In section one, -you created and uploaded a key pair to OpenStack, and cloud-init installed it -for the user account. - -Even with a key in place, however, you must have the appropriate -security group rules in place to access your instance. - -Introduction to security groups -------------------------------- - -Security groups are sets of network access rules that are applied to -an instance's networking. By default, only egress (outbound) traffic -is allowed. You must explicitly enable ingress (inbound) network -access by creating a security group rule. - -.. warning:: Removing the egress rule created by OpenStack will cause - your instance networking to break. - -Start by creating a security group for the all-in-one instance and -adding the appropriate rules, such as HTTP (TCP port 80) and SSH (TCP -port 22): - -.. only:: shade - - .. literalinclude:: ../samples/shade/introduction.py - :language: python - :start-after: step-3 - :end-before: step-4 - -.. only:: fog - - .. literalinclude:: ../samples/fog/introduction.rb - :start-after: step-3 - :end-before: step-4 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/introduction.py - :start-after: step-3 - :end-before: step-4 - - .. note:: :code:`ex_create_security_group_rule()` takes ranges of - ports as input. This is why ports 80 and 22 are passed - twice. - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/Introduction.java - :language: java - :start-after: step-3 - :end-before: step-3-end - -.. only:: openstacksdk - - .. literalinclude:: ../samples/openstacksdk/introduction.py - :start-after: step-3 - :end-before: step-4 - -You can list available security groups with: - -.. only:: shade - - .. literalinclude:: ../samples/shade/introduction.py - :language: python - :start-after: step-4 - :end-before: step-5 - -.. only:: fog - - .. literalinclude:: ../samples/fog/introduction.rb - :start-after: step-4 - :end-before: step-5 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/introduction.py - :start-after: step-4 - :end-before: step-5 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/Introduction.java - :language: java - :start-after: step-4 - :end-before: step-4-end - -.. only:: openstacksdk - - .. literalinclude:: ../samples/openstacksdk/introduction.py - :start-after: step-4 - :end-before: step-5 - -Once you have created a rule or group, you can also delete it: - -.. only:: shade - - .. literalinclude:: ../samples/shade/introduction.py - :language: python - :start-after: step-5 - :end-before: step-6 - -.. only:: fog - - .. literalinclude:: ../samples/fog/introduction.rb - :start-after: step-5 - :end-before: step-6 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/introduction.py - :start-after: step-5 - :end-before: step-6 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/Introduction.java - :language: java - :start-after: step-5 - :end-before: step-5-end - -.. only:: openstacksdk - - .. literalinclude:: ../samples/openstacksdk/introduction.py - :start-after: step-5 - :end-before: step-6 - -To see which security groups apply to an instance, you can: - -.. only:: shade - - .. literalinclude:: ../samples/shade/introduction.py - :language: python - :start-after: step-6 - :end-before: step-7 - - .. code-block:: none - - name: 'all-in-one', - description: 'network access for all-in-one application.', - security_group_rules: - - direction: 'ingress', - protocol': 'tcp', - remote_ip_prefix: '0.0.0.0/0', - port_range_max: 22, - security_group_id: '83aa1bf9-564a-47da-bb46-60cd1c63cc84', - port_range_min: 22, - ethertype: 'IPv4', - id: '5ff0008f-a02d-4b40-9719-f52c77dfdab0', - - direction: 'ingress', - protocol: 'tcp', - remote_ip_prefix: '0.0.0.0/0', - port_range_max: 80, - security_group_id: '83aa1bf9-564a-47da-bb46-60cd1c63cc84', - port_range_min: 80, - ethertype: 'IPv4', - id: 'c2539e49-b110-4657-bf0a-7a221f5e9e6f', - id: '83aa1bf9-564a-47da-bb46-60cd1c63cc84' - - -.. only:: fog - - .. literalinclude:: ../samples/fog/introduction.rb - :start-after: step-6 - :end-before: step-7 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/introduction.py - :start-after: step-6 - :end-before: step-7 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/Introduction.java - :language: java - :start-after: step-6 - :end-before: step-6-end - -.. only:: openstacksdk - - .. literalinclude:: ../samples/openstacksdk/introduction.py - :start-after: step-6 - :end-before: step-7 - -.. todo:: print() ? - -Once you have configured permissions, you must know where to -access the application. - -Introduction to Floating IPs ----------------------------- - -As in traditional IT, cloud instances are accessed through IP addresses that -OpenStack assigns. How this is actually done depends on the networking setup -for your cloud. In some cases, you will simply get an Internet rout-able IP -address assigned directly to your instance. - -The most common way for OpenStack clouds to allocate Internet rout-able -IP addresses to instances, however, is through the use of floating -IPs. A floating IP is an address that exists as an entity unto -itself, and can be associated to a specific instance network -interface. When a floating IP address is associated to an instance -network interface, OpenStack re-directs traffic bound for that address -to the address of the instance's internal network interface -address. Your cloud provider will generally offer pools of floating -IPs for your use. - -To use a floating IP, you must first allocate an IP to your project, -then associate it to your instance's network interface. - -.. note:: - - Allocating a floating IP address to an instance does not change - the IP address of the instance, it causes OpenStack to establish - the network translation rules to allow an *additional* IP address. - -.. only:: fog - - .. literalinclude:: ../samples/fog/introduction.rb - :start-after: step-7 - :end-before: step-8 - - If you have no free floating IPs that have been previously allocated - for your project, first select a floating IP pool offered by your - provider. In this example, we have selected the first one and assume - that it has available IP addresses. - - .. literalinclude:: ../samples/fog/introduction.rb - :start-after: step-8 - :end-before: step-9 - - Now request that an address from this pool be allocated to your project. - - .. literalinclude:: ../samples/fog/introduction.rb - :start-after: step-9 - :end-before: step-10 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/introduction.py - :start-after: step-7 - :end-before: step-8 - - - If you have no free floating IPs that have been previously allocated - for your project, first select a floating IP pool offered by your - provider. In this example, we have selected the first one and assume - that it has available IP addresses. - - .. literalinclude:: ../samples/libcloud/introduction.py - :start-after: step-8 - :end-before: step-9 - - Now request that an address from this pool be allocated to your project. - - .. literalinclude:: ../samples/libcloud/introduction.py - :start-after: step-9 - :end-before: step-10 - -.. only:: shade - - .. literalinclude:: ../samples/shade/introduction.py - :language: python - :start-after: step-7 - :end-before: step-8 - -.. only:: jclouds - - First check for an unused floating IP. - - .. literalinclude:: ../samples/jclouds/Introduction.java - :language: java - :start-after: step-7 - :end-before: step-7-end - - If you have no free floating IPs that have been previously allocated - for your project, then select a floating IP pool offered by your - provider. In this example, we have selected the first one and assume - that it has available IP addresses. - - .. literalinclude:: ../samples/jclouds/Introduction.java - :language: java - :start-after: step-8 - :end-before: step-8-end - - Then request an IP number be allocated from the pool. - - .. literalinclude:: ../samples/jclouds/Introduction.java - :language: java - :start-after: step-9 - :end-before: step-9-end - -.. only:: openstacksdk - - .. literalinclude:: ../samples/openstacksdk/introduction.py - :start-after: step-7 - :end-before: step-8 - - If you have no free floating IPs that have been allocated for - your project, first select a network which offer allocation - of floating IPs. In this example we use network which is - called :code:`public`. - - .. literalinclude:: ../samples/openstacksdk/introduction.py - :start-after: step-8 - :end-before: step-9 - - Now request an address from this network to be allocated to your project. - - .. literalinclude:: ../samples/openstacksdk/introduction.py - :start-after: step-9 - :end-before: step-10 - -Now that you have an unused floating IP address allocated to your -project, attach it to an instance. - -.. only:: shade - - .. literalinclude:: ../samples/shade/introduction.py - :language: python - :start-after: step-10 - :end-before: step-11 - -.. only:: fog - - .. literalinclude:: ../samples/fog/introduction.rb - :start-after: step-10 - :end-before: step-11 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/introduction.py - :start-after: step-10 - :end-before: step-11 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/Introduction.java - :language: java - :start-after: step-10 - :end-before: step-10-end - -.. only:: openstacksdk - - .. literalinclude:: ../samples/openstacksdk/introduction.py - :start-after: step-10 - :end-before: step-11 - -That brings us to where we ended up at the end of -:doc:`/getting_started`. But where do we go from here? - -Splitting services across multiple instances -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -We have talked about separating functions into different micro-services, -and how that enables us to make use of the cloud architecture. Now -let us see that in action. - -The rest of this tutorial will not reference the all-in-one instance you -created in section one. Take a moment to delete this instance. - -It is easy to split out services into multiple instances. We will -create a controller instance called :code:`app-controller`, which -hosts the API, database, and messaging services. We will also create a -worker instance called :code:`app-worker-1`, which just generates -fractals. - -The first step is to start the controller instance. The instance has -the API service, the database, and the messaging service, as you can -see from the parameters passed to the installation script. - -========== ====================== ============================= -Parameter Description Values -========== ====================== ============================= -:code:`-i` Install a service :code:`messaging` (install RabbitMQ) and :code:`faafo` (install the Faafo app). -:code:`-r` Enable/start something :code:`api` (enable and start the API service), :code:`worker` (enable and start the worker service), and :code:`demo` (run the demo mode to request random fractals). -========== ====================== ============================= - -.. todo:: https://bugs.launchpad.net/openstack-manuals/+bug/1439918 - -.. only:: shade - - .. literalinclude:: ../samples/shade/introduction.py - :language: python - :start-after: step-11 - :end-before: step-12 - -.. only:: fog - - .. literalinclude:: ../samples/fog/introduction.rb - :start-after: step-11 - :end-before: step-12 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/introduction.py - :start-after: step-11 - :end-before: step-12 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/Introduction.java - :language: java - :start-after: step-11 - :end-before: step-11-end - -.. only:: openstacksdk - - .. literalinclude:: ../samples/openstacksdk/introduction.py - :start-after: step-11 - :end-before: step-12 - -Note that this time, when you create a security group, you include a -rule that applies to only instances that are part of the worker group. - -Next, start a second instance, which will be the worker instance: - -.. todo :: more text necessary here... - -.. only:: shade - - .. literalinclude:: ../samples/shade/introduction.py - :language: python - :start-after: step-12 - :end-before: step-13 - -.. only:: fog - - .. literalinclude:: ../samples/fog/introduction.rb - :start-after: step-12 - :end-before: step-13 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/introduction.py - :start-after: step-12 - :end-before: step-13 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/Introduction.java - :language: java - :start-after: step-12 - :end-before: step-12-end - -.. only:: openstacksdk - - .. literalinclude:: ../samples/openstacksdk/introduction.py - :start-after: step-12 - :end-before: step-13 - -Notice that you have added this instance to the worker_group, so it can -access the controller. - -As you can see from the parameters passed to the installation script, -you define this instance as the worker instance. But, you also pass -the address of the API instance and the message queue so the worker -can pick up requests. The Fractals application installation script -accepts several parameters. - -========== ==================================================== ==================================== -Parameter Description Example -========== ==================================================== ==================================== -:code:`-e` The endpoint URL of the API service. http://localhost/ -:code:`-m` The transport URL of the messaging service. amqp://guest:guest@localhost:5672/ -:code:`-d` The connection URL for the database (not used here). sqlite:////tmp/sqlite.db -========== ==================================================== ==================================== - -Now if you make a request for a new fractal, you connect to the -controller instance, :code:`app-controller`, but the work will -actually be performed by a separate worker instance - -:code:`app-worker-1`. - -Login with SSH and use the Fractal app -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Login to the worker instance, :code:`app-worker-1`, with SSH, using -the previous added SSH key pair "demokey". Start by getting the IP -address of the worker: - -.. only:: shade - - .. literalinclude:: ../samples/shade/introduction.py - :language: python - :start-after: step-13 - -.. only:: fog - - .. literalinclude:: ../samples/fog/introduction.rb - :start-after: step-13 - :end-before: step-14 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/introduction.py - :start-after: step-13 - :end-before: step-14 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/Introduction.java - :language: java - :start-after: step-13 - :end-before: step-13-end - -.. only:: openstacksdk - - .. literalinclude:: ../samples/openstacksdk/introduction.py - :start-after: step-13 - :end-before: step-14 - -Now you can SSH into the instance: - -.. code-block:: console - - $ ssh -i ~/.ssh/id_rsa USERNAME@IP_WORKER_1 - -.. note:: Replace :code:`IP_WORKER_1` with the IP address of the - worker instance and USERNAME to the appropriate user name. - -Once you have logged in, check to see whether the worker service process -is running as expected. You can find the logs of the worker service -in the directory :code:`/var/log/supervisor/`. - -.. code-block:: console - - worker # ps ax | grep faafo-worker - 17210 ? R 7:09 /usr/bin/python /usr/local/bin/faafo-worker - -Open :code:`top` to monitor the CPU usage of the :code:`faafo-worker` process. - -Now log into the controller instance, :code:`app-controller`, also -with SSH, using the previously added SSH key pair "demokey". - -.. code-block:: console - - $ ssh -i ~/.ssh/id_rsa USERNAME@IP_CONTROLLER - -.. note:: Replace :code:`IP_CONTROLLER` with the IP address of the - controller instance and USERNAME to the appropriate user name. - -Check to see whether the API service process is running like -expected. You can find the logs for the API service in the directory -:file:`/var/log/supervisor/`. - -.. code-block:: console - - controller # ps ax | grep faafo-api - 17209 ? Sl 0:19 /usr/bin/python /usr/local/bin/faafo-api - -Now call the Fractal application's command line interface (:code:`faafo`) to -request a few new fractals. The following command requests a few -fractals with random parameters: - -.. code-block:: console - - controller # faafo --endpoint-url http://localhost --verbose create - 2015-04-02 03:55:02.708 19029 INFO faafo.client [-] generating 6 task(s) - -Watch :code:`top` on the worker instance. Right after calling -:code:`faafo` the :code:`faafo-worker` process should start consuming -a lot of CPU cycles. - -.. code-block:: console - - PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND - 17210 root 20 0 157216 39312 5716 R 98.8 3.9 12:02.15 faafo-worker - -To show the details of a specific fractal use the subcommand -:code:`show` of the Faafo CLI. - -.. code-block:: console - - controller # faafo show 154c7b41-108e-4696-a059-1bde9bf03d0a - +------------+------------------------------------------------------------------+ - | Parameter | Value | - +------------+------------------------------------------------------------------+ - | uuid | 154c7b41-108e-4696-a059-1bde9bf03d0a | - | duration | 4.163147 seconds | - | dimensions | 649 x 869 pixels | - | iterations | 362 | - | xa | -1.77488588389 | - | xb | 3.08249829401 | - | ya | -1.31213919301 | - | yb | 1.95281690897 | - | size | 71585 bytes | - | checksum | 103c056f709b86f5487a24dd977d3ab88fe093791f4f6b6d1c8924d122031902 | - +------------+------------------------------------------------------------------+ - -There are more commands available; find out more details about them -with :code:`faafo get --help`, :code:`faafo list --help`, and -:code:`faafo delete --help`. - -.. note:: The application stores the generated fractal images directly - in the database used by the API service instance. Storing - image files in a database is not good practice. We are doing it - here as an example only as an easy way to enable multiple - instances to have access to the data. For best practice, we - recommend storing objects in Object Storage, which is - covered in :doc:`durability`. - -Next steps -~~~~~~~~~~ - -You should now have a basic understanding of the architecture of -cloud-based applications. In addition, you have had practice -starting new instances, automatically configuring them at boot, and -even modularizing an application so that you may use multiple -instances to run it. These are the basic steps for requesting and -using compute resources in order to run your application on an -OpenStack cloud. - -From here, go to :doc:`/scaling_out` to learn how to further scale -your application. Or, try one of these steps in the tutorial: - -* :doc:`/durability`: Learn how to use Object Storage to make your application more durable. -* :doc:`/block_storage`: Migrate the database to block storage, or use - the database-as-a-service component. -* :doc:`/orchestration`: Automatically orchestrate your application. -* :doc:`/networking`: Learn about complex networking. -* :doc:`/advice`: Get advice about operations. -* :doc:`/craziness`: Learn some crazy things that you might not think to do ;) - -Complete code sample -~~~~~~~~~~~~~~~~~~~~ - -The following file contains all of the code from this section of the -tutorial. This comprehensive code sample lets you view and run the -code as a single script. - -Before you run this script, confirm that you have set your -authentication information, the flavor ID, and image ID. - -.. only:: shade - - .. literalinclude:: ../samples/shade/introduction.py - :language: python - -.. only:: fog - - .. literalinclude:: ../samples/fog/introduction.rb - :language: ruby - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/introduction.py - :language: python - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/Introduction.java - :language: java - -.. only:: openstacksdk - - .. literalinclude:: ../samples/openstacksdk/introduction.py - :language: python diff --git a/firstapp/source/locale/de/LC_MESSAGES/firstapp.po b/firstapp/source/locale/de/LC_MESSAGES/firstapp.po deleted file mode 100644 index 3b770a57b..000000000 --- a/firstapp/source/locale/de/LC_MESSAGES/firstapp.po +++ /dev/null @@ -1,4549 +0,0 @@ -# Carsten Duch , 2015. #zanata -# OpenStack Infra , 2015. #zanata -# Frank Kloeker , 2017. #zanata -# Robert Simai , 2017. #zanata -# Andreas Jaeger , 2018. #zanata -# Frank Kloeker , 2018. #zanata -# Robert Simai , 2018. #zanata -# Robert Simai , 2019. #zanata -msgid "" -msgstr "" -"Project-Id-Version: OpenStack First Application 2013.2.1.dev4245\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-04-23 14:55+0000\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2019-01-11 03:01+0000\n" -"Last-Translator: Robert Simai \n" -"Language: de\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" -"X-Generator: Zanata 4.3.3\n" -"Language-Team: German\n" - -msgid "**GettingStarted.java:**" -msgstr "** GettingStarted.java: **" - -msgid "**Remove the stack**" -msgstr "**Stapel entfernen**" - -msgid "**Show information about the stack**" -msgstr "**Informationen zum Stapel anzeigen**" - -msgid "**Stack create**" -msgstr "**Stapel erstellen**" - -msgid "**pom.xml:**" -msgstr "**pom.xml:**" - -msgid ".NET Framework" -msgstr ".NET Framework" - -msgid ":code:`-d`" -msgstr ":code:`-d`" - -msgid ":code:`-e`" -msgstr ":code: `-e`" - -msgid ":code:`-i`" -msgstr ":code: `-i`" - -msgid ":code:`-m`" -msgstr ":code:`-m`" - -msgid ":code:`-r`" -msgstr ":code: `-r`" - -msgid "" -":code:`api` (enable and start the API service), :code:`worker` (enable and " -"start the worker service), and :code:`demo` (run the demo mode to request " -"random fractals)." -msgstr "" -":code:`api` (Aktivieren und Starten des API-Dienstes) :code:`worker` " -"(Aktivieren und Starten des Worker Service) und :code:`demo` (den Demo-Modus " -"ausführen, um zufällige Fraktale anzufordern)." - -msgid "" -":code:`ceilometer_sample_query`: shows the samples used to build the " -"statistics." -msgstr "" -":code:`ceilometer_sample_query`: zeigt die zum Erstellen der Statistik " -"verwendeten Samples an." - -msgid "" -":code:`ceilometer_statistics_query`: shows the statistics used to trigger " -"the alarms." -msgstr "" -":code:`ceilometer_statistics_query`: Zeigt die Statistik an, die verwendet " -"wird, um die Alarme auszulösen." - -msgid "" -":code:`detach_volume` and :code:`destroy_volume` take a volume object, not a " -"name." -msgstr "" -":code: `detach_volume` und :code:` destroy_volume` nimm ein Volume-Objekt, " -"kein Name." - -msgid "" -":code:`ex_create_security_group_rule()` takes ranges of ports as input. This " -"is why ports 80 and 22 are passed twice." -msgstr "" -":code:`ex_create_security_group_rule ()` nimmt Bereiche von Ports als " -"Eingabe. Aus diesem Grund sind die Anschlüsse 80 und 22 zweimal angegeben." - -msgid "" -":code:`messaging` (install RabbitMQ) and :code:`faafo` (install the Faafo " -"app)." -msgstr "" -":code:`messaging` (installiere RabbitMQ) und :code:`faafo` (installiere die " -"Faafo app)." - -msgid "" -":code:`scale__workers_up_url`: A post to this url will add worker instances." -msgstr "" -":code:`scale__workers_up_url`: Ein Post zu dieser URL wird Worker-Instanzen " -"hinzufügen." - -msgid "" -":code:`scale_workers_down_url`: A post to this url will remove worker " -"instances." -msgstr "" -":code:`scale_workers_down_url`: Ein Post zu dieser URL entfernt Worker-" -"Instanzen." - -msgid ":doc:`/advice`: Get advice about operations." -msgstr ":doc: `/advice`: Ratschläge über den Betrieb erhalten." - -msgid "" -":doc:`/block_storage`: Migrate the database to block storage, or use the " -"database-as-a-service component." -msgstr "" -":doc: `/block_storage`: Migration der Datenbank, um den Speicher zu " -"blockieren oder die Datenbank-as-a-Service-Komponente zu verwenden." - -msgid "" -":doc:`/craziness`: Learn some crazy things that you might not think to do ;)" -msgstr "" -":doc: `/craziness`: Lernen Sie einige verrückte Dinge, die Sie nicht zu " -"träumen wagen ;)" - -msgid "" -":doc:`/durability`: Learn how to use Object Storage to make your application " -"durable." -msgstr "" -":doc:`/ durability`: Erfahren Sie, wie Sie Object Storage verwenden, um Ihre " -"Anwendung langlebig zu machen." - -msgid "" -":doc:`/durability`: Learn how to use Object Storage to make your application " -"more durable." -msgstr "" -":doc:`/durability`: Erfahren Sie, wie Sie Object Storage verwenden, um Ihre " -"Anwendung langlebiger zu machen." - -msgid ":doc:`/networking`: Learn about complex networking." -msgstr ":doc: `/networking`: Erfahren Sie mehr über komplexe Netzwerke." - -msgid ":doc:`/orchestration`: Automatically orchestrate your application." -msgstr "" -": doc: `/ orchestration`: Automatisches Orchestrieren Ihrer Applikation." - -msgid ":doc:`/scaling_out`: Learn how to scale your application." -msgstr "" -":doc:`/ scaling_out`: Erfahren Sie, wie Sie Ihre Anwendung skalieren können." - -msgid "" -"A .NET-based library. Use it to write C++ or C# code for Microsoft " -"applications." -msgstr "" -"Eine .NET-basierte Bibliothek. Verwenden Sie es, um C ++ oder C # -Code für " -"Microsoft-Anwendungen zu schreiben." - -msgid "" -"A Java-based library that the Apache Foundation manages. Use it to work with " -"multiple cloud types." -msgstr "" -"Eine Java-basierte Bibliothek, die die Apache Foundation verwaltet. " -"Verwenden Sie es, um mit mehreren Cloud-Typen zu arbeiten." - -msgid "A Node.js-based SDK. Use it work with multiple clouds." -msgstr "" -"Ein Node.js-basiertes SDK. Verwenden Sie es,um mit mehreren Clouds zu " -"arbeiten." - -msgid "" -"A PHP-based library. Use it to write PHP code that works with OpenStack " -"clouds." -msgstr "" -"Eine PHP-basierte Bibliothek. Verwenden Sie es, um PHP-Code zu schreiben, " -"der mit OpenStack-Clouds arbeitet." - -msgid "" -"A Python-based library developed by OpenStack Infra team. Use it to operate " -"multiple OpenStack clouds." -msgstr "" -"Eine Python-basierte Bibliothek, die von OpenStack Infra entwickelt wurde. " -"Verwenden Sie es, um mehrere OpenStack-Clouds zu betreiben." - -msgid "" -"A Python-based library that the Apache Foundation manages. Use it to work " -"with multiple cloud types." -msgstr "" -"Eine Python-basierte Bibliothek, die die Apache-Stiftung verwaltet. " -"Verwenden Sie es, um mit mehreren Cloud-Typen zu arbeiten." - -msgid "A Ruby-based SDK. Use it to work with multiple clouds." -msgstr "" -"Ein Ruby-basiertes SDK. Verwenden Sie es, um mit mehreren Clouds zu arbeiten." - -msgid "A floating IP helper function" -msgstr "Eine Floating-IP-Helferfunktion" - -msgid "A general overview" -msgstr "Ein allgemeiner Überblick" - -msgid "" -"A go-based SDK. Use it to write Golang code that works with OpenStack clouds." -msgstr "" -"Ein Go-basiertes SDK. Verwenden Sie es, um Golang-Code zu schreiben, der mit " -"OpenStack-Clouds arbeitet." - -msgid "" -"A key pair. To access your instance, you must import an SSH public key into " -"OpenStack to create a key pair. OpenStack installs this key pair on the new " -"instance. Typically, your public key is written to :code:`.ssh/id_rsa.pub`. " -"If you do not have an SSH public key file, follow `these instructions " -"`_ first. We will " -"cover these instructions in depth in :doc:`/introduction`." -msgstr "" -"Ein Schlüsselpaar. Um auf Ihre Instanz zuzugreifen, müssen Sie einen SSH " -"Public Key in OpenStack importieren, um ein Schlüsselpaar zu erstellen. " -"OpenStack installiert dieses Schlüsselpaar auf der neuen Instanz. " -"Normalerweise wird Ihr öffentlicher Schlüssel geschrieben an :code: `.ssh/" -"id_rsa.pub`. Wenn Sie keine SSH-Public-Key-Datei haben, folgen Sie diesen " -"Anweisungen `_ " -"zuerst Wir werden diese Anleitung ausführlich behandeln in :doc:`/" -"introduction`." - -msgid "" -"A simple solution is to give half of your friends one address and half the " -"other, but that solution is not sustainable. Instead, you can use a `DNS " -"round robin `_ to do that " -"automatically. However, OpenStack networking can provide Load Balancing as a " -"Service, which :doc:`/networking` explains." -msgstr "" -"Eine einfache Lösung ist, die Hälfte Ihrer Freunde eine Adresse und die " -"Hälfte der anderen zu geben, aber diese Lösung ist nicht nachhaltig. " -"Stattdessen können Sie ein 'DNS Round Robin' benutzen `_, um das automatisch zu tun. Allerdings kann " -"OpenStack Networking Load Balancing als Service bieten, was :doc:`/" -"networking` erklärt." - -msgid "" -"API load is a slightly different problem than the previous one regarding " -"capacity to work. We can simulate many requests to the API, as follows:" -msgstr "" -"API Last ist ein etwas anderes Problem als die vorherige in Bezug auf die " -"Fähigkeit zu arbeiten. Wir können viele Anfragen an die API simulieren, wie " -"folgt:" - -msgid "API traffic" -msgstr "API-Verkehr" - -msgid "Access the application" -msgstr "Zugriff auf die Anwendung" - -msgid "Add metadata to objects" -msgstr "Metadaten zu Objekten hinzufügen" - -msgid "Add the option Networks and send its id to attach the instance to:" -msgstr "" -"Fügen Sie die Option Netzwerke hinzu und geben Sie ihre ID an, um die " -"Instanz auf folgende Adresse zu setzen:" - -msgid "" -"Add the parameter network and send its name or id to attach the instance to:" -msgstr "" -"Fügen Sie das Parameter-Netzwerk hinzu und geben Sie den Namen oder die ID " -"an, um die Instanz an folgende Adresse anzuhängen:" - -msgid "" -"Adding this capacity enables you to deal with a higher number of requests " -"for fractals. As soon as these worker instances start, they begin checking " -"the message queue for requests, reducing the overall backlog like a new " -"register opening in the supermarket." -msgstr "" -"Wenn Sie diese Kapazität hinzufügen, können Sie mit einer höheren Anzahl von " -"Anträgen auf Fraktale umgehen. Sobald diese Worker-Instanzen beginnen, " -"beginnen sie mit der Überprüfung der Message-Queue für Anfragen, wodurch der " -"Gesamt-Backlog wie eine neue Kasseneröffnung im Supermarkt reduziert wird." - -msgid "Advice for developers new to operations" -msgstr "Beratung für Entwickler, die neu in Betrieb sind" - -msgid "" -"After separating the Fractal worker nodes into their own networks, the next " -"logical step is to move the Fractal API service to a load balancer, so that " -"multiple API workers can handle requests. By using a load balancer, the API " -"service can be scaled out in a similar fashion to the worker nodes." -msgstr "" -"Nach dem Trennen der Fractal-Worker-Knoten in ihre eigenen Netzwerke ist der " -"nächste logische Schritt, den Fractal-API-Dienst zu einem Load-Balancer zu " -"verschieben, so dass mehrere API-Worker Anfragen verarbeiten können. Durch " -"die Verwendung eines Load-Balancers kann der API-Service in ähnlicher Weise " -"wie die Worker-Knoten skaliert werden." - -msgid "" -"After the instance is created, cloud-init downloads and runs a script " -"called :code:`install.sh`. This script installs the Fractals application. " -"Cloud-init can consume bash scripts and a number of different types of data. " -"You can even provide multiple types of data. You can find more information " -"about cloud-init in the `official documentation `_." -msgstr "" -"Nachdem die Instanz erstellt wurde, lädt Cloud-init ein Skript namens :code:" -"`install.sh` herunter und führt es aus. Dieses Skript installiert die " -"Fractals-Anwendung. Cloud-init kann Bash-Scripts und eine Reihe von " -"verschiedenen Arten von Daten verarbeiten. Sie können sogar mehrere Arten " -"von Daten bereitstellen. Weitere Informationen über cloud-init finden Sie in " -"der offiziellen Dokumentation " -"`_." - -msgid "Allocate floating ips and assign them to the web server nodes." -msgstr "Weisen Sie Floating-IPs zu und weisen Sie sie den Webserverknoten zu." - -msgid "Allocate the floating IP address:" -msgstr "Weisen Sie die Floating-IP-Adresse zu:" - -msgid "" -"Allocating a floating IP address to an instance does not change the IP " -"address of the instance, it causes OpenStack to establish the network " -"translation rules to allow an *additional* IP address." -msgstr "" -"Das Zuweisen einer Floating-IP-Adresse zu einer Instanz ändert nicht die IP-" -"Adresse der Instanz, es bewirkt, dass OpenStack die " -"Netzwerkübersetzungsregeln festlegt, um eine *zusätzliche IP-Adresse " -"zuzulassen." - -msgid "" -"An often-cited reason for designing applications by using cloud patterns is " -"the ability to **scale out**. That is: to add additional resources, as " -"required. Contrast this strategy to the previous one of increasing capacity " -"by scaling up the size of existing resources. To scale out, you must:" -msgstr "" -"Ein oft zitierter Grund für die Gestaltung von Anwendungen mit Hilfe von " -"Cloud-Mustern ist die Fähigkeit, **auszugleichen**. Das ist: um zusätzliche " -"Ressourcen hinzuzufügen, wie erforderlich. Kontrastieren Sie diese Strategie " -"auf die vorherige der zunehmenden Kapazität durch die Skalierung der Größe " -"der vorhandenen Ressourcen. Um zu skalieren, müssen Sie:" - -msgid "And as before, the stack takes a few minutes to build!" -msgstr "Und wie schon zuvor, der Stapel dauert ein paar Minuten zu bauen!" - -msgid "And confirm it is in place:" -msgstr "Und bestätigen das es vorhanden ist:" - -msgid "" -"Another approach is to create a 'gold' image, which pre-installs your " -"application and its dependencies. A 'gold' image enables faster boot times " -"and more control over what is on the instance. However, if you use 'gold' " -"images, you must have a process in place to ensure that these images do not " -"fall behind on security updates." -msgstr "" -"Ein weiterer Ansatz ist es, ein 'goldenses' AbBild zu erstellen, das Ihre " -"Anwendung und ihre Abhängigkeiten vorinstalliert. Ein 'goldenes' Abbild " -"ermöglicht schnellere Boot-Zeiten und mehr Kontrolle über das, was auf der " -"Instanz ist. Allerdings, wenn Sie 'goldene' Abbiler verwenden, müssen Sie " -"einen Prozess haben, um sicherzustellen, dass diese Abbilder nicht bei " -"Sicherheits-Updates herunterfallen." - -msgid "" -"Anyone with a programming background can easily read the code in this guide. " -"Although this guide focuses on a particular SDK, you can use other languages " -"and toolkits with the OpenStack cloud:" -msgstr "" -"Jeder mit einem Programmierhintergrund kann den Code in diesem Handbuch " -"leicht lesen. Obwohl diese Anleitung auf ein bestimmtes SDK fokussiert ist, " -"können Sie mit der OpenStack Cloud andere Sprachen und Toolkits verwenden:" - -msgid "Appendix" -msgstr "Anhang" - -msgid "Application deployment" -msgstr "Anwendungsbereitstellung" - -msgid "" -"Application developers and operators who use phoenix servers have access to " -"systems that are built from a known baseline, such as a specific operating " -"system version, and to tooling that automatically builds, installs, and " -"configures a system." -msgstr "" -"Anwendungsentwickler und Betreiber, die Phoenix-Server verwenden, haben " -"Zugriff auf Systeme, die aus einer bekannten Baseline aufgebaut werden, wie " -"z. B. einer bestimmten Betriebssystemversion und einem Tool, das ein System " -"automatisch aufbaut, installiert und konfiguriert." - -msgid "Architect your application to make use of additional resources." -msgstr "Re-Architekt Ihrer Applikation, um zusätzliche Ressourcen zu nutzen." - -msgid "" -"Armed with a security group, image, and flavor size, you can add multiple " -"API services:" -msgstr "" -"Bewaffnet mit einer Sicherheitsgruppe, Abbild und Varianten-Größe, können " -"Sie mehrere API-Dienste hinzufügen:" - -msgid "As before, pass in configuration settings as parameters." -msgstr "" -"Wie vorher, passieren Sie die Konfigurationseinstellungen als Parameter." - -msgid "" -"As in traditional IT, cloud instances are accessed through IP addresses that " -"OpenStack assigns. How this is actually done depends on the networking setup " -"for your cloud. In some cases, you will simply get an Internet rout-able IP " -"address assigned directly to your instance." -msgstr "" -"Wie in der traditionellen IT werden Cloud-Instanzen über IP-Adressen " -"angesprochen, die OpenStack zuweist. Wie dies tatsächlich geschieht, hängt " -"vom Netzwerk-Setup für Ihre Cloud ab. In einigen Fällen erhalten Sie einfach " -"eine Internet-Router-fähige IP-Adresse, die direkt Ihrer Instanz zugewiesen " -"wurde." - -msgid "" -"As mentioned in :doc:`/introduction`, the generated fractal images are saved " -"on the local file system of the API service instances. Because you have " -"multiple API instances up and running, the fractal images are spread across " -"multiple API services, which causes a number of :code:`IOError: [Errno 2] No " -"such file or directory` exceptions when trying to download a fractal image " -"from an API service instance that does not have the fractal image on its " -"local file system." -msgstr "" -"Wie bereits erwähnt in :doc:`/introduction`, werden die generierten " -"Fraktalbilder auf dem lokalen Dateisystem der API Service Instanzen " -"gespeichert. Da Sie mehrere API-Instanzen auf- und ablaufen lassen, werden " -"die Fraktalbilder über mehrere API-Dienste verteilt, was eine Reihe von :" -"codet: `IOError: [Errno 2] No such file or directory` Fehler beim Versuch, " -"ein Fraktalbild herunterzuladen eine API-Service-Instanz, die nicht das " -"Fraktalbild auf seinem lokalen Dateisystem hat, verursacht." - -msgid "" -"As with classical infrastructure, failures of the underpinning cloud " -"infrastructure (hardware, networks, and software) are unavoidable. When you " -"design for the cloud, it is crucial that your application is designed for an " -"environment where failures can happen at any moment. This may sound like a " -"liability, but it is not; by designing your application with a high degree " -"of fault tolerance, you also make it resilient, and more adaptable, in the " -"face of change." -msgstr "" -"Wie bei der klassischen Infrastruktur sind Ausfälle der zugrunde liegenden " -"Cloud-Infrastruktur (Hardware, Netzwerke und Software) unvermeidbar. Wenn " -"Sie Ihre Cloud entwerfen, ist es entscheidend, dass Ihre Anwendung für eine " -"Umgebung entworfen ist, in der Ausfälle jederzeit passieren können. Das " -"klingt wie eine Drohung, aber es ist nicht; Durch die Gestaltung Ihrer " -"Anwendung mit einem hohen Maß an Fehlertoleranz, machen Sie es auch " -"belastbar und anpassungsfähiger, angesichts der Veränderung." - -msgid "" -"As you can see from the parameters passed to the installation script, you " -"define this instance as the worker instance. But, you also pass the address " -"of the API instance and the message queue so the worker can pick up " -"requests. The Fractals application installation script accepts several " -"parameters." -msgstr "" -"Wie Sie aus den an das Installationsskript übergebenen Parametern sehen " -"können, definieren Sie diese Instanz als Worker-Instanz. Aber Sie übergeben " -"auch die Adresse der API-Instanz und die Nachrichtenwarteschlange, damit der " -"Worker Anfragen abholen kann. Das Installationsskript der Fractals-Anwendung " -"akzeptiert mehrere Parameter." - -msgid "" -"As you change the topology of your applications, you must update or create " -"security groups. Here, you re-create the required security groups." -msgstr "" -"Wenn Sie die Topologie Ihrer Anwendungen ändern, müssen Sie " -"Sicherheitsgruppen aktualisieren oder erstellen. Hier erstellen Sie die " -"erforderlichen Sicherheitsgruppen neu." - -msgid "Associate a floating IP for external connectivity" -msgstr "Verknüpfen Sie eine Floating-IP für externe Konnektivität" - -msgid "" -"At the end of this section, you make some slight changes to the networking " -"topology by using the OpenStack Networking API to create the 10.0.1.0/24 " -"network to which the worker nodes attach. You use the 10.0.3.0/24 API " -"network to attach the Fractal API servers. Web server instances have their " -"own 10.0.2.0/24 network, which is accessible by fractal aficionados " -"worldwide, by allocating floating IPs from the public network." -msgstr "" -"Am Ende dieses Abschnitts machen Sie einige Änderungen an der Netzwerk-" -"Topologie, indem Sie die OpenStack Networking API verwenden, um das " -"10.0.1.0/24 Netzwerk zu erstellen, an das die Worker-Knoten angeschlossen " -"sind. Sie verwenden das 10.0.3.0/24 API-Netzwerk, um die Fractal-API-Server " -"anzubringen. Web-Server-Instanzen haben ihr eigenes 10.0.2.0/24 Netzwerk, " -"das von Fraktal-Aficionados weltweit zugänglich ist, indem es Floating-IPs " -"aus dem öffentlichen Netzwerk zuteilt." - -msgid "Attach the floating IP address to the instance:" -msgstr "Bringen Sie die Floating-IP-Adresse an die Instanz an:" - -msgid "Automation" -msgstr "Automatisierung" - -msgid "" -"Back up the Fractals app images, which are currently stored inside the " -"database, on Object Storage." -msgstr "" -"Sichern Sie die Fractals App-Bilder, die derzeit in der Datenbank " -"gespeichert sind, auf Object Storage." - -msgid "Back up the Fractals from the database on the Object Storage" -msgstr "Sichern Sie die Fractals aus der Datenbank auf dem Objektspeicher" - -msgid "Backups" -msgstr "Sicherungen" - -msgid "Basics" -msgstr "Grundlagen" - -msgid "" -"Because all service endpoints use the Identity Service for authentication " -"and authorization, place the following code in the 'void Main()' entry-point " -"function." -msgstr "" -"Da alle Service-Endpunkte den Identity Service zur Authentifizierung und " -"Autorisierung verwenden, platzieren Sie den folgenden Code in die 'void Main " -"()' Einstiegspunktfunktion." - -msgid "" -"Because the SDKs do not fully support the OpenStack Networking API, this " -"section uses the command-line clients." -msgstr "" -"Da die SDKs die OpenStack Networking API nicht vollständig unterstützen, " -"verwendet dieser Abschnitt die Befehlszeilenclients." - -msgid "" -"Because the local file system is ephemeral storage, the fractal images are " -"lost along with the instance when the instance is terminated. Block-based " -"storage, which the :doc:`/block_storage` section discusses, avoids that " -"problem, but like local file systems, it requires administration to ensure " -"that it does not fill up, and immediate attention if disks fail." -msgstr "" -"Da das lokale Dateisystem eine kurzlebige Speicherung ist, gehen die " -"Fraktalbilder zusammen mit der Instanz verloren, wenn die Instanz beendet " -"ist. Block-basierte Speicherung, die der :doc: `/block_storage` Abschnitt " -"diskutiert, vermeidet dieses Problem, aber wie lokale Dateisysteme, " -"erfordert es die Verwaltung, um sicherzustellen, dass es nicht überläuft, " -"und sofortige Aufmerksamkeit, wenn Festplatten kaputtgehen" - -msgid "" -"Because the tutorial reuses the :code:`conn` object, make sure that you " -"always have one handy." -msgstr "" -"Weil das Tutorial das :code: `conn` Objekt wiederverwendet, stellen Sie " -"sicher, dass Sie immer eins zur Hand haben." - -msgid "Before proceeding, install the latest version of shade." -msgstr "Bevor Sie fortfahren, installieren Sie die neueste Version von shade." - -msgid "Before you continue, you must do one more thing." -msgstr "Bevor Sie fortfahren, müssen Sie noch etwas machen." - -msgid "" -"Before you run this class, confirm that you have configured it for your " -"cloud and the instance running the Fractals application." -msgstr "" -"Bevor Sie diese Klasse ausführen, bestätigen Sie, dass Sie es für Ihre Cloud " -"konfiguriert haben und die Instanz läuft, die die Fractals-Anwendung " -"ausführt." - -msgid "" -"Before you run this script, confirm that you have set your authentication " -"information, the flavor ID, and image ID." -msgstr "" -"Bevor Sie dieses Skript ausführen, bestätigen Sie, dass Sie Ihre " -"Authentifizierungsinformationen, die Varianten-ID und die Image-ID " -"festgelegt haben." - -msgid "" -"Before you scale out your application services, like the API service or the " -"workers, you must add a central database and an :code:`app-services` " -"messaging instance. The database and messaging queue will be used to track " -"the state of fractals and to coordinate the communication between the " -"services." -msgstr "" -"Bevor Sie Ihre Anwendungsdienste ausschalten, wie der API-Dienst oder die " -"Mitarbeiter, müssen Sie eine zentrale Datenbank und einen Code hinzufügen: " -"`app-services` Messaging-Instanz. Die Datenbank- und Messaging-Warteschlange " -"wird verwendet, um den Zustand der Fraktale zu verfolgen und die " -"Kommunikation zwischen den Diensten zu koordinieren." - -msgid "Block Storage" -msgstr "Blockieren Sie Speicherplatz" - -msgid "Boot and configure an instance" -msgstr "Starten und konfigurieren Sie eine Instanz" - -msgid "Booting a worker" -msgstr "Booten eines Workers" - -msgid "Bootstrap your network" -msgstr "Ihr Netzwerk bootstrappen" - -msgid "" -"By default, data in OpenStack instances is stored on 'ephemeral' disks. " -"These disks remain with the instance throughout its lifetime. When you " -"terminate the instance, that storage and all the data stored on it " -"disappears. Ephemeral storage is allocated to a single instance and cannot " -"be moved to another instance." -msgstr "" -"Standardmäßig werden Daten in OpenStack-Instanzen auf 'ephemeral' " -"Festplatten gespeichert. Diese Festplatten bleiben während des ganzen Lebens " -"mit der Instanz. Wenn Sie die Instanz beenden, verschwindet diese Festplatte " -"und alle darin gespeicherten Daten. Der kurzlebige Speicher wird einer " -"einzigen Instanz zugeordnet und kann nicht in eine andere Instanz verschoben " -"werden." - -msgid "" -"CI/CD means that you always test your application and make frequent " -"deployments to production." -msgstr "" -"CI/CD bedeutet, dass Sie immer Ihre Anwendung testen und häufige " -"Bereitstellungen zur Produktion machen." - -msgid "" -"Call the :code:`faafo` command-line interface to request the generation of " -"five large fractals." -msgstr "" -"Rufen Sie den :code:`faafo` Befehlszeilenschnittstelle an, um die Erzeugung " -"von fünf großen Fraktalen anzufordern." - -msgid "" -"Change the API code, such as \"list fractals,\" to query Object Storage to " -"get the metadata." -msgstr "" -"Ändern Sie den API-Code wie 'list fractals', um Object Storage abzufragen, " -"um die Metadaten zu erhalten." - -msgid "" -"Change the Fractal upload code to store metadata with the object in Object " -"Storage." -msgstr "" -"Ändern Sie den Fractal-Upload-Code, um Metadaten mit dem Objekt in Object " -"Storage zu speichern." - -msgid "" -"Check to see whether the API service process is running like expected. You " -"can find the logs for the API service in the directory :file:`/var/log/" -"supervisor/`." -msgstr "" -"Überprüfen Sie, ob der API-Serviceprozess wie erwartet ausgeführt wird. Sie " -"finden die Protokolle für den API-Dienst im Verzeichnis :file:`/var/log/" -"supervisor/`." - -msgid "" -"Choose an image and flavor for your instance. You need about 1GB RAM, 1 CPU, " -"and a 1GB disk. This example uses the Ubuntu image with a small flavor, " -"which is a safe choice. In subsequent tutorial sections in this guide, you " -"must change the image and flavor IDs to correspond to the image and flavor " -"that you choose." -msgstr "" -"Wählen Sie ein Abbild und eine Variante für Ihre Instanz. Sie benötigen ca. " -"1GB RAM, 1 CPU und eine 1GB Festplatte. Dieses Beispiel nutzt das Ubuntu-" -"Abbild mit einer kleinen Variante, was eine sichere Wahl ist. In " -"nachfolgenden Tutorialabschnitten in diesem Handbuch müssen Sie die Abbild- " -"und Varianten-IDs entsprechend dem Abbild und der Variante ändern, die Sie " -"gewählt haben." - -msgid "Choose your OpenStack SDK" -msgstr "Wählen Sie Ihr OpenStack SDK" - -msgid "Cloud application architecture principles" -msgstr "Cloud-Anwendung Architektur Prinzipien" - -msgid "" -"Cloud applications often use many small instances rather than a few large " -"instances. Provided that an application is sufficiently modular, you can " -"easily distribute micro-services across as many instances as required. This " -"architecture enables an application to grow past the limit imposed by the " -"maximum size of an instance. It is like trying to move a large number of " -"people from one place to another; there is only so many people you can put " -"on the largest bus, but you can use an unlimited number of buses or small " -"cars, which provide just the capacity you need - and no more." -msgstr "" -"Cloud-Anwendungen verwenden oft viele kleine Instanzen eher als ein paar " -"große Instanzen. Vorausgesetzt, dass eine Anwendung ausreichend modular ist, " -"können Sie problemlos Mikrodienste über möglichst viele Fälle verteilen. " -"Diese Architektur ermöglicht es einer Anwendung, an der Grenze vorbei zu " -"gehen, die durch die maximale Größe einer Instanz auferlegt wird. Es ist wie " -"das Versuchen, eine große Anzahl von Menschen von einem Ort zum anderen zu " -"bewegen; Es gibt nur so viele Leute, die man in den größten Bus setzen kann, " -"aber man kann eine unbegrenzte Anzahl von Bussen oder Kleinwagen benutzen, " -"die nur die Kapazität bieten, die man braucht - und nicht mehr." - -msgid "" -"Cloud applications typically share several design principles. These " -"principles influenced the design of the Fractals application." -msgstr "" -"Cloud-Anwendungen teilen sich typischerweise mehrere Designprinzipien. Diese " -"Grundsätze beeinflussten die Gestaltung der Fractals-Anwendung." - -msgid "" -"Cloud resources, such as running instances that you no longer use, can cost " -"money. To avoid unexpected expenses, destroy cloud resources." -msgstr "" -"Cloud-Ressourcen, wie z.B. Instanzen, die Sie nicht mehr verwenden, können " -"Geld kosten. Um unerwartete Ausgaben zu vermeiden, zerstören Sie die Cloud-" -"Ressourcen." - -msgid "Complete code sample" -msgstr "Komplettes Codebeispiel" - -msgid "Configuration management" -msgstr "Konfigurationsmanagement" - -msgid "" -"Configuration management tools, such as Ansible, Chef, and Puppet, enable " -"you to describe exactly what to install and configure on an instance. Using " -"these descriptions, these tools implement the changes that are required to " -"get to the desired state." -msgstr "" -"Konfigurationsmanagement-Tools wie Ansible, Chef und Puppet ermöglichen es " -"Ihnen, genau zu beschreiben, was zu installieren und zu konfigurieren auf " -"einer Instanz. Mit diesen Beschreibungen implementieren diese Werkzeuge die " -"Änderungen, die erforderlich sind, um in den gewünschten Zustand zu gelangen." - -msgid "Configure the Fractals app to use Object Storage" -msgstr "Konfigurieren Sie die Fractals App, um Object Storage zu verwenden" - -msgid "Confirm that the stack created two alarms:" -msgstr "Vergewissern Sie sich, dass der Stapel zwei Alarme erstellt hat:" - -msgid "Confirm that they were added:" -msgstr "Bestätigen Sie, dass sie hinzugefügt wurden:" - -msgid "" -"Confirm that we have a public network by listing the networks our tenant has " -"access to. The public network does not have to be named public - it could be " -"'external', 'net04_ext' or something else - the important thing is it exists " -"and can be used to reach the Internet." -msgstr "" -"Bestätigen Sie, dass wir ein öffentliches Netz haben, indem wir die " -"Netzwerke aufrufen, auf die unser Tenant zugreifen kann. Das öffentliche " -"Netz muss nicht öffentlich benannt werden - es könnte 'extern', 'net04_ext' " -"oder etwas anderes sein - das Wichtigste ist, dass es existiert und " -"verwendet werden kann, um das Internet zu erreichen." - -msgid "Connect to the API endpoint:" -msgstr "Verbinden mit dem API-Endpunkt:" - -msgid "Connecting to the Internet" -msgstr "Verbindung zum Internet herstellen" - -msgid "Contents" -msgstr "Inhalt" - -msgid "Create a network and subnet for the web server nodes." -msgstr "Erstellen Sie ein Netzwerk und ein Subnetz für die Webserverknoten." - -msgid "" -"Create a network and subnet for the worker nodes. This is the private data " -"network." -msgstr "" -"Erstellen Sie ein Netzwerk und ein Subnetz für die Worker-Knoten. Dies ist " -"das private Datennetzwerk." - -msgid "Create a router for the private data network." -msgstr "Erstellen Sie einen Router für das private Datennetzwerk." - -msgid "" -"Create a volume object by using the unique identifier (UUID) for the volume. " -"Then, use the server object from the previous code snippet to attach the " -"volume to it at :code:`/dev/vdb`:" -msgstr "" -"Erstellen Sie ein Volume-Objekt, indem Sie die eindeutige Kennung (UUID) für " -"das Volume verwenden. Verwenden Sie dann das Serverobjekt aus dem vorherigen " -"Code-Snippet, um das Volume an folgende Adresse anzuhängen: code: `/ dev / " -"vdb`:" - -msgid "" -"Create and delete compute resources. These resources are virtual machine " -"instances where the Fractals application runs." -msgstr "" -"Erstellen und Löschen von Berechnungsressourcen. Diese Ressourcen sind " -"virtuelle Maschineninstanzen, in denen die Fractals-Anwendung läuft." - -msgid "Create more API service requests" -msgstr "Erstellen Sie weitere API-Dienstanforderungen" - -msgid "Create more tasks" -msgstr "Erstellen Sie mehr Aufgaben" - -msgid "Create networks" -msgstr "Netzwerke erstellen" - -msgid "Create the instance." -msgstr "Erstellen Sie die Instanz." - -msgid "" -"Currently, you cannot directly store generated images in OpenStack Object " -"Storage. Please revisit this section again in the future." -msgstr "" -"Derzeit können Sie nicht direkt gespeicherte Bilder in OpenStack Object " -"Storage speichern. Bitte wiederholen Sie diesen Abschnitt nochmals in " -"Zukunft." - -msgid "Customize networking for better performance and segregation." -msgstr "Anpassung der Vernetzung für bessere Leistung und Segregation." - -msgid "" -"Define a short function to locate unused or allocate floating IPs. This " -"saves a few lines of code and prevents you from reaching your floating IP " -"quota too quickly." -msgstr "" -"Definieren Sie eine kurze Funktion, um unbenutzte oder zugängliche Floating-" -"IPs zu lokalisieren. Das spart ein paar Zeilen Code und verhindert, dass Sie " -"Ihr Floating-IP-Quota zu schnell erreichen." - -msgid "Delete containers" -msgstr "Container löschen" - -msgid "Deploy the application to a new instance" -msgstr "Bereitstellen der Anwendung auf eine neue Instanz" - -msgid "" -"Deploying application data and configuration to the instance can take some " -"time. Consider enjoying a cup of coffee while you wait. After the " -"application deploys, you can use your preferred browser to visit the awesome " -"graphic interface at the following link." -msgstr "" -"Das Anlegen von Anwendungsdaten und die Konfiguration an die Instanz kann " -"einige Zeit in Anspruch nehmen. Denken Sie daran, eine Tasse Kaffee zu " -"genießen, während Sie warten. Nachdem die Anwendung installiert ist, können " -"Sie Ihren bevorzugten Browser verwenden, um die fantastische grafische " -"Oberfläche unter folgendem Link zu besuchen." - -msgid "" -"Deploying applications in a cloud environment can be very different from " -"deploying them in a traditional IT environment. This guide teaches you how " -"to deploy applications on OpenStack and some best practices for cloud " -"application development." -msgstr "" -"Die Bereitstellung von Anwendungen in einer Cloud-Umgebung kann sich sehr " -"von der Bereitstellung in einer herkömmlichen IT-Umgebung unterscheiden. " -"Dieser Leitfaden lehrt Sie, wie Sie Anwendungen auf OpenStack bereitstellen " -"und einige bewährte Methoden für die Entwicklung von Cloud-Anwendungen." - -msgid "Description" -msgstr "Beschreibung" - -msgid "Destroy an instance" -msgstr "Zerstören einer Instanz" - -msgid "" -"Do not worry if these concepts are not yet completely clear. In :doc:`/" -"introduction`, we explore these concepts in more detail." -msgstr "" -"Machen Sie sich keine Sorgen, wenn Ihnen diese Konzepte noch nicht ganz klar " -"sind. In :doc:`/introduction`, erforschen wir diese Konzepte genauer." - -msgid "Enable/start something" -msgstr "Aktivieren/Starten von etwas" - -msgid "" -"Ensure you have an :file:`openrc.sh` file, source it, and validate that your " -"trove client works:" -msgstr "" -"Stellen Sie sicher, dass Sie eine Datei haben: `openrc.sh` Datei, Quelle, " -"und bestätigen Sie, dass Ihr Trove Client funktioniert:" - -msgid "" -"Ensure you have an openrc.sh file, source it, and then check that your " -"openstack client works: ::" -msgstr "" -"Stellen Sie sicher, dass Sie eine openrc.sh-Datei haben, sie sourcen, und " -"überprüfen Sie dann, ob Ihr Openstack-Client funktioniert: ::" - -msgid "" -"Even with a key in place, however, you must have the appropriate security " -"group rules in place to access your instance." -msgstr "" -"Sogar mit einem installierten Schlüssel, müssen Sie jedoch die " -"entsprechenden Sicherheitsgruppenregeln aktiviert haben, um auf Ihre Instanz " -"zuzugreifen." - -msgid "Example" -msgstr "Beispiel" - -msgid "Explore and apply advanced OpenStack cloud features." -msgstr "Entdecken und bewerben Sie erweiterte OpenStack Cloud-Funktionen." - -msgid "Extra features" -msgstr "Zusatzfunktionen" - -msgid "Extra security groups" -msgstr "Zusätzliche Sicherheitsgruppen" - -msgid "Extras" -msgstr "Extras" - -msgid "Fail fast" -msgstr "Schnell fehlschlagen" - -msgid "Fault tolerance" -msgstr "Fehlertoleranz" - -msgid "Fault tolerance is essential to the cloud-based application." -msgstr "Fehlertoleranz ist für die Cloud-basierte Anwendung unerlässlich." - -msgid "Final result" -msgstr "Endergebnis" - -msgid "Finally, clean up by deleting the test object:" -msgstr "Schließlich bereinigen Sie, indem Sie das Testobjekt löschen:" - -msgid "" -"Finally, start the stopped MySQL database service and validate that " -"everything works as expected." -msgstr "" -"Schließlich starten Sie den gestoppten MySQL-Datenbankdienst und bestätigen, " -"dass alles wie erwartet funktioniert." - -msgid "First check for an unused floating IP." -msgstr "Zuerst auf eine unbenutzte Floating-IP prüfen" - -msgid "" -"First provide the appropriate identity, credentials and authorization URL " -"for your project. Then get an instance of the Nova API interface." -msgstr "" -"Zuerst die entsprechende Identität, Anmeldeinformationen und Berechtigungs-" -"URL für Ihr Projekt zur Verfügung stellen. Dann bekommen Sie eine Instanz " -"der Nova API-Schnittstelle." - -msgid "First, learn how to connect to the Object Storage endpoint:" -msgstr "" -"Erstens erfahren Sie, wie Sie eine Verbindung zum Objektspeicher-Endpunkt " -"herstellen können:" - -msgid "" -"First, tell the connection to get a specified image by using the ID of the " -"image that you picked in the previous section:" -msgstr "" -"Zuerst fragen Sie die Verbindung nach einem bestimmten Abbild, indem Sie die " -"ID des Abbildes verwenden, das Sie im vorherigen Abschnitt ausgewählt haben:" - -msgid "Flavors and images" -msgstr "Variante und Abbilder" - -msgid "" -"For a list of available SDKs, see `Software Development Kits `_." -msgstr "" -"Eine Liste der verfügbaren SDKs finden Sie unter 'Software Development Kits' " -" `_." - -msgid "" -"For efficiency, most Object Storage installations treat large objects, :code:" -"`> 5GB`, differently than smaller objects." -msgstr "" -"Für die Effizienz, die meisten Object Storage-Installationen behandeln große " -"Objekte, :code:`> 5GB`, anders als kleinere Objekte." - -msgid "" -"For example, you might use the Orchestration API to create two compute " -"instances by creating a stack and by passing a template to the Orchestration " -"API. That template contains two resources with the :code:`type` attribute " -"set to :code:`OS::Nova::Server`." -msgstr "" -"Beispielsweise können Sie die Orchestrierungs-API verwenden, um zwei Compute-" -"Instanzen zu erstellen, indem Sie einen Stapel erstellen und eine Vorlage an " -"die Orchestrierungs-API übergeben. Diese Vorlage enthält zwei Ressourcen mit " -"dem :code:`type` Attribut gesetzt auf :code:`OS::Nova::Server`." - -msgid "For example:" -msgstr "Beispielsweise:" - -msgid "" -"For information about supported features and how to work with an existing " -"database service installation, see `Database as a Service in OpenStack " -"`_." -msgstr "" -"Informationen über unterstützte Funktionen und die Arbeit mit einer " -"vorhandenen Datenbankdienstinstallation finden Sie unter `Datenbank als " -"Dienst in OpenStack `_." - -msgid "" -"For information about these and other calls, see `libcloud documentation " -"`_." -msgstr "" -"Informationen zu diesen und anderen Anrufen finden Sie unter `libcloud " -"Dokumentation `_." - -msgid "" -"For more information about hybrid clouds, see the `Hybrid Cloud chapter " -"`_ in the Architecture " -"Design Guide." -msgstr "" -"Weitere Informationen über Hybrid Clouds finden Sie im Kapitel 'Hybrid " -"Cloud' `_ im " -"Architektur Design Guide." - -msgid "" -"For more information about multi-site clouds, see the `Multi-Site chapter " -"`_ in the " -"Architecture Design Guide." -msgstr "" -"Weitere Informationen zu Multi-Site-Clouds finden Sie im Kapitel 'Multi-" -"Site' `_ im " -"Architektur Design Guide." - -msgid "" -"For performance reasons, it makes sense to have a network for each tier, so " -"that traffic from one tier does not \"crowd out\" other types of traffic and " -"cause the application to fail. In addition, having separate networks makes " -"controlling access to parts of the application easier to manage, improving " -"the overall security of the application." -msgstr "" -"Aus Performance-Gründen ist es sinnvoll, ein Netzwerk für jede Stufe zu " -"haben, so dass der Verkehr von einer Stufe nicht 'andere Arten von Verkehr' " -"ausläuft und die Anwendung fehlschlägt. Darüber hinaus, mit separaten " -"Netzwerken ermöglicht die Kontrolle Zugriff auf Teile der Anwendung " -"einfacher zu verwalten, die Verbesserung der Gesamtsicherheit der Anwendung." - -msgid "" -"For this example, we take a floating IP pool from the 'public' network, " -"which is your external network." -msgstr "" -"Für dieses Beispiel nehmen wir einen Floating-IP-Pool aus dem 'öffentlichen' " -"Netzwerk, das ist Ihr externes Netzwerk." - -msgid "Fractals application architecture" -msgstr "Fraktale Anwendungsarchitektur" - -msgid "" -"From here, go to :doc:`/scaling_out` to learn how to further scale your " -"application. Or, try one of these steps in the tutorial:" -msgstr "" -"Von hier aus gehen Sie zu :doc:`/scaling_out`, um zu erfahren, wie Sie Ihre " -"Anwendung weiter skalieren können. Oder versuchen Sie einen dieser Schritte " -"im Tutorial:" - -msgid "Generate load" -msgstr "Last erzeugen" - -msgid "Get more information about the stack:" -msgstr "Erfahren Sie mehr über den Stack:" - -msgid "Getting started" -msgstr "Anfangen" - -msgid "Go" -msgstr "Go" - -msgid "Go ahead and create two instances." -msgstr "Machen Sie weiter und erstellen Sie zwei Instanzen." - -msgid "" -"Go ahead and delete the existing instances and security groups that you " -"created in previous sections. Remember, when instances in the cloud are no " -"longer working, remove them and re-create something new." -msgstr "" -"Gehen Sie vor und löschen Sie die vorhandenen Instanzen und " -"Sicherheitsgruppen, die Sie in früheren Abschnitten erstellt haben. Denken " -"Sie daran, wenn Instanzen in der Cloud nicht mehr arbeiten, entfernen Sie " -"sie und erstellen Sie etwas neu." - -msgid "" -"Go ahead and test the fault tolerance. Start deleting workers and API " -"instances. As long as you have one of each, your application is fine. " -"However, be aware of one weak point. The database contains the fractals and " -"fractal metadata. If you lose that instance, the application stops. Future " -"sections will explain how to address this weak point." -msgstr "" -"Machen Sie weiter und testen Sie die Fehlertoleranz. Starten Sie das Löschen " -"von Workern und API-Instanzen. Solange Sie eines von beiden haben, ist Ihre " -"Anwendung in Ordnung. Achten Sie jedoch auf einen Schwachpunkt. Die " -"Datenbank enthält die Fraktale und Fraktal-Metadaten. Wenn Sie diese Instanz " -"verlieren, ist die Anwendung beendet. Zukünftige Abschnitte werden erklären, " -"wie man diesen Schwachpunkt ansprechen kann." - -msgid "" -"Go to :doc:`/durability` to learn how to use Object Storage to solve this " -"problem in an elegant way. Or, you can proceed to one of these sections:" -msgstr "" -"Gehen Sie zu :doc:`/durability` um zu lernen, wie man Object Storage " -"verwendet, um dieses Problem auf eine elegante Weise zu lösen. Oder Sie " -"können zu einem dieser Abschnitte gehen:" - -msgid "Going crazy" -msgstr "Werde verrückt" - -msgid "HOT templating language" -msgstr "HOT Templating Sprache" - -msgid "High availability" -msgstr "Hohe Verfügbarkeit" - -msgid "" -"How do you deploy your application? For example, do you pull the latest code " -"from a source control repository? Do you make packaged releases that update " -"infrequently? Do you perform haphazard tests in a development environment " -"and deploy only after major changes?" -msgstr "" -"Wie stellen Sie Ihre Anwendung bereit? Zum Beispiel, ziehen Sie den neuesten " -"Code aus einem Quellcode-Repository? Machen Sie gepackte Releases, die sich " -"selten aktualisieren? Führen Sie zufällige Tests in einer " -"Entwicklungsumgebung durch und ersetzen Sie sie nur nach größeren Änderungen " -"ein?" - -msgid "How the Fractals application interacts with OpenStack" -msgstr "Wie die Fractals-Anwendung mit OpenStack interagiert" - -msgid "How you interact with OpenStack" -msgstr "Wie Sie mit OpenStack interagieren" - -msgid "If a key pair of the given name is not found then one is generated." -msgstr "" -"Wenn ein Schlüsselpaar des gegebenen Namens nicht gefunden wird, wird ein " -"solches erzeugt." - -msgid "" -"If an application is meant to automatically scale up and down to meet " -"demand, it is not feasible have any manual steps in the process of deploying " -"any component of the application. Automation also decreases the time to " -"recovery for your application in the event of component failures, increasing " -"fault tolerance and resilience." -msgstr "" -"Wenn eine Anwendung dazu gedacht ist, automatisch zu skalieren, um die " -"Nachfrage zu erfüllen, ist es nicht möglich, manuelle Schritte in den " -"Prozess der Bereitstellung einer Komponente anzuwenden. Automatisierung " -"verringert auch die Zeit für die Wiederherstellung für Ihre Anwendung bei " -"Komponentenausfällen, erhöht die Fehlertoleranz und die Widerstandsfähigkeit." - -msgid "" -"If either alarm reports the :code:`insufficient data` state, the default " -"sampling period of the stack is probably too low for your cloud; ask your " -"support team for assistance. You can set the period through the :code:" -"`period` parameter of the stack to match your clouds requirements." -msgstr "" -"Wenn entweder Alarm :code:'unzureichender Daten'-Zustand ist, ist die " -"Standard-Sampling-Periode des Stapels wahrscheinlich zu niedrig für Ihre " -"Cloud; fragen Sie Ihr Support-Team um Hilfe. Sie können die Periode durch " -"den :code:`period`-Parameter des Stacks einstellen, um Ihren Cloud-" -"Anforderungen gerecht zu werden." - -msgid "" -"If one application instance is compromised, all instances with the same " -"image and configuration will likely suffer the same vulnerability. The " -"safest path is to use configuration management to rebuild all instances." -msgstr "" -"Wenn eine Anwendungsinstanz kompromittiert wird, werden alle Instanzen mit " -"demselben Abbild und der Konfiguration wahrscheinlich dieselbe " -"Sicherheitsanfälligkeit erleiden. Der sicherste Weg ist, das " -"Konfigurationsmanagement zu verwenden, um alle Instanzen neu zu erstellen." - -msgid "" -"If one is assigned, users can use this address to access the instance on " -"some OpenStack clouds." -msgstr "" -"Wenn einer zugeordnet ist, können Benutzer diese Adresse verwenden, um auf " -"die Instanz bei einigen OpenStack-Clouds zuzugreifen." - -msgid "If one is assigned, users can use this address to access the instance." -msgstr "" -"Wenn einer zugeordnet ist, können Benutzer diese Adresse verwenden, um auf " -"die Instanz zuzugreifen." - -msgid "" -"If the image that you want is not available in your cloud, you can usually " -"upload one depending on the policy settings of your cloud. For information " -"about how to upload images, see `obtaining images `_." -msgstr "" -"Wenn das Abbild, das Sie wünschen, in Ihrer Cloud nicht verfügbar ist, " -"können Sie in der Regel einen von den Richtlinieneinstellungen Ihrer Cloud " -"hochladen. Informationen zum Hochladen von Abbildern finden Sie unter " -"'Abbilder abrufen' `_." - -msgid "" -"If you are an advanced user, think about how you might remove the database " -"from the architecture and replace it with Object Storage metadata, and then " -"contribute these steps to :doc:`craziness`." -msgstr "" -"Wenn Sie ein fortgeschrittener Benutzer sind, denken Sie darüber nach, wie " -"Sie die Datenbank aus der Architektur entfernen und sie mit Object Storage " -"Metadaten ersetzen können, und tragen Sie diese Schritte dann zu: doc: " -"`craziness`." - -msgid "" -"If you are familiar with OpenStack but have not created a cloud application " -"in general or an OpenStack application in particular, this section teaches " -"you how to program with OpenStack components." -msgstr "" -"Wenn Sie mit OpenStack vertraut sind, aber keine Cloud-Anwendung im " -"Allgemeinen oder eine OpenStack-Anwendung erstellt haben, informiert Sie " -"dieser Abschnitt darüber, wie Sie mit OpenStack-Komponenten programmieren " -"können." - -msgid "" -"If you check the load on the :code:`app-controller` API service instance, " -"you see that the instance is not doing well. On your single CPU flavor " -"instance, a load average greater than 1 means that the server is at capacity." -msgstr "" -"Wenn Sie die Belastung auf dem :code:`app-controller` API Service Instanz " -"überprüfen, sehen Sie, dass die Instanz nicht gut läuft. Bei Ihrer einzelnen " -"CPU-Varianten-Instanz bedeutet ein Last-Durchschnitt größer als 1, dass der " -"Server an Kapazität ist." - -msgid "" -"If you check the load on the worker, you can see that the instance is not " -"doing well. On the single CPU flavor instance, a load average greater than 1 " -"means that the server is at capacity." -msgstr "" -"Wenn Sie die Belastung des Workers überprüfen, können Sie sehen, dass die " -"Instanz nicht gut läuft. Bei der einzelnen CPU-Varianten-Instanz bedeutet " -"ein Last-Durchschnitt größer als 1, dass der Server an der Kapazitätsgrenze " -"ist." - -msgid "" -"If you deploy your application on a regular basis, you can resolve outages " -"and make security updates without manual intervention. If an outage occurs, " -"you can provision more resources in another region. If you must patch " -"security holes, you can provision additional compute nodes that are built " -"with the updated software. Then, you can terminate vulnerable nodes and " -"automatically fail-over traffic to the new instances." -msgstr "" -"Wenn Sie Ihre Anwendung regelmäßig bereitstellen, können Sie Ausfälle lösen " -"und Sicherheitsupdates ohne manuelle Eingriffe erstellen. Wenn ein Ausfall " -"auftritt, können Sie mehr Ressourcen in einer anderen Region bereitstellen. " -"Wenn Sie Sicherheitslücken beheben müssen, können Sie zusätzliche Compute-" -"Knoten bereitstellen, die mit der aktualisierten Software erstellt wurden. " -"Anschließend können Sie anfällige Knoten beenden und den neuen Instanzen " -"automatisch versagen." - -msgid "" -"If you do not have a working application, follow the steps in :doc:" -"`introduction` to create one." -msgstr "" -"Wenn Sie keine Arbeitsanwendung haben, folgen Sie den Schritten in :doc:" -"`introduction', um eine zu erstellen." - -msgid "" -"If you do not know Maven then the `Maven home site `_ is a good place to learn more." -msgstr "" -"Wenn Sie nicht wissen was Maven ist, dann ist die `Maven home site `_ ein guter Ort, um mehr zu lernen." - -msgid "" -"If you do not use floating IP addresses, substitute another IP address, as " -"appropriate." -msgstr "" -"Wenn Sie keine Floating-IP-Adressen verwenden, ersetzen Sie gegebenenfalls " -"eine andere IP-Adresse." - -msgid "" -"If you had a load balancer, you could distribute this load between the two " -"different API services. You have several options. The :doc:`networking` " -"section shows you one option." -msgstr "" -"Wenn Sie einen Load Balancer hätten, können Sie diese Last zwischen den " -"beiden verschiedenen API-Diensten verteilen. Sie haben mehrere " -"Möglichkeiten. Der :doc:`networking`-Bereich zeigt Ihnen eine Option." - -msgid "" -"If you have no free floating IPs that have been allocated for your project, " -"first select a network which offer allocation of floating IPs. In this " -"example we use network which is called :code:`public`." -msgstr "" -"Wenn Sie keine frei Floating-IPs haben, die für Ihr Projekt vergeben wurden, " -"wählen Sie zunächst ein Netzwerk aus, das die Zuweisung von Floating-IPs " -"anbietet. In diesem Beispiel verwenden wir das Netzwerk, das heißt :code:" -"`public`." - -msgid "" -"If you have no free floating IPs that have been previously allocated for " -"your project, first select a floating IP pool offered by your provider. In " -"this example, we have selected the first one and assume that it has " -"available IP addresses." -msgstr "" -"Wenn Sie keine frei Floating-IPs haben, die zuvor für Ihr Projekt reserviert " -"wurden, wählen Sie zunächst einen Floating IP Pool, der von Ihrem Provider " -"angeboten wird. In diesem Beispiel haben wir das erste ausgewählt und sind " -"davon ausgegangen, dass es über IP-Adressen verfügt." - -msgid "" -"If you have no free floating IPs that have been previously allocated for " -"your project, then select a floating IP pool offered by your provider. In " -"this example, we have selected the first one and assume that it has " -"available IP addresses." -msgstr "" -"Wenn Sie keine frei Floating-IPs haben, die zuvor für Ihr Projekt reserviert " -"wurden, wählen Sie einen Floating IP Pool, der von Ihrem Provider angeboten " -"wird. In diesem Beispiel haben wir das erste ausgewählt und davon " -"ausgegangen, dass es über IP-Adressen verfügt." - -msgid "If you list existing instances:" -msgstr "Wenn Sie vorhandene Instanzen auflisten:" - -msgid "If you list the instances again, the instance disappears." -msgstr "Wenn Sie die Instanzen erneut auflisten, verschwindet die Instanz." - -msgid "" -"If you receive the :code:`libcloud.common.types.InvalidCredsError: 'Invalid " -"credentials with the provider'` exception when you run one of these API " -"calls, double-check your credentials." -msgstr "" -"Wenn Sie den :code: `libcloud.common.types.InvalidCredsError: 'Ungültige " -"Anmeldeinformationen mit der Provider-Ausnahme erhalten, wenn Sie eines " -"dieser API-Aufrufe ausführen, überprüfen Sie Ihre Anmeldeinformationen." - -msgid "" -"If you receive the exception :code:`openstack.exceptions.HttpException: " -"HttpException: 401 Client Error: Unauthorized,` while trying to run one of " -"the following API calls please double-check your credentials." -msgstr "" -"Wenn Sie die Ausnahme erhalten :code: `openstack.exceptions.HttpException: " -"HttpException: 401 Client-Fehler: Unbefugte` beim Versuch, einen der " -"folgenden API-Aufrufe auszuführen, bitte überprüfen Sie Ihre " -"Anmeldeinformationen." - -msgid "" -"If you see an IOError, you may need to change ``~/.ssh/`` to ``/home/" -"{USERNAME}/.ssh/``, using an absolute path." -msgstr "" -"Wenn Sie einen IOError sehen, müssen Sie ``~/.ssh/`` zu ``/home/{USERNAME}/." -"ssh/`` ändern, indem Sie einen absoluten Pfad verwenden." - -msgid "" -"If you think about how you traditionally make what you store durable, you " -"quickly conclude that keeping multiple copies of your objects on separate " -"systems is a good way strategy. However, keeping track of those multiple " -"copies is difficult, and building that into an app requires complicated " -"logic." -msgstr "" -"Wenn Sie darüber nachdenken, was Sie traditionell machen, um sie haltbar zu " -"speichern, merken Sie schnell, dass das Halten mehrerer Kopien Ihrer Objekte " -"auf getrennten Systemen eine gute Wegstrategie ist. Allerdings ist die " -"Verfolgung dieser Mehrfachkopien schwierig, und das Erstellen einer in eine " -"App erfordert komplizierte Logik." - -msgid "" -"If you work with large objects, use the :code:`RegionScopedBlobStoreContext` " -"class family instead of the ones used so far." -msgstr "" -"Wenn Sie mit großen Objekten arbeiten, verwenden Sie die :code: " -"`RegionScopedBlobStoreContext` Klassefamilie anstelle der bisher verwendeten." - -msgid "" -"If you work with large objects, use the :code:`ex_multipart_upload_object` " -"call instead of the simpler :code:`upload_object` call. The call splits the " -"large object into chunks and creates a manifest so that the chunks can be " -"recombined on download. Change the :code:`chunk_size` parameter, in bytes, " -"to a value that your cloud can accept." -msgstr "" -"Wenn Sie mit großen Objekten arbeiten, verwenden Sie den :code: " -"`ex_multipart_upload_object` anstelle des einfacheren :code:` upload_object` " -"call. Der Aufruf spaltet das große Objekt in Chunks und schafft ein " -"Manifest, so dass die Chunks beim Download rekombiniert werden können. " -"Ändern Sie den :code: `chunk_size` Parameter, in Bytes, auf einen Wert, den " -"Ihre Cloud akzeptieren kann." - -msgid "" -"If your provider does not support regions, try a blank string ('') for the " -"`region_name`." -msgstr "" -"Wenn Ihr Provider keine Regionen unterstützt, versuchen Sie einen leeren " -"String ('') für den 'region_name`." - -msgid "" -"In a new Terminal window, SSH into the 'api' API instance. Use the key pair " -"name that you passed in as a parameter." -msgstr "" -"In einem neuen Terminal-Fenster, SSH in die 'API-API-Instanz'. Verwenden Sie " -"den Schlüsselpaarnamen, den Sie als Parameter übergeben haben." - -msgid "" -"In addition to configuring backups, review your policies about what you back " -"up and how long to retain each backed up item." -msgstr "" -"Zusätzlich zur Konfiguration von Backups, überprüfen Sie Ihre Richtlinien " -"über das, was Sie sichern und wie lange, um jedes gesicherte Element zu " -"behalten." - -msgid "" -"In addition to this kind of monitoring, you should consider availability " -"monitoring. Although your application might not care about a failed worker, " -"it should care about a failed database server." -msgstr "" -"Zusätzlich zu dieser Art der Überwachung sollten Sie die " -"Verfügbarkeitsüberwachung berücksichtigen. Obwohl Ihre Anwendung sich nicht " -"um einen gescheiterten Worker kümmern sollte, sollte sie es bei einen " -"fehlgeschlagenen Datenbankserver tun." - -msgid "" -"In cloud programming, it is very different. Rather than large, expensive " -"servers, you have virtual machines that are disposable; if something goes " -"wrong, you shut the server down and spin up a new one. There is still " -"operations staff, but rather than nursing individual servers back to health, " -"their job is to monitor the health of the overall system." -msgstr "" -"Bei der Cloud-Programmierung ist es ganz anders. Anstatt große, teure " -"Server, haben Sie virtuelle Maschinen, die Einweg sind; Wenn etwas schief " -"geht, fahren Sie den Server herunter und erzeugen einen neuen. Es gibt immer " -"noch Betriebs-Mitarbeiter, aber anstatt einzelne Server zu pflegen und zu " -"betreuen, ist es ihre Aufgabe, die Gesundheit des Gesamtsystems zu " -"überwachen." - -msgid "" -"In cloud programming, there is a well-known analogy known as \"cattle vs pets" -"\". If you have not heard it before, it goes like this:" -msgstr "" -"In der Cloud-Programmierung gibt es eine bekannte Analogie, die als 'Vieh vs " -"Haustiere' bekannt ist. Wenn Sie es noch nicht gehört haben, geht es so:" - -msgid "" -"In earlier sections, the Fractal application used an installation script " -"into which the metadata API passed parameters to bootstrap the cluster. " -"`Etcd `_ is \"a distributed, consistent key-" -"value store for shared configuration and service discovery\" that you can " -"use to store configurations. You can write updated versions of the Fractal " -"worker component to connect to Etcd or use `Confd `_ to poll for changes from Etcd and write changes to " -"a configuration file on the local file system, which the Fractal worker can " -"use for configuration." -msgstr "" -"In früheren Abschnitten verwendete die Fractal-Anwendung ein " -"Installationsskript, in das die Metadaten-API übergeben wurde, um den " -"Cluster zu booten. `etcd `_ ist' ein " -"verteilter, konsistenter Key-Value-Store für gemeinsame Konfiguration und " -"Service Discovery ', den Sie verwenden können, um Konfigurationen zu " -"speichern. Sie können aktualisierte Versionen der Fractal Worker-Komponente " -"schreiben, um eine Verbindung zu etcd herzustellen oder `confd `_, um für Änderungen von etcd abzufragen " -"und Änderungen an einer Konfigurationsdatei auf dem lokalen Dateisystem zu " -"schreiben, die der Fractal-Arbeiter zur Konfiguration verwenden kann." - -msgid "" -"In openstacksdk parameter :code:`ex_userdata` is called :code:`user_data` " -"and parameter :code:`ex_keyname` is called :code:`key_name`." -msgstr "" -"Im openstacksdk-Parameter :code:`ex_userdata` heißt :code:`user_data` und " -"Parameter :code:`ex_keyname` heißt :code:`key_name`." - -msgid "" -"In previous chapters, all nodes that comprise the fractal application were " -"attached to the same network." -msgstr "" -"In früheren Kapiteln wurden alle Knoten, die die Fraktalanwendung enthalten, " -"an das gleiche Netzwerk angeschlossen." - -msgid "" -"In previous sections, you used your SDK to programmatically interact with " -"OpenStack. In this section, you use the 'heat' command-line client to access " -"the Orchestration API directly through template files." -msgstr "" -"In früheren Abschnitten haben Sie mit Ihrem SDK programmgesteuert mit " -"OpenStack interagiert. In diesem Abschnitt verwenden Sie den 'heat' " -"Befehlszeilenclient, um über die Vorlagendateien direkt auf die " -"Orchestrierungs-API zuzugreifen." - -msgid "" -"In the Terminal window where you run ceilometer, run :code:" -"`ceilometer_sample_query` to see the samples." -msgstr "" -"Im Terminalfenster, wo Sie den Ceilometer laufen haben, führen Sie :code: " -"`ceilometer_sample_query` aus, um die Samples zu sehen." - -msgid "" -"In the following example, set :code:`pub_key_file` to the location of your " -"public SSH key file." -msgstr "" -"Im folgenden Beispiel setzen Sie :code:`pub_key_file` an den Speicherort " -"Ihrer öffentlichen SSH-Schlüsseldatei." - -msgid "In the outputs section of the stack, you can run these web API calls:" -msgstr "" -"Im Ausgabebereich des Stacks können Sie diese Web-API-Aufrufe ausführen:" - -msgid "" -"In the previous steps, you split out several services and expanded capacity. " -"To see the new features of the Fractals application, SSH to one of the app " -"instances and create a few fractals." -msgstr "" -"In den vorherigen Schritten haben Sie mehrere Dienste aufgeteilt und " -"Kapazitäten erweitert. Um die neuen Features der Fractals-Anwendung zu " -"sehen, verbinden Sie sich mit SSH zu einer der App-Instanzen und erstellen " -"Sie ein paar Fraktale." - -msgid "" -"In theory, you could use a simple script to monitor the load on your workers " -"and API services and trigger the creation of instances, which you already " -"know how to do. Congratulations! You are ready to create scalable cloud " -"applications." -msgstr "" -"In der Theorie können Sie ein einfaches Skript verwenden, um die Belastung " -"Ihrer Worker und API-Dienste zu überwachen und die Erstellung von Instanzen " -"auszulösen, die Sie bereits kennen. Glückwunsch! Sie sind bereit, " -"skalierbare Cloud-Anwendungen zu erstellen." - -msgid "" -"In this case, we are presenting a shell script as the `userdata `_. " -"When :code:`create_node` creates the instance, :code:`cloud-init` executes " -"the shell script in the :code:`userdata` variable." -msgstr "" -"In diesem Fall präsentieren wir ein Shell-Skript als `userdata `_. " -"Wenn :code:`create_node` die Instanz erstellt, wird :code:`cloud-init` als " -"Shell-Skript in der Variable :code:`userdata` ausgeführt." - -msgid "" -"In this network layout, we assume that the OpenStack cloud in which you have " -"been building your application has a public network and tenant router that " -"was previously created by your cloud provider or by yourself, following the " -"instructions in the appendix." -msgstr "" -"In diesem Netzwerklayout gehen wir davon aus, dass die OpenStack-Cloud, in " -"der Sie Ihre Applikation aufgebaut haben, einen öffentlichen Netzwerk- und " -"Tenant-Router hat, der zuvor von Ihrem Cloud-Provider oder von Ihnen selbst " -"erstellt wurde, und zwar nach den Anweisungen im Anhang." - -msgid "" -"In this template, the alarms use metadata that is attached to each worker " -"instance. The metadata is in the :code:`metering.stack=stack_id` format." -msgstr "" -"In dieser Vorlage verwenden die Alarme Metadaten, die an jede Worker-Instanz " -"angehängt sind. Die Metadaten befinden sich im :code:`metering.stack = " -"stack_id` Format." - -msgid "" -"In this tutorial, we have downloaded the latest version of our application " -"from source and installed it on a standard image. Our magic installation " -"script also updates the standard image to have the latest dependencies that " -"you need to run the application." -msgstr "" -"In diesem Tutorial haben wir die neueste Version unserer Applikation aus der " -"Quelle heruntergeladen und auf einem Standardabbild installiert. Unser " -"magisches Installationsskript aktualisiert auch das Standardabbild, um die " -"neuesten Abhängigkeiten zu haben, die Sie benötigen, um die Anwendung " -"auszuführen." - -msgid "" -"In this tutorial, you interact with your OpenStack cloud through the SDK " -"that you chose in \"Choose your OpenStack SDK.\" This guide assumes that you " -"know how to run code snippets in your language of choice." -msgstr "" -"In diesem Tutorial interagieren Sie mit Ihrer OpenStack Cloud durch das SDK, " -"das Sie in 'Wählen Sie Ihr OpenStack SDK' gewählt haben. Diese Anleitung " -"setzt voraus, dass Sie wissen, wie Sie Code-Snippets in Ihrer Sprache der " -"Wahl ausführen können." - -msgid "" -"In traditional data centers, network segments are dedicated to specific " -"types of network traffic." -msgstr "" -"In den traditionellen Rechenzentren sind Netzwerksegmente bestimmten Arten " -"von Netzwerkverkehr gewidmet." - -msgid "In your SSH session, confirm that no fractals were generated:" -msgstr "" -"In Ihrer SSH-Sitzung bestätigen Sie, dass keine Fraktale erzeugt wurden:" - -msgid "" -"Initially, the focus is on scaling the workers because they consume the most " -"resources." -msgstr "" -"Zunächst liegt der Schwerpunkt auf der Skalierung der Worker, weil sie die " -"meisten Ressourcen verbrauchen." - -msgid "Install a service" -msgstr "Installiere eines Dienstes" - -msgid "" -"Install the 'heat' command-line client by following this guide: https://docs." -"openstack.org/cli-reference/common/" -"cli_install_openstack_command_line_clients.html#install-the-clients" -msgstr "" -"Installieren Sie den 'heat' Befehlszeilenclient, indem Sie diesem Handbuch " -"folgen: https://docs.openstack.org/cli-reference/common/" -"cli_install_openstack_command_line_clients.html#install-the-clients" - -msgid "" -"Internet connectivity from your cloud instance is required to download the " -"application." -msgstr "" -"Internet-Konnektivität von Ihrer Cloud-Instanz ist erforderlich, um die " -"Anwendung herunterzuladen." - -msgid "Introduction to Floating IPs" -msgstr "Einführung in Floating-IPs" - -msgid "Introduction to cloud-init" -msgstr "Einführung in cloud-init" - -msgid "Introduction to key pairs" -msgstr "Einführung in Schlüsselpaare" - -msgid "Introduction to security groups" -msgstr "Einführung in Sicherheitsgruppen" - -msgid "Introduction to tenant networking" -msgstr "Einführung in die Tenant-Vernetzung" - -msgid "Introduction to the fractals application architecture" -msgstr "Einführung in die Architektur der Fraktale" - -msgid "" -"It is easy to split out services into multiple instances. We will create a " -"controller instance called :code:`app-controller`, which hosts the API, " -"database, and messaging services. We will also create a worker instance " -"called :code:`app-worker-1`, which just generates fractals." -msgstr "" -"Es ist einfach, Dienste in mehrere Instanzen aufzuteilen. Wir erstellen eine " -"Controller-Instanz namens :code:`app-controller`, die die API-, Datenbank- " -"und Messaging-Dienste hostet. Wir werden auch eine Worker-Instanz namens :" -"code:`app-worker-1` erstellen, die nur Fraktale erzeugt." - -msgid "It is not possible to restore deleted objects. Be careful." -msgstr "Es ist nicht möglich, gelöschte Objekte wiederherzustellen. Achtung." - -msgid "Java" -msgstr "Java" - -msgid "" -"Jclouds does not currently support OpenStack Orchestration. See this `bug " -"report `_." -msgstr "" -"Jclouds unterstützt derzeit keine OpenStack Orchestration. Siehe diesen " -"Fehlerbericht `_." - -msgid "" -"Just as you back up information on a non-cloud server, you must back up non-" -"reproducible information, such as information on a database server, file " -"server, or in application log files. Just because something is 'in the " -"cloud' does not mean that the underlying hardware or systems cannot fail." -msgstr "" -"So wie Sie Informationen über einen Nicht-Cloud-Server sichern, müssen Sie " -"nicht reproduzierbare Informationen wie Informationen über einen " -"Datenbankserver, einen Dateiserver oder in Anwendungsprotokolldateien " -"sichern. Nur weil etwas in der Cloud ist, bedeutet das nicht, dass die " -"zugrunde liegenden Hardware oder Systeme nicht ausfallen können." - -msgid "Language" -msgstr "Sprache" - -msgid "" -"Large file uploads that use the :code:`openstack-swift` provider are " -"supported in only jclouds V2, currently in beta. Also, the default chunk " -"size is 64 Mb. Consider changing this as homework." -msgstr "" -"Große Datei-Uploads, die den :code: `openstack-swift` Anbieter verwenden, " -"werden nur in jclouds V2 unterstützt, derzeit in beta. Auch die Standard-" -"Chunk-Größe beträgt 64 Mb. Betrachten Sie das Ändern als Hausaufgaben." - -msgid "Large objects" -msgstr "Große Objekte" - -msgid "" -"Later on, you will use a Block Storage volume to provide persistent storage " -"for the database server for the Fractal application. But first, learn how to " -"create and attach a Block Storage device." -msgstr "" -"Später verwenden Sie ein Blockspeicher-Volume, um einen permanenten Speicher " -"für den Datenbankserver für die Fractal-Anwendung bereitzustellen. Aber " -"zuerst lernen Sie, wie man ein Blockspeichergerät erstellt und anhängt." - -msgid "Launch an instance" -msgstr "Starten Sie eine Instanz" - -msgid "Launch the stack with auto-scaling workers:" -msgstr "Starten Sie den Stack mit Auto-Skalierung Worker:" - -msgid "" -"Leave your shell open to use it for another instance deployment in this " -"section." -msgstr "" -"Lassen Sie Ihre Shell offen, um sie für eine weitere Instanz-Installation in " -"diesem Abschnitt zu verwenden." - -msgid "" -"Libcloud 0.16 and 0.17 are afflicted with a bug that means authentication to " -"a swift endpoint can fail with `a Python exception `_. If you encounter this, you can upgrade your " -"libcloud version, or apply a simple `2-line patch `_." -msgstr "" -"Libcloud 0,16 und 0,17 sind mit einem Fehler behaftet, der bedeutet, dass " -"die Authentifizierung für einen swift Endpunkt mit einer Python-Ausnahme " -"fehlschlägt `_. Wenn " -"Sie dies begegnen, können Sie Ihre libcloud-Version aktualisieren oder einen " -"einfachen '2-zeiligen Patch anwenden `_." - -msgid "Libcloud does not support the OpenStack Networking API." -msgstr "Libcloud unterstützt die OpenStack Networking API nicht." - -msgid "" -"Libcloud uses a different connector for Object Storage to all other " -"OpenStack services, so a conn object from previous sections will not work " -"here and we have to create a new one named :code:`swift`." -msgstr "" -"Libcloud verwendet einen unterschiedlichen Anschluss für Object Storage für " -"alle anderen OpenStack-Dienste, so dass ein Conn-Objekt aus früheren " -"Abschnitten hier nicht funktioniert und wir müssen einen neuen namens :code: " -"`swift` erstellen." - -msgid "" -"Like many cloud applications, the Fractals application has a `RESTful API " -"`_. You can " -"connect to it directly and generate fractals, or you can integrate it as a " -"component of a larger application. Any time a standard interface such as an " -"API is available, automated testing becomes much more feasible, increasing " -"software quality." -msgstr "" -"Wie viele Cloud-Anwendungen hat die Fractals-Anwendung eine 'RESTful API' " -" `_. Sie " -"können sich direkt mit ihr verbinden und Fraktale erzeugen, oder Sie können " -"sie als Bestandteil einer größeren Anwendung integrieren. Jedes Mal, wenn " -"eine Standardschnittstelle wie eine API verfügbar ist, wird automatisiertes " -"Testen viel mehr machbar, wodurch die Softwarequalität erhöht wird." - -msgid "" -"List all available floating IPs for this project and select the first free " -"one. Allocate a new floating IP if none is available." -msgstr "" -"Auflisten aller verfügbaren Floating-IPs für dieses Projekt und wählen Sie " -"die erste freie. Weisen Sie eine neue Floating-IP zu, wenn keine verfügbar " -"ist." - -msgid "" -"List objects in your :code:`fractals` container to see if the upload was " -"successful. Then, download the file to verify that the md5sum is the same:" -msgstr "" -"Auflisten von Objekten in Ihrem :code: `Fraktale` Container, um zu sehen, ob " -"der Upload erfolgreich war. Dann laden Sie die Datei herunter, um zu " -"überprüfen, ob das md5sum gleich ist:" - -msgid "Load balancing" -msgstr "Lastverteilung" - -msgid "Load the API: Create a lot of API service requests" -msgstr "Laden Sie die API: Erstellen Sie viele API-Dienstanforderungen" - -msgid "" -"Load the worker: Create a lot of tasks to max out the CPU of existing worker " -"instances" -msgstr "" -"Laden Sie den Worker: Erstellen Sie eine Menge von Aufgaben, um die CPU der " -"vorhandenen Worker-Instanzen zu maximieren" - -msgid "Log in to the server to run the following steps." -msgstr "Melden Sie sich beim Server an, um die folgenden Schritte auszuführen." - -msgid "" -"Login to the worker instance, :code:`app-worker-1`, with SSH, using the " -"previous added SSH key pair \"demokey\". Start by getting the IP address of " -"the worker:" -msgstr "" -"Melden Sie sich mit SSH bei der Worker-Instanz an :code:`app-worker-1`, " -"unter Verwendung des vorherigen SSH-Schlüsselpaars 'demokey'. Beginnen Sie " -"mit der IP-Adresse des Workers:" - -msgid "Login with SSH and use the Fractal app" -msgstr "Melden Sie sich mit SSH an und nutzen Sie die Fractal App" - -msgid "Look at which ports are available:" -msgstr "Schauen Sie, welche Ports verfügbar sind:" - -msgid "" -"Make cloud-related architecture decisions such as turning functions into " -"micro-services and modularizing them." -msgstr "" -"Machen Sie Cloud-bezogene Architekturentscheidungen wie das Drehen von " -"Funktionen in Mikro-Services und modularisieren sie." - -msgid "Make it durable" -msgstr "Mach es haltbar" - -msgid "Make it possible to add new resources to your application." -msgstr "" -"Machen Sie es möglich, neue Ressourcen zu Ihrer Anwendung hinzuzufügen." - -msgid "" -"Many of the network concepts that are discussed in this section are already " -"present in the diagram above. A tenant router provides routing and external " -"access for the worker nodes, and floating IP addresses are associated with " -"each node in the Fractal application cluster to facilitate external access." -msgstr "" -"Viele der Netzwerkkonzepte, die in diesem Abschnitt besprochen werden, sind " -"bereits im obigen Diagramm vorhanden. Ein Tenant Router bietet Routing und " -"externen Zugriff für die Worker-Knoten, und Floating-IP-Adressen sind mit " -"jedem Knoten im Fractal Application Cluster zugeordnet, um den externen " -"Zugriff zu erleichtern." - -msgid "" -"Maven will download and install any dependencies required for compilation, " -"then execute the Java compiler. All files in the :code:`java` subdirectory " -"will be compiled." -msgstr "" -"Maven wird alle für die Kompilierung benötigten Abhängigkeiten herunterladen " -"und installieren und dann den Java-Compiler ausführen. Alle Dateien im :" -"code: `java` subdirectory werden kompiliert." - -msgid "" -"Maven will download and install any further dependencies required and then " -"run the chosen class." -msgstr "" -"Maven wird heruntergeladen und installiert weitere erforderliche " -"Abhängigkeiten und startet dann die gewählte Klasse." - -msgid "" -"Message queues are used to facilitate communication between the Fractal " -"application services. The Fractal application uses a `work queue `_ (or task queue) to " -"distribute tasks to the worker services." -msgstr "" -"Message-Warteschlangen werden verwendet, um die Kommunikation zwischen den " -"Fractal-Anwendungsdiensten zu erleichtern. Die Fractal-Anwendung verwendet " -"eine 'Warteschlange' `_ (oder Task-Warteschlange), um Aufgaben an die Worker-Services zu " -"verteilen." - -msgid "" -"Message queues work in a way similar to a queue (or a line, for those of us " -"on the other side of the ocean) in a bank being served by multiple clerks. " -"The message queue in our application provides a feed of work requests that " -"can be taken one-at-a-time by worker services, whether there is a single " -"worker service or hundreds of them." -msgstr "" -"Message-Warteschlangen arbeiten ähnlich wie eine Warteschlange (oder eine " -"Reihe, für diejenigen von uns auf der anderen Seite des Ozeans) in einer " -"Bank, die von mehreren Angestellten bedient wird. Die Meldungswarteschlange " -"in unserer Anwendung bietet einen Feed von Arbeitsanfragen, die von den " -"Arbeitnehmerdiensten ein-zu-Zeit genommen werden können, ob es einen " -"einzelnen Workerservice oder Hunderte von ihnen gibt." - -msgid "Modularity and micro-services" -msgstr "Modularität und Mikro-Dienste" - -msgid "Monitoring" -msgstr "Überwachung" - -msgid "" -"Monitoring is essential for 'scalable' cloud applications. You must know how " -"many requests are coming in and the impact that these requests have on " -"various services. You must have enough information to determine whether to " -"start another worker or API service as you did in :doc:`/scaling_out`." -msgstr "" -"Die Überwachung ist für 'skalierbare' Cloud-Anwendungen unerlässlich. Sie " -"müssen wissen, wie viele Anfragen kommen und die Auswirkungen, die diese " -"Anfragen auf verschiedene Dienste haben. Sie müssen genügend Informationen " -"haben, um festzustellen, ob ein anderer Worker oder ein API-Dienst wie folgt " -"ausgegeben werden soll: doc: `/scaling_out`." - -msgid "" -"Most cloud providers make a public network accessible to you. We will attach " -"a router to this public network to grant Internet access to our instances. " -"After also attaching this router to our internal networks, we will allocate " -"floating IPs from the public network for instances which need to be accessed " -"from the Internet." -msgstr "" -"Die meisten Cloud-Provider machen ein öffentliches Netzwerk für Sie " -"zugänglich. Wir werden einen Router an dieses öffentliche Netz anschließen, " -"um den Internet-Zugang zu unseren Instanzen zu gewähren. Nachdem wir diesen " -"Router auch an unsere internen Netzwerke angehängt haben, werden wir aus dem " -"öffentlichen Netz Floating-IPs aus dem öffentlichen Netz zuordnen, für die " -"aus dem Internet zugegriffen werden muss." - -msgid "" -"Most cloud providers provision all network objects that are required to boot " -"an instance. To determine whether these objects were created for you, access " -"the Network Topology section of the OpenStack dashboard." -msgstr "" -"Die meisten Cloud-Provider stellen alle Netzwerkobjekte bereit, die zum " -"Booten einer Instanz erforderlich sind. Um festzustellen, ob diese Objekte " -"für Sie erstellt wurden, rufen Sie den Abschnitt 'Netzwerk-Topologie' des " -"OpenStack-Dashboards auf." - -msgid "" -"Most instances require access to the Internet. The instances in your " -"Fractals app are no exception! Add routers to pass traffic between the " -"various networks that you use." -msgstr "" -"Die meisten Instanzen benötigen Zugang zum Internet. Die Instanzen in Ihrer " -"Fractals App sind keine Ausnahme! Fügen Sie Router hinzu, um den " -"Datenverkehr zwischen den verschiedenen Netzwerken, die Sie verwenden, zu " -"übergeben." - -msgid "Multiple clouds" -msgstr "Mehrere Clouds" - -msgid "Name" -msgstr "Name" - -msgid "" -"Network access. By default, OpenStack filters all traffic. You must create a " -"security group and apply it to your instance. The security group allows HTTP " -"and SSH access. We will go into more detail in :doc:`/introduction`." -msgstr "" -"Netzwerkzugang. Standardmäßig filtert OpenStack den gesamten Traffic. Sie " -"müssen eine Sicherheitsgruppe erstellen und diese auf Ihre Instanz anwenden. " -"Die Sicherheitsgruppe ermöglicht HTTP- und SSH-Zugriff. Wir werden " -"ausführlicher in :doc:`/introduction`." - -msgid "Networking" -msgstr "Vernetzung" - -msgid "Networking segmentation" -msgstr "Vernetzungsegmentierung" - -msgid "Neutron LbaaS API" -msgstr "Neutron LbaaS API" - -# #-#-#-#-# ceilometer-next-steps.pot (Installation Guide 0.1) #-#-#-#-# -# #-#-#-#-# cinder-next-steps.pot (Installation Guide 0.1) #-#-#-#-# -# #-#-#-#-# dashboard-next-step.pot (Installation Guide 0.1) #-#-#-#-# -# #-#-#-#-# heat-next-step.pot (Installation Guide 0.1) #-#-#-#-# -# #-#-#-#-# networking-next-steps.pot (Installation Guide 0.1) #-#-#-#-# -# #-#-#-#-# swift-next-steps.pot (Installation Guide 0.1) #-#-#-#-# -msgid "Next steps" -msgstr "Nächste Schritte" - -msgid "" -"Next, back up all existing fractals from the database to the swift " -"container. A simple loop takes care of that:" -msgstr "" -"Als nächstes unterstützen Sie alle vorhandenen Fraktale aus der Datenbank in " -"den swift Container. Eine einfache Schleife kümmert sich darum:" - -msgid "Next, create a network and subnet for the API servers." -msgstr "" -"Als nächstes erstellen Sie ein Netzwerk und Subnetz für die API-Server." - -msgid "Next, create a network and subnet for the workers." -msgstr "Als nächstes erstellen Sie ein Netzwerk und Subnetz für die Worker." - -msgid "" -"Next, create additional floating IPs. Specify the fixed IP addresses they " -"should point to and the ports that they should use:" -msgstr "" -"Als nächstes erstellen Sie zusätzliche Floating-IPs. Geben Sie die festen IP-" -"Adressen an, auf die sie verweisen sollen, und die Ports, die sie verwenden " -"sollten:" - -msgid "Next, start a second instance, which will be the worker instance:" -msgstr "" -"Als nächstes starten Sie eine zweite Instanz, die die Worker-Instanz sein " -"wird:" - -msgid "Next, tell the script which flavor you want to use:" -msgstr "" -"Als nächstes sagen Sie dem Skript, welche Variante Sie verwenden möchten:" - -msgid "" -"Note that the worker instance is part of an :code:`OS::Heat::" -"AutoScalingGroup`." -msgstr "" -"Beachten Sie, dass die Worker-Instanz Teil eines :code:`OS::Heat::" -"AutoScalingGroup` ist." - -msgid "" -"Note that this time, when you create a security group, you include a rule " -"that applies to only instances that are part of the worker group." -msgstr "" -"Beachten Sie, dass dieses Mal, wenn Sie eine Sicherheitsgruppe erstellen, " -"eine Regel enthält, die nur für Instanzen gilt, die Teil der Worker-Gruppe " -"sind." - -msgid "" -"Note that we will be showing the commands in a more idiomatic Java way: as " -"methods on a class." -msgstr "" -"Beachten Sie, dass wir die Befehle in einer idiomatischeren Java-Weise " -"darstellen werden: als Methoden für eine Klasse." - -msgid "" -"Notice that you have added this instance to the worker_group, so it can " -"access the controller." -msgstr "" -"Beachten Sie, dass Sie diese Instanz der worker_group hinzugefügt haben, " -"damit sie auf den Controller zugreifen kann." - -msgid "" -"Now call the Fractal application's command line interface (:code:`faafo`) to " -"request a few new fractals. The following command requests a few fractals " -"with random parameters:" -msgstr "" -"Rufen Sie nun die Befehlszeilenschnittstelle der Fractal-Anwendung an (:code:" -"`faafo`), um ein paar neue Fraktale anzufordern. Der folgende Befehl fordert " -"einige Fraktale mit zufälligen Parametern an:" - -msgid "" -"Now create a virtual IP that will be used to direct traffic between the " -"various members of the pool:" -msgstr "" -"Erstellen Sie nun eine virtuelle IP, die für den direkten Verkehr zwischen " -"den verschiedenen Mitgliedern des Pools verwendet wird:" - -msgid "" -"Now if you make a request for a new fractal, you connect to the controller " -"instance, :code:`app-controller`, but the work will actually be performed by " -"a separate worker instance - :code:`app-worker-1`." -msgstr "" -"Nun, wenn Sie eine Anfrage für ein neues Fraktal machen, verbinden Sie sich " -"mit der Controller-Instanz :code:`App-Controller`, aber die Arbeit wird " -"tatsächlich von einer separaten Worker-Instanz durchgeführt - :code:` app-" -"worker-1` ." - -msgid "" -"Now log into the controller instance, :code:`app-controller`, also with SSH, " -"using the previously added SSH key pair \"demokey\"." -msgstr "" -"Melden Sie sich jetzt bei der Controller-Instanz an :code:`app-controller`, " -"auch mit SSH, mit dem zuvor hinzugefügten SSH-Schlüsselpaar' demokey ' an ." - -msgid "Now prepare the empty block device." -msgstr "Jetzt das leere Blockgerät vorbereiten." - -msgid "" -"Now request an address from this network to be allocated to your project." -msgstr "" -"Fordern Sie nun eine Adresse aus diesem Netzwerk an, die Ihrem Projekt " -"zugeordnet werden soll." - -msgid "" -"Now request that an address from this pool be allocated to your project." -msgstr "" -"Bitte fordern Sie an, dass eine Adresse aus diesem Pool Ihrem Projekt " -"zugewiesen wird." - -msgid "" -"Now that you have an unused floating IP address allocated to your project, " -"attach it to an instance." -msgstr "" -"Nun, da Sie eine unbenutzte Floating-IP-Adresse für Ihr Projekt zugeordnet " -"haben, fügen Sie es an eine Instanz." - -msgid "" -"Now that you have got the networks created, go ahead and create two Floating " -"IPs, for web servers. Ensure that you replace 'public' with the name of the " -"public/external network offered by your cloud provider." -msgstr "" -"Jetzt haben Sie die Netzwerke erstellt, gehen Sie vor und erstellen Sie zwei " -"Floating IPs, für Web-Server. Stellen Sie sicher, dass Sie 'public' durch " -"den Namen des öffentlichen/externen Netzwerks ersetzen, das von Ihrem Cloud-" -"Provider angeboten wird." - -msgid "" -"Now that you have prepared the networking infrastructure, you can go ahead " -"and boot an instance on it. Ensure you use appropriate flavor and image " -"values for your cloud - see :doc:`getting_started` if you have not already." -msgstr "" -"Nun, da Sie die Netzwerk-Infrastruktur vorbereitet haben, können Sie voran " -"gehen und eine Instanz auf ihr booten. Vergewissern Sie sich, dass Sie " -"geeignete Varianten- und Abbildwerte für Ihre Cloud verwenden - siehe :doc:" -"`get_started`, wenn Sie noch nicht dort waren." - -msgid "" -"Now that you know how to create and delete instances, you can deploy the " -"sample application. The instance that you create for the application is " -"similar to the first instance that you created, but this time, we introduce " -"a few extra concepts." -msgstr "" -"Nun, da Sie wissen, wie Sie Instanzen erstellen und löschen, können Sie die " -"Beispielanwendung bereitstellen. Die Instanz, die Sie für die Anwendung " -"erstellen, ähnelt der ersten Instanz, die Sie erstellt haben, aber dieses " -"Mal stellen wir Ihnen einige zusätzliche Konzepte vor." - -msgid "Now you can SSH into the instance:" -msgstr "Jetzt können Sie mit SSH in die Instanz:" - -msgid "Now, attach your router to the worker, API, and web server subnets." -msgstr "" -"Jetzt fügen Sie Ihren Router an die Worker-, API- und Web-Server-Subnetze an." - -msgid "" -"Now, create a health monitor that will ensure that members of the load " -"balancer pool are active and able to respond to requests. If a member in the " -"pool dies or is unresponsive, the member is removed from the pool so that " -"client requests are routed to another active member." -msgstr "" -"Erstellen Sie nun einen Gesundheitsmonitor, der sicherstellt, dass " -"Mitglieder des Load Balancer Pools aktiv sind und auf Anfragen antworten " -"können. Wenn ein Mitglied im Pool stirbt oder nicht reagiert, wird das " -"Mitglied aus dem Pool entfernt, so dass Client-Anfragen an ein anderes " -"aktives Mitglied weitergeleitet werden." - -msgid "Now, create a network and subnet for the web servers." -msgstr "Erstellen Sie nun ein Netzwerk und ein Subnetz für die Webserver." - -msgid "Now, look at the big picture." -msgstr "Jetzt schauen Sie sich das große Bild an." - -msgid "Now, no more objects are available in the :code:`fractals` container." -msgstr "Jetzt sind keine Objekte mehr im :code: `fractals` container." - -msgid "" -"Now, wait until all the fractals are generated and the instances have idled " -"for some time." -msgstr "" -"Warten Sie jetzt, bis alle Fraktale erzeugt sind und die Instanzen für " -"einige Zeit im Leerlauf sind." - -msgid "Now, you can boot and configure the instance." -msgstr "Jetzt können Sie die Instanz booten und konfigurieren." - -msgid "Now, you can launch the instance." -msgstr "Jetzt können Sie die Instanz starten." - -msgid "Obtain the following information from your cloud provider:" -msgstr "Erhalten Sie die folgenden Informationen von Ihrem Cloud-Anbieter:" - -msgid "" -"Of course there is also a web interface which offers a more human friendly " -"way of accessing the API to view the created fractal images, and a simple " -"command line interface." -msgstr "" -"Natürlich gibt es auch eine Web-Schnittstelle, die eine menschlichere Art " -"und Weise des Zugriffs auf die API bietet, um die erzeugten Fraktalbilder " -"und eine einfache Befehlszeilenschnittstelle anzuzeigen." - -msgid "" -"Of course, creating a monitoring system for a single application might not " -"make sense. To learn how to use the OpenStack Orchestration monitoring and " -"auto-scaling capabilities to automate these steps, see :doc:`orchestration`." -msgstr "" -"Natürlich kann das Erstellen eines Überwachungssystems für eine einzelne " -"Anwendung nicht sinnvoll sein. Um zu erlernen, wie man die OpenStack " -"Orchestrierung Monitoring und Auto-Scaling-Funktionen verwendet, um diese " -"Schritte zu automatisieren, siehe :doc:`orchestration`." - -msgid "" -"Of course, having access to additional resources is only part of the game " -"plan; while you can manually add or delete resources, you get more value and " -"more responsiveness if the application automatically requests additional " -"resources when it needs them." -msgstr "" -"Natürlich ist der Zugang zu zusätzlichen Ressourcen nur ein Teil des " -"Spielplans; während Sie Ressourcen manuell hinzufügen oder löschen können, " -"erhalten Sie mehr Wert und mehr Reaktionsfähigkeit, wenn die Anwendung " -"automatisch zusätzliche Ressourcen anfordert, wenn sie sie benötigen." - -msgid "Official Python-based library for OpenStack." -msgstr "Offizielle Python-basierte Bibliothek für OpenStack." - -msgid "" -"Once you have configured permissions, you must know where to access the " -"application." -msgstr "" -"Sobald Sie Berechtigungen konfiguriert haben, müssen Sie wissen, wo Sie auf " -"die Anwendung zugreifen können." - -msgid "Once you have created a rule or group, you can also delete it:" -msgstr "" -"Sobald Sie eine Regel oder Gruppe erstellt haben, können Sie sie auch " -"löschen:" - -msgid "" -"Once you have logged in, check to see whether the worker service process is " -"running as expected. You can find the logs of the worker service in the " -"directory :code:`/var/log/supervisor/`." -msgstr "" -"Sobald Sie angemeldet sind, überprüfen Sie, ob der Worker-Service-Prozess " -"wie erwartet ausgeführt wird. Sie finden die Protokolle des Worker Service " -"im Verzeichnis :code:`/var/log/supervisor/`." - -msgid "" -"One of the latest trends in scalable cloud application deployment is " -"`continuous integration `_ and `continuous deployment `_ (CI/CD)." -msgstr "" -"Einer der neuesten Trends in der skalierbaren Cloud-Anwendung ist die " -"'kontinuierliche Integration' `` und `kontinuierliche Bereitstellung `_ (CI / CD)." - -msgid "" -"Open :code:`top` to monitor the CPU usage of the :code:`faafo-worker` " -"process." -msgstr "" -"Starten Sie :code:`top` zur Überwachung der CPU-Nutzung des :code:`faafo-" -"worker` process." - -msgid "" -"OpenStack Object Storage automatically replicates each object at least twice " -"before returning 'write success' to your API call. A good strategy is to " -"keep three copies of objects, by default, at all times, replicating them " -"across the system in case of hardware failure, maintenance, network outage, " -"or another kind of breakage. This strategy is very convenient for app " -"creation. You can just dump objects into object storage and not worry about " -"the additional work that it takes to keep them safe." -msgstr "" -"OpenStack Object Storage repliziert automatisch jedes Objekt mindestens " -"zweimal, bevor er 'write success' in Ihren API-Aufruf zurückgibt. Eine gute " -"Strategie ist es, drei Exemplare von Objekten standardmäßig zu halten, indem " -"sie sie im Falle eines Hardwarefehlers, einer Wartung, eines " -"Netzwerkausfalls oder einer anderen Art von Bruch über das System " -"replizieren. Diese Strategie ist sehr praktisch für die App-Erstellung. Sie " -"können einfach Objekte in Objektspeicher reintun und sich nicht um die " -"zusätzliche Arbeit kümmern, die es braucht, um sie sicher zu halten." - -msgid "OpenStack SDK" -msgstr "OpenStack SDK" - -msgid "OpenStack SDK for Microsoft .NET" -msgstr "OpenStack SDK für Microsoft .NET" - -msgid "OpenStack SDKs" -msgstr "OpenStack SDKs" - -msgid "" -"OpenStack provides a couple of tools that make it easy to back up data. If " -"your provider runs OpenStack Object Storage, you can use its API calls and " -"CLI tools to work with archive files." -msgstr "" -"OpenStack bietet ein paar Tools, die es einfach machen, Daten zu sichern. " -"Wenn Ihr Provider OpenStack Object Storage anbietet, können Sie mit seinen " -"API-Aufrufen und CLI-Tools mit Archivdateien arbeiten." - -msgid "" -"OpenStack supports 'regions', which are geographically-separated " -"installations that are connected to a single service catalog. This section " -"explains how to expand the Fractal application to use multiple regions for " -"high availability." -msgstr "" -"OpenStack unterstützt 'Regionen', die geografisch getrennte Installationen " -"sind, die mit einem einzigen Dienstkatalog verbunden sind. In diesem " -"Abschnitt wird erläutert, wie die Fractal-Anwendung erweitert werden kann, " -"um mehrere Regionen für eine hohe Verfügbarkeit zu verwenden." - -msgid "Or, try one of these tutorial steps:" -msgstr "Oder versuchen Sie eines dieser Tutorial Schritte:" - -msgid "Orchestration" -msgstr "Orchestrierung" - -msgid "" -"Other features, such as creating volume snapshots, are useful for backups:" -msgstr "" -"Weitere Features, wie das Erstellen von Volume-Snapshots, sind für Backups " -"nützlich:" - -msgid "" -"Other versions of this guide show you how to use the other SDKs and " -"languages to complete these tasks. If you are a developer for another " -"toolkit that you would like this guide to include, feel free to submit code " -"snippets. For more information, contact `OpenStack Documentation team " -"`_ members." -msgstr "" -"Andere Versionen dieses Handbuchs zeigen Ihnen, wie Sie die anderen SDKs und " -"Sprachen verwenden, um diese Aufgaben abzuschließen. Wenn Sie ein Entwickler " -"für ein anderes Toolkit sind, dass Sie diesen Leitfaden einschließen " -"möchten, fühlen Sie sich frei, Code-Snippets einzureichen. Für weitere " -"Informationen wenden Sie sich bitte an `OpenStack Documentation Team " -" `_ Mitglieder." - -msgid "" -"Otherwise, continue reading to learn how to work with, and move the Fractal " -"application database server to use, block storage." -msgstr "" -"Andernfalls lesen Sie weiter, um zu lernen, wie Sie arbeiten können, und " -"verschieben Sie den Fractal-Anwendungsdatenbank-Server, um den Speicher zu " -"blockieren." - -msgid "" -"Our code samples use `Java 8 `_." -msgstr "" -"Unsere Code-Samples verwenden `Java 8 `_." - -msgid "PHP" -msgstr "PHP" - -msgid "" -"PHP-OpenCloud supports the OpenStack Networking API, but this section has " -"not been completed." -msgstr "" -"PHP-OpenCloud unterstützt die OpenStack Networking API, aber dieser " -"Abschnitt wurde noch nicht abgeschlossen." - -msgid "" -"PHP-opencloud supports OpenStack Orchestration :D:D:D but this section is " -"not written yet." -msgstr "" -"PHP-opencloud unterstützt OpenStack Orchestrierung: D:D:D aber dieser " -"Abschnitt ist noch nicht geschrieben." - -msgid "Parameter" -msgstr "Parameter" - -msgid "" -"Perhaps you can `contribute `_?" -msgstr "" -"Vielleicht können Sie dazu `beitragen `_?" - -msgid "Phoenix servers" -msgstr "Phoenix-Server" - -msgid "" -"Pkgcloud supports OpenStack Orchestration :D:D:D but this section is `not " -"written yet `_" -msgstr "" -"Pkgcloud unterstützt OpenStack Orchestration: D:D:D aber dieser Abschnitt " -"ist noch nicht geschrieben `_" - -msgid "" -"Pkgcloud supports the OpenStack Networking API, but this section has not " -"been completed." -msgstr "" -"Pkgcloud unterstützt die OpenStack Networking API, aber dieser Abschnitt " -"wurde noch nicht abgeschlossen." - -msgid "" -"Place the above pom.xml into the root directory of your project. Then create " -"the nested subdirectory tree :code:`src` -> :code:`main` -> :code:`java`. " -"Place the Java code samples that you copy from this book into the folder " -"named \":code:`java`\"." -msgstr "" -"Lege die obige pom.xml in das Wurzelverzeichnis Ihres Projekts. Dann " -"erstellen Sie den verschachtelten Unterverzeichnisbaum :code: `src` ->:code:" -"` main` ->:code: `java`. Legen Sie die Java-Code-Beispiele, die Sie aus " -"diesem Buch kopieren, in den Ordner mit dem Namen ':code:` java` '." - -msgid "Place the images in the :code:`fractals` container:" -msgstr "Legen Sie die Bilder in den :code: `Fraktale` Container:" - -msgid "" -"Previously, you manually created the database, which is useful for a single " -"database that you rarely update. However, the OpenStack :code:`trove` " -"component provides Database as a Service (DBaaS)." -msgstr "" -"Bisher haben Sie die Datenbank manuell erstellt, was für eine einzige " -"Datenbank nützlich ist, die Sie selten aktualisieren. Allerdings bietet die " -"OpenStack :code: `trove`-Komponente Datenbank als Service (DBaaS)." - -msgid "" -"Prior to this section, the network layout for the Fractal application would " -"be similar to the following diagram:" -msgstr "" -"Vor diesem Abschnitt wäre das Netzwerklayout für die Fractal-Anwendung " -"ähnlich dem folgenden Diagramm:" - -msgid "Programmatic interfaces (APIs)" -msgstr "Programmatische Schnittstellen (APIs)" - -msgid "Python" -msgstr "Python" - -msgid "Regions and geographic diversity" -msgstr "Regionen und geografische Vielfalt" - -msgid "Remove the existing app" -msgstr "Entfernen Sie die vorhandene App" - -msgid "" -"Removing the egress rule created by OpenStack will cause your instance " -"networking to break." -msgstr "" -"Das Entfernen der von OpenStack erstellten Ausstiegsregel wird dazu führen, " -"dass Ihre Instanz-Netzwerke zusammenbrechen." - -msgid "" -"Replace :code:`IP_API_1` and :code:`IP_API_2` with the corresponding " -"floating IPs. Replace FRACTAL_UUID with the UUID of an existing fractal." -msgstr "" -"Ersetzen Sie :code:`IP_API_1` und :code:`IP_API_2` mit den entsprechenden " -"Floating IPs. Ersetzen Sie FRACTAL_UUID durch die UUID eines vorhandenen " -"Fraktals." - -msgid "Replace :code:`IP_API_1` with the IP address of the API instance." -msgstr "Ersetzen Sie :code: `IP_API_1` mit der IP-Adresse der API-Instanz." - -msgid "" -"Replace :code:`IP_API_1` with the IP address of the first API instance and " -"USERNAME with the appropriate user name." -msgstr "" -"Ersetzen Sie :code:`IP_API_1` mit der IP-Adresse der ersten API-Instanz und " -"USERNAME mit dem entsprechenden Benutzernamen." - -msgid "" -"Replace :code:`IP_CONTROLLER` with the IP address of the controller instance " -"and USERNAME to the appropriate user name." -msgstr "" -"Ersetzen Sie :code:`IP_CONTROLLER` mit der IP-Adresse der Controller-Instanz " -"und USERNAME an den entsprechenden Benutzernamen." - -msgid "" -"Replace :code:`IP_CONTROLLER` with the IP address of the controller instance " -"and USERNAME with the appropriate user name." -msgstr "" -"Ersetzen Sie :code:`IP_CONTROLLER` mit der IP-Adresse der Controller-Instanz " -"und USERNAME mit dem entsprechenden Benutzernamen." - -msgid "" -"Replace :code:`IP_CONTROLLER` with the IP address of the controller instance." -msgstr "" -"Ersetzen Sie :code:`IP_CONTROLLER` mit der IP-Adresse der Controller-Instanz." - -msgid "" -"Replace :code:`IP_DATABASE` with the IP address of the database instance and " -"USERNAME to the appropriate user name." -msgstr "" -"Ersetzen Sie :code: `IP_DATABASE` mit der IP-Adresse der Datenbankinstanz " -"und USERNAME an den entsprechenden Benutzernamen." - -msgid "" -"Replace :code:`IP_WORKER_1` with the IP address of the worker instance and " -"USERNAME to the appropriate user name." -msgstr "" -"Ersetzen Sie :code:`IP_WORKER_1` mit der IP-Adresse der Workerinstanz und " -"USERNAME mit den entsprechenden Benutzernamen." - -msgid "" -"Replace :code:`IP_WORKER` with the IP address of the worker instance and " -"USERNAME with the appropriate user name." -msgstr "" -"Ersetzen Sie :code:`IP_WORKER` mit der IP-Adresse der Worker-Instanz und " -"USERNAME mit dem entsprechenden Benutzernamen." - -msgid "Ruby" -msgstr "Rubin" - -msgid "" -"Run the :code:`ceilometer_statistics_query`: command to see the derived " -"statistics." -msgstr "" -"Führen Sie den Befehl :code:`ceilometer_statistics_query` aus, um die " -"abgeleiteten Statistiken zu sehen." - -msgid "" -"Run the :code:`nova list` command to confirm that the :code:`OS::Heat::" -"AutoScalingGroup` has created more instances:" -msgstr "" -"Führen Sie den Befehl :code:`nova list` aus, um zu bestätigen, dass der :" -"code:`OS::Heat::AutoScalingGroup` mehr Instanzen erstellt hat:" - -msgid "" -"Run the :code:`nova list` command to confirm that the :code:`OS::Heat::" -"AutoScalingGroup` removed the unneeded instances:" -msgstr "" -"Führen Sie den Befehl :code:`nova list` aus, um zu bestätigen, dass der :" -"code:`OS::Heat::AutoScalingGroup` die nicht benötigten Instanzen entfernt " -"hat:" - -msgid "" -"Run the :code:`nova list` command. This template created three instances:" -msgstr "" -"Führen Sie den Befehl :code:`nova list` aus. Diese Vorlage hat drei " -"Instanzen erstellt:" - -msgid "Run the script to start the deployment." -msgstr "Führen Sie das Skript aus, um die Bereitstellung zu starten." - -msgid "" -"SDKs do not generally support the service yet, but you can use the 'trove' " -"command-line client to work with it instead." -msgstr "" -"SDKs unterstützen den Dienst noch nicht, aber Sie können den " -"Kommandozeilenclient 'trove' verwenden, um dort zu arbeiten." - -msgid "Scalability" -msgstr "Skalierbarkeit" - -msgid "Scale available resources up and down." -msgstr "Skalieren Sie verfügbare Ressourcen auf und ab." - -msgid "Scale the API service" -msgstr "Skalieren Sie den API-Dienst" - -msgid "Scale the workers" -msgstr "Skalieren Sie die Worker" - -msgid "Scaling out" -msgstr "Skalieren" - -msgid "Security" -msgstr "Sicherheit" - -msgid "" -"Security groups are sets of network access rules that are applied to an " -"instance's networking. By default, only egress (outbound) traffic is " -"allowed. You must explicitly enable ingress (inbound) network access by " -"creating a security group rule." -msgstr "" -"Sicherheitsgruppen sind Sätze von Netzwerkzugriffsregeln, die auf die " -"Vernetzung einer Instanz angewendet werden. Standardmäßig ist nur Austritt " -"(ausgehender) Verkehr erlaubt. Sie müssen explizit den Eintritt (Eingang) " -"des Netzwerkzugriffs aktivieren, indem Sie eine Sicherheitsgruppenregel " -"erstellen." - -msgid "" -"Security is important when it comes to your instances; you can not have just " -"anyone accessing them. To enable logging into an instance, you must provide " -"the public key of an SSH key pair during instance creation. In section one, " -"you created and uploaded a key pair to OpenStack, and cloud-init installed " -"it for the user account." -msgstr "" -"Sicherheit ist wichtig, wenn es um Ihre Instanzen geht; es kann nicht jeder " -"auf sie zugreifen. Um die Anmeldung in einer Instanz zu aktivieren, müssen " -"Sie während der Instanzerstellung den öffentlichen Schlüssel eines SSH-" -"Schlüsselpaars angeben. Im Abschnitt Eins haben Sie ein Schlüsselpaar zu " -"OpenStack erstellt und hochgeladen und Cloud-init für das Benutzerkonto " -"installiert." - -msgid "See the state of the alarms set up by the template:" -msgstr "" -"Sehen Sie den Zustand der Alarme, die von der Vorlage eingerichtet wurden:" - -msgid "" -"Set the image and size variables to appropriate values for your cloud. We " -"will use these variables in later sections." -msgstr "" -"Setzen Sie die Abbild- und Größenvariablen auf entsprechende Werte für Ihre " -"Cloud. Wir werden diese Variablen in späteren Abschnitten verwenden." - -msgid "Shade" -msgstr "Shade" - -msgid "" -"Shade's create_object function has a \"use_slo\" parameter (that defaults to " -"true) which will break your object into smaller objects for upload and " -"rejoin them if needed." -msgstr "" -"Shade's create_object-Funktion hat einen 'use_slo' -Parameter (der " -"standardmäßig auf true), der Ihr Objekt in kleinere Objekte zum Hochladen " -"zerbricht und bei Bedarf wieder zusammenbringt." - -msgid "" -"Similar to the UNIX programming model, an object, such as a document or an " -"image, is a \"bag of bytes\" that contains data. You use containers to group " -"objects. You can place many objects inside a container, and your account can " -"have many containers." -msgstr "" -"Ähnlich wie bei dem UNIX-Programmiermodell ist ein Objekt wie ein Dokument " -"oder ein Bild ein 'Beutel von Bytes', der Daten enthält. Sie verwenden " -"Container, um Objekte zu gruppieren. Sie können viele Objekte in einem " -"Container platzieren, und Ihr Konto kann viele Container haben." - -msgid "" -"So what exactly was that request doing at the end of the previous section? " -"Let us look at it again. In this subsection, we are just explaining what you " -"have already done in the previous section; you do not need to run these " -"commands again." -msgstr "" -"Also, was genau war die Frage am Ende des vorherigen Abschnitts? Lassen Sie " -"uns es noch einmal anschauen. In diesem Unterabschnitt erklären wir nur, was " -"Sie bereits im vorigen Abschnitt gemacht haben. Sie müssen diese Befehle " -"nicht mehr ausführen." - -msgid "" -"So, for example, the file named :code:`GettingStarted.java` from the end of " -"this chapter would be located as follows:" -msgstr "" -"So würde zum Beispiel die Datei mit dem Namen :code: `GettingStarted.java` " -"am Ende dieses Kapitels wie folgt liegen:" - -msgid "Specify a network during instance build" -msgstr "Geben Sie während des Instanzbaus ein Netzwerk an" - -msgid "" -"Specify an external gateway for your router to tell OpenStack which network " -"to use for Internet access." -msgstr "" -"Geben Sie ein externes Gateway für Ihren Router an, um OpenStack " -"mitzuteilen, welches Netzwerk für den Internet-Zugang verwendet werden soll." - -msgid "Specify the flavor ID that you would like to use." -msgstr "Geben Sie die Varianten-ID an, die Sie verwenden möchten." - -msgid "" -"Spend some time playing with the stack and the Fractal app to see how it " -"works." -msgstr "" -"Verbringen Sie einige Zeit mit dem Stack und der Fractal App zu sehen, wie " -"es funktioniert." - -msgid "Split the database and message queue" -msgstr "Teilen Sie die Datenbank und die Nachrichtenwarteschlange" - -msgid "Splitting services across multiple instances" -msgstr "Aufteilung von Diensten über mehrere Instanzen hinweg" - -msgid "" -"Start by creating a security group for the all-in-one instance and adding " -"the appropriate rules, such as HTTP (TCP port 80) and SSH (TCP port 22):" -msgstr "" -"Beginnen Sie mit dem Erstellen einer Sicherheitsgruppe für die All-in-One-" -"Instanz und Hinzufügen der entsprechenden Regeln wie HTTP (TCP-Port 80) und " -"SSH (TCP-Port 22):" - -msgid "Start by looking at what is already in place." -msgstr "Beginnen Sie mit dem Betrachten, was bereits vorhanden ist." - -msgid "" -"Stop the running MySQL database service and move the database files from :" -"file:`/var/lib/mysql` to the new volume, which is temporarily mounted at :" -"file:`/mnt/database`." -msgstr "" -"Stoppen Sie den laufenden MySQL-Datenbankdienst und verschieben Sie die " -"Datenbankdateien aus :file: `/var/lib/mysql` auf das neue Volume, das " -"vorübergehend an: file :`/mnt/database` angebracht ist." - -msgid "" -"Swift metadata keys are prepended with \"x-object-meta-\" so when you get " -"the object with get_object(), in order to get the value of the metadata your " -"key will be \"x-object-meta-foo\"." -msgstr "" -"swift Metadatentasten werden mit 'x-object-meta-' vorangestellt, also wenn " -"Sie das Objekt mit get_object () bekommen, um den Wert der Metadaten zu " -"erhalten, wird Ihr Schlüssel 'x-object-meta-foo' sein." - -msgid "" -"Sync the file systems and mount the block device that contains the database " -"files to :file:`/var/lib/mysql`." -msgstr "" -"Synchronisieren Sie die Dateisysteme und montieren Sie das Blockgerät, das " -"die Datenbankdateien enthält, an :file: `/var/lib/mysql`." - -msgid "" -"That brings us to where we ended up at the end of :doc:`/getting_started`. " -"But where do we go from here?" -msgstr "" -"Das bringt uns dahin, wo wir am Ende von :doc:`/ getting_started` enden. " -"Aber wohin gehen wir von hier" - -msgid "" -"That example is simplistic, of course, but the flexibility of the resource " -"object enables the creation of templates that contain all the required cloud " -"infrastructure to run an application, such as load balancers, block storage " -"volumes, compute instances, networking topology, and security policies." -msgstr "" -"Das Beispiel ist natürlich einfach, aber die Flexibilität des Resource-" -"Objekts ermöglicht die Erstellung von Templates, die alle benötigten Cloud-" -"Infrastrukturen enthalten, um eine Applikation auszuführen, wie z.B. Load " -"Balancer, Blockspeichervolumen, Compute-Instanzen, Netzwerktopologie und " -"Sicherheitsrichtlinien." - -msgid "" -"That, as it happens, is the new reality of programming. Applications and " -"systems used to be created on large, expensive servers, cared for by " -"operations staff dedicated to keeping them healthy. If something went wrong " -"with one of those servers, the staff's job was to do whatever it took to " -"make it right again and save the server and the application." -msgstr "" -"Das ist, wie es geschieht, die neue Realität der Programmierung. Anwendungen " -"und Systeme wurden auf großen, teuren Servern erstellt, die von Betriebs-" -"Mitarbeitern betreut wurden, um sie gesund zu halten. Wenn etwas mit einem " -"dieser Server schief gegangen wäre, war die Aufgabe des Mitarbeiters zu tun, " -"was notwendig ist, um sie wieder ganz zu machen und den Server und die " -"Anwendung wiederherzustellen." - -msgid "" -"The :code:`OS::Heat::AutoScalingGroup` removes instances in creation order. " -"So the worker instance that was created first is the first instance to be " -"removed." -msgstr "" -"Der :code:`OS::Heat::AutoScalingGroup` entfernt Instanzen in der " -"Erstellungsreihenfolge. Also die Worker-Instanz, die zuerst erstellt wurde, " -"ist die erste Instanz, die entfernt werden soll." - -msgid "" -"The :doc:`/introduction` section describes how to build in a modular " -"fashion, create an API, and other aspects of the application architecture. " -"Now you will see why those strategies are so important. By creating a " -"modular application with decoupled services, you can identify components " -"that cause application performance bottlenecks and scale them out. Just as " -"importantly, you can also remove resources when they are no longer " -"necessary. It is very difficult to overstate the cost savings that this " -"feature can bring, as compared to traditional infrastructure." -msgstr "" -"Der Abschnitt :doc:`/introduction` beschreibt, wie man modular aufbaut, eine " -"API erstellt und andere Aspekte der Anwendungsarchitektur. Jetzt werden Sie " -"sehen, warum diese Strategien so wichtig sind. Durch die Erstellung einer " -"modularen Anwendung mit entkoppelten Diensten können Sie Komponenten " -"identifizieren, die Anwendungsperformance verursachen und sie ausgleichen. " -"Genauso wichtig, man kann auch Ressourcen entfernen, wenn sie nicht mehr " -"nötig sind. Es ist sehr schwierig, die Kosteneinsparungen zu beziffern, die " -"diese Funktion im Vergleich zur herkömmlichen Infrastruktur bringen kann." - -msgid "" -"The CPU utilization across workers increases as workers start to create the " -"fractals." -msgstr "" -"Die CPU-Auslastung über die Worker steigt, wenn die Worker die Fraktale " -"erschaffen." - -msgid "" -"The Fractals app currently uses the local file system on the instance to " -"store the images that it generates. For a number of reasons, this approach " -"is not scalable or durable." -msgstr "" -"Die Fractals App verwendet derzeit das lokale Dateisystem auf der Instanz, " -"um die von ihm erzeugten Bilder zu speichern. Aus einer Reihe von Gründen " -"ist dieser Ansatz nicht skalierbar oder langlebig." - -msgid "" -"The Fractals application was designed with the principles of the previous " -"subsection in mind. You will note that in :doc:`getting_started`, we " -"deployed the application in an all-in-one style, on a single virtual " -"machine. This is not a good practice, but because the application uses micro-" -"services to decouple logical application functions, we can change this " -"easily." -msgstr "" -"Die Fractals-Anwendung wurde mit den Prinzipien des vorherigen " -"Unterabschnitts entworfen. Sie werden feststellen, dass in :doc: " -"`getting_started`, wir die Anwendung in einem All-in-One-Stil, auf einer " -"einzigen virtuellen Maschine einsetzen. Dies ist keine gute Praxis, aber " -"weil die Anwendung Mikrodienste verwendet, um logische Anwendungsfunktionen " -"zu entkoppeln, können wir dies leicht ändern." - -msgid "The Object Storage API is organized around objects and containers." -msgstr "Die Objektspeicher-API ist um Objekte und Container herum angeordnet." - -msgid "" -"The Object Storage service manages many of the tasks normally managed by the " -"application owner. The Object Storage service provides a scalable and " -"durable API that you can use for the fractals app, eliminating the need to " -"be aware of the low level details of how objects are stored and replicated, " -"and how to grow the storage pool. Object Storage handles replication for " -"you. It stores multiple copies of each object. You can use the Object " -"Storage API to return an object, on demand." -msgstr "" -"Der Objektspeicherdienst verwaltet viele Aufgaben, die normalerweise vom " -"Anwendungsbesitzer verwaltet werden. Der Object Storage Service bietet eine " -"skalierbare und langlebige API, die Sie für die Fractals App verwenden " -"können, wodurch es keine Notwendigkeit gibt, sich der niederen Details wie " -"Objekte gespeichert und repliziert zu widmen, und wie der Speicherpool " -"wächst. Object Storage behandelt Replikation für Sie. Es speichert mehrere " -"Kopien jedes Objekts. Sie können die Objektspeicher-API verwenden, um ein " -"Objekt auf Anfrage zurückzusenden." - -msgid "" -"The OpenStack Networking API provides support for creating loadbalancers, " -"which can be used to scale the Fractal app web service. In the following " -"example, we create two compute instances via the Compute API, then " -"instantiate a load balancer that will use a virtual IP (VIP) for accessing " -"the web service offered by the two compute nodes. The end result will be the " -"following network topology:" -msgstr "" -"Die OpenStack Networking API bietet Unterstützung für das Erstellen von " -"Loadbalancern, mit denen der Fractal App Web Service skaliert werden kann. " -"Im folgenden Beispiel erstellen wir zwei Compute-Instanzen über die Compute " -"API und instanziieren dann einen Load Balancer, der eine virtuelle IP (VIP) " -"für den Zugriff auf den von den beiden Compute-Knoten angebotenen Webdienst " -"verwendet. Das Ergebnis ist die folgende Netzwerktopologie:" - -msgid "" -"The OpenStack Orchestration API uses the stacks, resources, and templates " -"constructs." -msgstr "" -"Die OpenStack Orchestration API verwendet die Stapel-, Ressourcen- und " -"Vorlagenkonstrukte." - -msgid "The OpenStack SDK does not currently support OpenStack Orchestration." -msgstr "Das OpenStack SDK unterstützt derzeit keine OpenStack Orchestrierung" - -msgid "" -"The Orchestration service is not deployed by default in every cloud. If " -"these commands do not work, it means the Orchestration API is not available; " -"ask your support team for assistance." -msgstr "" -"Der Orchestrierungsdienst wird in jeder Cloud nicht standardmäßig " -"bereitgestellt. Wenn diese Befehle nicht funktionieren, bedeutet dies, dass " -"die Orchestrierungs-API nicht verfügbar ist. fragen Sie Ihr Support-Team um " -"Hilfe." - -msgid "" -"The Orchestration service provides a template-based way to describe a cloud " -"application, then coordinates running the needed OpenStack API calls to run " -"cloud applications. The templates enable you to create most OpenStack " -"resource types, such as instances, networking information, volumes, security " -"groups, and even users. It also provides more advanced functionality, such " -"as instance high availability, instance auto-scaling, and nested stacks." -msgstr "" -"Der Orchestrierungsdienst bietet eine Vorlagen-basierte Möglichkeit, eine " -"Cloud-Anwendung zu beschreiben und koordiniert dann die erforderlichen " -"OpenStack-API-Aufrufe, um Cloud-Anwendungen auszuführen. Mit den Vorlagen " -"können Sie die meisten OpenStack-Ressourcentypen wie Instanzen, " -"Netzwerkinformationen, Volumes, Sicherheitsgruppen und sogar Benutzer " -"erstellen. Es bietet auch erweiterte Funktionalität, wie z.B. " -"Hochverfügbarkeit, Instanz Auto-Skalierung und verschachtelte Stacks." - -msgid "" -"The Telemetry service is not deployed by default in every cloud. If the " -"ceilometer commands do not work, this example does not work; ask your " -"support team for assistance." -msgstr "" -"Der Telemetrieservice wird in jeder Cloud nicht standardmäßig " -"bereitgestellt. Wenn die Ceilometer-Befehle nicht funktionieren, " -"funktioniert dieses Beispiel nicht; fragen Sie Ihr Support-Team um Hilfe." - -msgid "" -"The Telemetry service uses meters to measure a given aspect of a resources " -"usage. The meter that we are interested in is the :code:`cpu_util` meter." -msgstr "" -"Der Telemetrie-Service nutzt Meter, um einen bestimmten Aspekt eines " -"Ressourcenverbrauchs zu messen. Der Zähler, an dem wir interessiert sind, " -"ist der :code:`cpu_util` Meter." - -msgid "" -"The `RabbitMQ getting started tutorial `_ provides a great introduction to message queues." -msgstr "" -"Das 'RabbitMQ Start Tutorial `_ " -"bietet eine gute Einführung in die Nachrichtenwarteschlangen." - -msgid "" -"The `generated_by` field shows the worker that created the fractal. Because " -"multiple worker instances share the work, fractals are generated more " -"quickly and users might not even notice when a worker fails." -msgstr "" -"Das Feld `generated_by` zeigt den Worker, der das Fraktal erstellt hat. Weil " -"mehrere Workerinstanzen die Arbeit teilen, werden Fraktale schneller erzeugt " -"und Benutzer können nicht einmal bemerken, wenn ein Arbeiter ausfällt." - -msgid "" -"The `outputs` property shows the URL through which you can access the " -"Fractal application. You can SSH into the instance." -msgstr "" -"Die Eigenschaft `output` zeigt die URL an, über die Sie auf die Fractal-" -"Anwendung zugreifen können. Du kannst SSH in die Instanz bringen." - -msgid "The actual auth URL is:" -msgstr "Die aktuelle Auth-URL lautet:" - -msgid "The alarms have the form:" -msgstr "Die Alarme haben die Form:" - -msgid "" -"The application stores the generated fractal images directly in the database " -"used by the API service instance. Storing image files in a database is not " -"good practice. We are doing it here as an example only as an easy way to " -"enable multiple instances to have access to the data. For best practice, we " -"recommend storing objects in Object Storage, which is covered in :doc:" -"`durability`." -msgstr "" -"Die Anwendung speichert die erzeugten Fraktalbilder direkt in der Datenbank, " -"die von der API-Dienstinstanz verwendet wird. Das Speichern von Bilddateien " -"in einer Datenbank ist nicht gut. Wir machen es hier als Beispiel nur als " -"eine einfache Möglichkeit, mehreren Instanzen zu ermöglichen, Zugriff auf " -"die Daten zu haben. Für die bewährte Praxis empfehlen wir die Speicherung " -"von Objekten in Object Storage, die in :doc:`durability` abgedeckt ist." - -msgid "" -"The auto-scaling stack sets up an API instance, a services instance, and an " -"auto-scaling group with a single worker instance. It also sets up ceilometer " -"alarms that add worker instances to the auto-scaling group when it is under " -"load, and removes instances when the group is idling. To do this, the alarms " -"post to URLs." -msgstr "" -"Der Auto-Skalierungsstapel richtet eine API-Instanz, eine Dienstinstanz und " -"eine Auto-Skalierungsgruppe mit einer einzelnen Worker-Instanz ein. Es setzt " -"auch Ceilometer-Alarme ein, die Worker-Instanzen der Auto-Skalierungsgruppe " -"hinzufügen, wenn sie unter Last ist, und entfernt Instanzen, wenn die Gruppe " -"im Leerlauf ist. Um dies zu tun, die Alarme Posten zu URLs." - -msgid "" -"The client object accesses the Compute v2.0 service and type v2.1, so that " -"version is in this tutorial." -msgstr "" -"Das Clientobjekt greift auf den Compute v2.0-Dienst und Typ v2.1 zu, sodass " -"diese Version in diesem Tutorial verwendet wird." - -msgid "The connection URL for the database (not used here)." -msgstr "Die Verbindungs-URL für die Datenbank (hier nicht verwendet)." - -msgid "The endpoint URL of the API service." -msgstr "Die Endpunkt-URL des API-Dienstes." - -msgid "" -"The example code uses the awesome `Requests library `_. Before you try to run the previous script, make " -"sure that it is installed on your system." -msgstr "" -"Der Beispielcode verwendet die wunderbare `Requests library `_. Bevor Sie versuchen, das vorherige " -"Skript auszuführen, stellen Sie sicher, dass es auf Ihrem System installiert " -"ist." - -msgid "" -"The example template depends on the ceilometer project, which is part of the " -"`Telemetry service `_." -msgstr "" -"Die Beispielvorlage hängt vom Ceilometer-Projekt ab, das Teil des " -"Telemetrieservice ist `_." - -msgid "" -"The first step is to start the controller instance. The instance has the API " -"service, the database, and the messaging service, as you can see from the " -"parameters passed to the installation script." -msgstr "" -"Der erste Schritt ist, die Controller-Instanz zu starten. Die Instanz " -"verfügt über den API-Dienst, die Datenbank und den Messaging-Dienst, wie Sie " -"aus den an das Installationsskript übergebenen Parametern sehen können." - -msgid "The flavor" -msgstr "Die Variante" - -msgid "" -"The following file contains all of the code from this section of the " -"tutorial. This comprehensive code sample lets you view and run the code as a " -"single file." -msgstr "" -"Die folgende Datei enthält den gesamten Code aus diesem Abschnitt des " -"Tutorials. Mit diesem umfassenden Code-Beispiel können Sie den Code als " -"einzelne Datei anzeigen und ausführen." - -msgid "" -"The following file contains all of the code from this section of the " -"tutorial. This comprehensive code sample lets you view and run the code as a " -"single script." -msgstr "" -"Die folgende Datei enthält den gesamten Code aus diesem Abschnitt des " -"Tutorials. Mit diesem umfassenden Code-Beispiel können Sie den Code als " -"einzelnes Skript anzeigen und ausführen." - -msgid "" -"The following instance creation example assumes that you have a single-" -"tenant network. If you receive the 'Exception: 400 Bad Request Multiple " -"possible networks found, use a Network ID to be more specific' error, you " -"have multiple-tenant networks. You must add a `networks` parameter to the " -"call that creates the server. See :doc:`/appendix` for details." -msgstr "" -"Das folgende Beispiel-Erstellungsbeispiel geht davon aus, dass Sie ein Ein-" -"Tenant-Netzwerk haben. Wenn Sie die 'Exception: 400 Bad Request Multiple " -"possible networks found, use a Network ID to be more specific' Fehlermeldung " -"bekommen, haben Sie mehrere Tenant-Netzwerke. Sie müssen dem Aufruf, der den " -"Server erstellt, einen 'Netzwerk' -Parameter hinzufügen. Siehe :doc: `/" -"appendix` für Details." - -msgid "The following operations are destructive and result in data loss." -msgstr "" -"Die folgenden Operationen sind zerstörerisch und führen zu Datenverlust." - -msgid "" -"The fractal application we are building contains these types of network " -"traffic:" -msgstr "" -"Die Fraktalanwendung, die wir bauen, enthält diese Arten von Netzwerkverkehr:" - -msgid "" -"The fractals are now available from any of the app-api hosts. To verify, " -"visit http://IP_API_1/fractal/FRACTAL_UUID and http://IP_API_2/fractal/" -"FRACTAL_UUID. You now have multiple redundant web services. If one fails, " -"you can use the others." -msgstr "" -"Die Fraktale sind jetzt bei jedem der app-api-Hosts erhältlich. Um zu " -"überprüfen, besuchen Sie http://IP_API_1/fraktal/FRACTAL_UUID und http://" -"IP_API_2/fraktal/FRACTAL_UUID. Sie haben jetzt mehrere redundante Web-" -"Services. Wenn einer versagt, können Sie die anderen benutzen." - -msgid "The magic revisited" -msgstr "Die Magie entzaubert" - -msgid "" -"The message queue can take a while to notice that worker instances have died." -msgstr "" -"Die Nachrichtenwarteschlange kann eine Weile dauern, um zu bemerken, dass " -"Worker-Instanzen gestorben sind." - -msgid "" -"The most common way for OpenStack clouds to allocate Internet rout-able IP " -"addresses to instances, however, is through the use of floating IPs. A " -"floating IP is an address that exists as an entity unto itself, and can be " -"associated to a specific instance network interface. When a floating IP " -"address is associated to an instance network interface, OpenStack re-directs " -"traffic bound for that address to the address of the instance's internal " -"network interface address. Your cloud provider will generally offer pools of " -"floating IPs for your use." -msgstr "" -"Der häufigste Weg für OpenStack-Clouds, um Internet-Router-fähige IP-" -"Adressen zu Instanzen zuzuordnen, ist jedoch durch die Verwendung von " -"Floating-IPs. Eine Floating-IP ist eine Adresse, die als Entität für sich " -"selbst existiert und einer bestimmten Instanznetzwerkschnittstelle " -"zugeordnet werden kann. Wenn eine Floating-IP-Adresse einer " -"Instanznetzwerkschnittstelle zugeordnet ist, leitet OpenStack den für diese " -"Adresse verknüpften Verkehr an die Adresse der internen " -"Netzwerkschnittstellenadresse der Instanz zurück. Ihr Cloud-Anbieter bietet " -"in der Regel Pools von Floating-IPs für Ihren Einsatz." - -msgid "The new instance appears." -msgstr "Die neue Instanz erscheint." - -msgid "" -"The next logical step is to upload an object. Find a photo of a goat online, " -"name it :code:`goat.jpg`, and upload it to your :code:`fractals` container:" -msgstr "" -"Der nächste logische Schritt besteht darin, ein Objekt hochzuladen. Finden " -"Sie ein Foto von einer Ziege online, nennen Sie es :Code: `goat.jpg`, und " -"laden Sie es auf Ihre :Code:`Fraktale` Container:" - -msgid "" -"The outputs section of the stack contains two ceilometer command-line " -"queries:" -msgstr "" -"Der Ausgabestand des Stapels enthält zwei Ceilometer-Befehlszeilenabfragen:" - -msgid "The parameter :code:`Size` is in gigabytes." -msgstr "Der Parameter :Code: `Größe` ist in Gigabyte." - -msgid "The parameter :code:`size` is in gigabytes." -msgstr "Der Parameter :code: `size` ist in Gigabyte." - -msgid "The prefix is `metering.` For example, `metering.some_name`." -msgstr "Das Präfix ist 'metering'. Zum Beispiel `metering.some_name`." - -msgid "" -"The previous section uses two virtual machines - one 'control' service and " -"one 'worker'. The speed at which your application can generate fractals " -"depends on the number of workers. With just one worker, you can produce only " -"one fractal at a time. Before long, you will need more resources." -msgstr "" -"Der vorhergehende Abschnitt verwendet zwei virtuelle Maschinen - einen " -"'Steuerdienst' und einen 'Worker'. Die Geschwindigkeit, mit der Ihre " -"Anwendung Fraktale erzeugen kann, hängt von der Anzahl der Worker ab. Mit " -"nur einem Worker können Sie nur ein Fraktal zu einer Zeit produzieren. Bis " -"dahin benötigen Sie mehr Ressourcen." - -msgid "" -"The rest of this tutorial will not reference the all-in-one instance you " -"created in section one. Take a moment to delete this instance." -msgstr "" -"Der Rest dieses Tutorials bezieht sich nicht auf die All-in-One-Instanz, die " -"Sie in Abschnitt eins erstellt haben. Nehmen Sie sich einen Moment Zeit, um " -"diese Instanz zu löschen." - -msgid "The samples and the statistics are listed in opposite time order!" -msgstr "" -"Die Muster und die Statistiken sind in umgekehrter Reihenfolge aufgeführt!" - -msgid "The second application is an OpenStack application that enables you to:" -msgstr "" -"Die zweite Anwendung ist eine OpenStack-Anwendung, die es Ihnen ermöglicht:" - -msgid "The shade framework can select and assign a free floating IP quickly" -msgstr "" -"Das shade-Framework kann eine Floating-IP schnell auswählen und zuordnen" - -msgid "" -"The sheer number of requests means that some requests for fractals might not " -"make it to the message queue for processing. To ensure that you can cope " -"with demand, you must also scale out the API capability of the Fractals " -"application." -msgstr "" -"Die schiere Anzahl von Anfragen bedeutet, dass einige Anfragen für Fraktale " -"es nicht zur Nachrichtenwarteschlange zur Verarbeitung machen können. Um " -"sicherzustellen, dass Sie mit der Nachfrage fertig werden können, müssen Sie " -"auch die API-Fähigkeit der Fractals-Anwendung skalieren." - -msgid "The stack automatically creates a Nova instance, as follows:" -msgstr "Der Stapel erstellt automatisch eine Nova-Instanz wie folgt:" - -msgid "" -"The stack reports an initial :code:`CREATE_IN_PROGRESS` status. When all " -"software is installed, the status changes to :code:`CREATE_COMPLETE`." -msgstr "" -"Der Stapel meldet initial :code: `CREATE_IN_PROGRESS` Status. Wenn alle " -"Software installiert ist, wechselt der Status zu :code:`CREATE_COMPLETE`." - -msgid "" -"The stack we will be building uses the firing of alarms to control the " -"addition or removal of worker instances." -msgstr "" -"Der Stapel, den wir bauen werden, nutzt das Abfeuern von Alarmen, um die " -"Hinzufügung oder Entfernung von Worker-Instanzen zu kontrollieren." - -msgid "The transport URL of the messaging service." -msgstr "Die Transport-URL des Messaging-Dienstes." - -msgid "The unique identifier (UUID) of the image" -msgstr "Die eindeutige Kennung (UUID) des Abbildes" - -msgid "The value of a meter is regularly sampled and saved with a timestamp." -msgstr "" -"Der Wert eines Meters wird regelmäßig abgetastet und mit einem Zeitstempel " -"gespeichert." - -msgid "" -"The worker service consumes messages from the work queue and then processes " -"them to create the corresponding fractal image file." -msgstr "" -"Der Workerservice konsumiert Nachrichten aus der Arbeitswarteschlange und " -"verarbeitet sie dann, um die entsprechende Fraktalbilddatei zu erstellen." - -msgid "" -"The world is running out of IPv4 addresses. If you get the \"No more IP " -"addresses available on network\" error, contact your cloud administrator. " -"You may also want to ask about IPv6 :)" -msgstr "" -"Die Welt verliert IPv4-Adressen. Wenn Sie den Fehler 'Keine weitere IP-" -"Adressen im Netzwerk' erhalten, wenden Sie sich an Ihren Cloud-" -"Administrator. Sie können auch nach IPv6 fragen :)" - -msgid "Then attach it to the instance:" -msgstr "Dann fügen Sie sie an die Instanz:" - -msgid "Then request an IP number be allocated from the pool." -msgstr "Dann fordern Sie eine IP-Nummer aus dem Pool zuzuordnen." - -msgid "Then, create a pair of large fractals:" -msgstr "Dann erstellen Sie ein paar große Fraktale:" - -msgid "" -"There are also multiple storage back ends (to store the generated fractal " -"images) and a database component (to store the state of tasks), but we will " -"talk about those in :doc:`/durability` and :doc:`/block_storage` " -"respectively." -msgstr "" -"Es gibt auch mehrere Speicher-Backends (um die erzeugten Fraktalbilder zu " -"speichern) und eine Datenbankkomponente (um den Status der Aufgaben zu " -"speichern), aber wir sprechen über die in :doc:`/durability` und :doc:`/" -"block_storage`." - -msgid "" -"There are definite advantages to this architecture. It is easy to get a \"new" -"\" server, without any of the issues that inevitably arise when a server has " -"been up and running for months, or even years." -msgstr "" -"Es gibt definitive Vorteile für diese Architektur. Es ist leicht, einen " -"'neuen' Server zu bekommen, ohne irgendwelche Probleme, die unweigerlich " -"entstehen, wenn ein Server seit Monaten läuft oder sogar Jahre alt ist." - -msgid "" -"There are more commands available; find out more details about them with :" -"code:`faafo get --help`, :code:`faafo list --help`, and :code:`faafo delete " -"--help`." -msgstr "" -"Es stehen mehr Befehle zur Verfügung; erfahren Sie mehr über sie mit :code: " -"`faafo get --help`, :code:`faafo list --help` und :code:`faafo delete --" -"help`." - -msgid "" -"These demonstrate how the Ceilometer alarms add and remove instances. To use " -"them:" -msgstr "" -"Dies zeigt, wie die Ceilometer Alarme Instanzen hinzufügen und entfernen. Um " -"sie zu benutzen:" - -msgid "These queries provide a view into the behavior of the stack." -msgstr "Diese Abfragen geben einen Einblick in das Verhalten des Stapels." - -msgid "" -"These saved samples are aggregated to produce a statistic. The statistic " -"that we are interested in is **avg**: the average of the samples over a " -"given period." -msgstr "" -"Diese gespeicherten Proben werden zusammengefasst, um eine Statistik zu " -"erzeugen. Die Statistik, die wir interessieren, ist **avg**: der " -"Durchschnitt der Proben über einen bestimmten Zeitraum." - -msgid "" -"These services are client-facing, so unlike the workers they do not use a " -"message queue to distribute tasks. Instead, you must introduce some kind of " -"load balancing mechanism to share incoming requests between the different " -"API services." -msgstr "" -"Diese Dienste sind kundenorientiert, so dass sie im Gegensatz zu den " -"Mitarbeitern keine Nachrichtenwarteschlange verwenden, um Aufgaben zu " -"verteilen. Stattdessen müssen Sie eine Art Lastverteilungsmechanismus " -"einführen, um eingehende Anfragen zwischen den verschiedenen API-Diensten zu " -"teilen." - -msgid "" -"These tools vastly reduce the effort it takes to work with large numbers of " -"servers, and also improve the ability to recreate, update, move, and " -"distribute applications." -msgstr "" -"Diese Tools reduzieren den Aufwand, den es braucht, um mit einer großen " -"Anzahl von Servern zu arbeiten, und verringert auch die Fähigkeit, " -"Anwendungen neu zu erstellen, zu aktualisieren, zu verschieben und zu " -"verteilen." - -msgid "" -"This OpenStack Database service is not installed in many clouds right now, " -"but if your cloud supports it, it can make your life a lot easier when " -"working with databases." -msgstr "" -"Dieser OpenStack-Datenbank-Service ist derzeit nicht in vielen Clouds " -"installiert, aber wenn Ihre Cloud es unterstützt, kann es Ihr Leben bei der " -"Arbeit mit Datenbanken viel einfacher machen." - -msgid "This adds a \"foo\" key to the metadata that has a value of \"bar\"." -msgstr "" -"Dies fügt einen 'foo' Schlüssel zu den Metadaten hinzu, die einen Wert von " -"'bar' haben." - -msgid "" -"This chapter explains the importance of durability and scalability for your " -"cloud-based applications. In most cases, really achieving these qualities " -"means automating tasks such as scaling and other operational tasks." -msgstr "" -"In diesem Kapitel wird die Bedeutung von Langlebigkeit und Skalierbarkeit " -"für Ihre Cloud-basierten Anwendungen erläutert. In den meisten Fällen " -"bedeutet es wirklich, diese Qualitäten zu erreichen, um Aufgaben wie " -"Skalierung und andere operative Aufgaben zu automatisieren." - -msgid "" -"This chapter introduces the Networking API. This will enable us to build " -"networking topologies that separate public traffic accessing the application " -"from traffic between the API and the worker components. We also introduce " -"load balancing for resilience, and create a secure back-end network for " -"communication between the database, web server, file storage, and worker " -"components." -msgstr "" -"In diesem Kapitel wird die Networking API vorgestellt. Dies ermöglicht es " -"uns, Netzwerk-Topologien zu erstellen, die den öffentlichen Verkehrszugriff " -"auf die Anwendung vom Verkehr zwischen der API und den Worker-Komponenten " -"trennen. Wir führen auch Lastverteilung für Resilienz ein und schaffen ein " -"sicheres Back-End-Netzwerk für die Kommunikation zwischen Datenbank, " -"Webserver, Dateispeicher und Worker-Komponenten." - -msgid "This code returns output like this:" -msgstr "Dieser Code gibt die Ausgabe wie folgt zurück:" - -msgid "This code returns the floating IP address:" -msgstr "Dieser Code gibt die Floating-IP-Adresse zurück:" - -msgid "" -"This command returns a very long list of meters. Once a meter is created, it " -"is never thrown away!" -msgstr "" -"Dieser Befehl gibt eine sehr lange Liste von Metern zurück. Sobald ein Meter " -"erstellt ist, wird er niemals weggeworfen!" - -msgid "This document has not yet been completed for the .NET SDK." -msgstr "Dieses Dokument ist noch nicht für das .NET SDK abgeschlossen." - -msgid "This document has not yet been completed for the fog SDK." -msgstr "Dieses Dokument ist noch nicht für das fog-SDK abgeschlossen." - -msgid "This document has not yet been completed for the php-opencloud SDK." -msgstr "" -"Dieses Dokument ist noch nicht für das php-opencloud SDK abgeschlossen." - -msgid "" -"This file contains all the code from this tutorial section. This class lets " -"you view and run the code." -msgstr "" -"Diese Datei enthält den ganzen Code aus diesem Tutorial. Mit dieser Klasse " -"können Sie den Code anzeigen und ausführen." - -msgid "" -"This file contains all the code from this tutorial section. This " -"comprehensive code sample lets you view and run the code as a single script." -msgstr "" -"Diese Datei enthält den ganzen Code aus diesem Tutorial. Mit diesem " -"umfassenden Code-Beispiel können Sie den Code als einzelnes Skript anzeigen " -"und ausführen." - -msgid "This gets an IP address that you can assign to your instance:" -msgstr "Dies bekommt eine IP-Adresse, die Sie Ihrer Instanz zuordnen können:" - -msgid "" -"This guide is for experienced software developers who want to deploy " -"applications to OpenStack clouds." -msgstr "" -"Dieser Leitfaden ist für erfahrene Softwareentwickler, die Anwendungen auf " -"OpenStack-Clouds einsetzen möchten." - -msgid "" -"This is a `useful pattern `_ for many cloud applications that have long lists of requests coming " -"in and a pool of resources from which to service them. This also means that " -"a worker may crash and the tasks will be processed by other workers." -msgstr "" -"Dies ist ein 'nützliches Muster' `_ für viele Cloud-Anwendungen, die lange Listen von Anfragen " -"bekommen und ein Pool von Ressourcen, von denen sie zu bedienen haben. Dies " -"bedeutet auch, dass ein Arbeiter abstürzen kann und die Aufgaben von anderen " -"Workern verarbeitet werden." - -msgid "" -"This option also uses a bit stream to upload the file, iterating bit by bit " -"over the file and passing those bits to Object Storage as they come. " -"Compared to loading the entire file in memory and then sending it, this " -"method is more efficient, especially for larger files." -msgstr "" -"Diese Option verwendet auch einen Bit-Stream zum Hochladen der Datei, " -"Iteration von Bit für Bit über die Datei und übergeben diese Bits an Object " -"Storage, wie sie kommen. Im Vergleich zum Laden der gesamten Datei im " -"Speicher und dann senden ist diese Methode effizienter, vor allem für " -"größere Dateien." - -msgid "" -"This process was obviously a very manual one. Figuring out that we needed " -"more workers and then starting new ones required some effort. Ideally the " -"system would do this itself. If you build your application to detect these " -"situations, you can have it automatically request and remove resources, " -"which saves you the effort of doing this work yourself. Instead, the " -"OpenStack Orchestration service can monitor load and start instances, as " -"appropriate. To find out how to set that up, see :doc:`orchestration`." -msgstr "" -"Dieser Vorgang war offensichtlich ein sehr manueller. Herauszufinden, dass " -"wir mehr Worker brauchten und diese dann zu starten, bedarf einiger " -"Anstrengungen. Idealerweise würde das System das selbst tun. Wenn Sie Ihre " -"Anwendung aufbauen, um diese Situationen zu erkennen, können Sie sie " -"automatisch Ressourcen anfordern und entfernen, was Ihnen Mühe macht ist, " -"diese Arbeit selbst zu tun. Stattdessen kann der OpenStack " -"Orchestrierungsdienst die Last überwachen und Instanzen starten. Um " -"herauszufinden, wie man das einrichtet, siehe :doc:`orchestration`." - -msgid "" -"This section assumes that your cloud provider has implemented the OpenStack " -"Networking API (neutron). Users of clouds which have implemented legacy " -"networking (nova-network) will have access to networking via the Compute " -"API. Log in to the Horizon dashboard and navigate to :guilabel:`Project-" -">Access & Security->API Access`. If you see a service endpoint for the " -"Network API, your cloud is most likely running the Networking API. If you " -"are still in doubt, ask your cloud provider for more information." -msgstr "" -"In diesem Abschnitt wird davon ausgegangen, dass Ihr Cloud-Provider die " -"OpenStack Networking API (Neutron) implementiert hat. Benutzer von Clouds, " -"die Legacy Networking (nova-network) implementiert haben, haben Zugriff auf " -"die Vernetzung über die Compute API. Melden Sie sich im Horizon-Dashboard an " -"und navigieren Sie zu :guilabel:`Project->Access % Security->API Access`. " -"Wenn Sie einen Service-Endpunkt für die Netzwerk-API sehen, ist Ihre Cloud " -"wahrscheinlich die Netzwerk-API. Wenn Sie noch im Zweifel sind, fragen Sie " -"Ihren Cloud-Anbieter nach weiteren Informationen." - -msgid "" -"This section continues to illustrate the separation of services onto " -"multiple instances and highlights some of the choices that we have made that " -"facilitate scalability in the application architecture." -msgstr "" -"Dieser Abschnitt veranschaulicht weiterhin die Trennung von Diensten auf " -"mehrere Instanzen und hebt einige der Entscheidungen hervor, die wir gemacht " -"haben, die Skalierbarkeit in der Anwendungsarchitektur erleichtern." - -msgid "This section explores options for expanding the sample application." -msgstr "" -"In diesem Abschnitt werden Optionen für die Erweiterung der " -"Beispielanwendung untersucht." - -msgid "This section has not yet been completed for the .NET SDK" -msgstr "Dieser Abschnitt ist noch nicht für das .NET SDK abgeschlossen" - -msgid "This section has not yet been completed for the .NET SDK." -msgstr "Dieser Abschnitt ist noch nicht für das .NET SDK abgeschlossen." - -msgid "This section has not yet been completed for the OpenStack SDK." -msgstr "Dieser Abschnitt ist noch nicht für das OpenStack SDK abgeschlossen." - -msgid "This section has not yet been completed for the PHP-OpenCloud SDK." -msgstr "" -"Dieser Abschnitt ist noch nicht für das PHP-OpenCloud SDK abgeschlossen." - -msgid "This section has not yet been completed for the fog SDK." -msgstr "Dieser Abschnitt ist noch nicht für das Nebel-SDK abgeschlossen." - -msgid "This section has not yet been completed for the pkgcloud SDK." -msgstr "Dieser Abschnitt ist noch nicht für das pkgcloud SDK abgeschlossen." - -msgid "" -"This section introduces block storage, also known as volume storage, which " -"provides access to persistent storage devices. You interact with block " -"storage by attaching volumes to running instances just as you might attach a " -"USB drive to a physical server. You can detach volumes from one instance and " -"reattach them to another instance and the data remains intact. The OpenStack " -"Block Storage (cinder) project implements block storage." -msgstr "" -"In diesem Abschnitt wird ein Blockspeicher eingeführt, der auch als Volume-" -"Speicher bezeichnet wird und den Zugriff auf persistente Speichergeräte " -"ermöglicht. Sie interagieren mit Blockspeicher, indem Sie Volumes an " -"laufende Instanzen anhängen, so wie Sie ein USB-Laufwerk an einen physischen " -"Server anschließen können. Sie können Volumes von einer Instanz trennen und " -"sie wieder an eine andere Instanz anschließen und die Daten bleiben intakt. " -"Das OpenStack Block Storage (Cinder)-Projekt implementiert Blockspeicher." - -msgid "This section introduces object storage." -msgstr "In diesem Abschnitt wird der Objektspeicher eingeführt." - -msgid "" -"This section introduces some operational concepts and tasks to developers " -"who have not written cloud applications before." -msgstr "" -"In diesem Abschnitt werden den Entwicklern, die noch keine Cloud-Anwendungen " -"geschrieben haben, einige operative Konzepte und Aufgaben vorgestellt." - -msgid "" -"This section introduces the `HOT templating language `_, and takes you through some " -"common OpenStack Orchestration calls." -msgstr "" -"In diesem Abschnitt wird die 'HOT Templating Language' vorgestellt `_, und führt " -"Sie durch einige gemeinsame OpenStack Orchestrierung Anrufe." - -msgid "" -"This section introduces the application architecture and explains how it was " -"designed to take advantage of cloud features in general and OpenStack in " -"particular. It also describes some commands in the previous section." -msgstr "" -"Dieser Abschnitt stellt die Anwendungsarchitektur vor und erklärt, wie es " -"entworfen wurde, um die Vorteile von Cloud-Features im Allgemeinen und " -"OpenStack insbesondere zu nutzen. Es beschreibt auch einige Befehle im " -"vorherigen Abschnitt." - -msgid "" -"This section is based on the Neutron LBaaS API version 1.0 https://docs." -"openstack.org/admin-guide/networking_adv-features.html#basic-load-balancer-" -"as-a-service-operations" -msgstr "" -"Dieser Abschnitt basiert auf der Neutron LBaaS API Version 1.0 https://docs." -"openstack.org/admin-guide/networking_adv-features.html#basic-load-balancer-" -"as-a-service-operations" - -msgid "This section is incomplete. Please help us finish it!" -msgstr "" -"Dieser Abschnitt ist unvollständig. Bitte helfen Sie uns, ihn zu beenden!" - -msgid "" -"This tutorial shows two applications. The first application is a simple " -"fractal generator that uses mathematical equations to generate beautiful " -"`fractal images `_. We show you this " -"application in its entirety so that you can compare it to a second, more " -"robust, application." -msgstr "" -"Dieses Tutorial zeigt zwei Anwendungen. Die erste Anwendung ist ein " -"einfacher Fraktalgenerator, der mathematische Gleichungen verwendet, um " -"schöne `Fraktalbilder zu erzeugen `_. " -"Wir zeigen Ihnen diese Anwendung in ihrer Gesamtheit, damit Sie sie mit " -"einer zweiten, robusteren Anwendung vergleichen können." - -msgid "" -"Though you might have configured Object Storage to store images, the Fractal " -"application needs a database to track the location of, and parameters that " -"were used to create, images in Object Storage. This database server cannot " -"fail." -msgstr "" -"Obwohl Sie Objektspeicher zum Speichern von Bildern konfiguriert haben, " -"benötigt die Fractal-Anwendung eine Datenbank, um den Speicherort und die " -"Parameter, die zum Erstellen von Bildern in Objektspeicher verwendet wurden, " -"zu verfolgen. Dieser Datenbankserver kann nicht kaputtgehen." - -msgid "" -"To begin to store objects, we must first make a container. Call yours :code:" -"`fractals`:" -msgstr "" -"Um Objekte zu speichern, müssen wir zuerst einen Container bauen. Rufen sie " -"auf :code: `fractals`:" - -msgid "" -"To better understand how the template works, use this guide to install the " -"'ceilometer' command-line client:" -msgstr "" -"Um zu verstehen, wie die Vorlage funktioniert, verwenden Sie diese " -"Anleitung, um den 'ceilometer' Befehlszeilen-Client zu installieren:" - -msgid "" -"To configure shade using a profile, use your credentials above to specify " -"the cloud provider name, username, password, project name, and region name " -"in the file :file:`~/.config/openstack/clouds.yml`." -msgstr "" -"Um shade mit einem Profil zu konfigurieren, verwenden Sie Ihre " -"Anmeldeinformationen oben, um den Namen des Cloud-Providers, den " -"Benutzernamen, das Kennwort, den Projektnamen und den Namen der Region in " -"der Datei anzugeben: file: `~/.config/openstack/clouds.yml`." - -msgid "To create a floating IP address to use with your instance:" -msgstr "" -"So erstellen Sie eine Floating-IP-Adresse, die Sie mit Ihrer Instanz " -"verwenden können:" - -msgid "" -"To delete a container, you must first remove all objects from the container. " -"Otherwise, the delete operation fails:" -msgstr "" -"Um einen Container zu löschen, müssen Sie zuerst alle Objekte aus dem " -"Container entfernen. Andernfalls schlägt der Löschvorgang fehl:" - -msgid "To detach and delete a volume:" -msgstr "Um ein Volume abzulösen und zu löschen:" - -msgid "To determine whether a public IP address is assigned to your instance:" -msgstr "" -"Um festzustellen, ob eine öffentliche IP-Adresse Ihrer Instanz zugewiesen " -"ist:" - -msgid "To increase the overall capacity, add three workers:" -msgstr "Um die Gesamtkapazität zu erhöhen, fügen Sie drei Worker hinzu:" - -msgid "" -"To install the 'trove' command-line client, see `Install the OpenStack " -"command-line clients `_." -msgstr "" -"Um den Befehlszeilenclient 'trove' zu installieren, siehe `Installieren der " -"OpenStack-Befehlszeilenclients " -"`_." - -msgid "" -"To install the OpenStack .NET SDK, use the NeGet Package Manager that is " -"included with Visual Studio and Xamarin Studio. You simply add a package " -"named 'openstack.net' and the NeGet Package Manager automatically installs " -"the necessary dependencies." -msgstr "" -"Um das OpenStack .NET SDK zu installieren, verwenden Sie den NeGet Package " -"Manager, der in Visual Studio und Xamarin Studio enthalten ist. Sie fügen " -"einfach ein Paket namens 'openstack.net' hinzu und der NeGet Package Manager " -"installiert automatisch die notwendigen Abhängigkeiten." - -msgid "To interact with the cloud, you must also have" -msgstr "Um mit der Cloud zu interagieren, müssen Sie aber auch haben" - -msgid "" -"To launch an instance, you choose a flavor and an image. The flavor " -"represents the size of the instance, including the number of CPUs and amount " -"of RAM and disk space. An image is a prepared OS installation from which you " -"clone your instance. When you boot instances in a public cloud, larger " -"flavors can be more expensive than smaller ones in terms of resources and " -"monetary cost." -msgstr "" -"Um eine Instanz zu starten, wählen Sie eine Variante und ein Abbild. Die " -"Variante repräsentiert die Größe der Instanz, einschließlich der Anzahl der " -"CPUs und der Menge an RAM und Speicherplatz. Ein Abbild ist eine " -"vorbereitete OS-Installation, von der aus Sie Ihre Instanz klonen. Wenn Sie " -"Instanzen in einer öffentlichen Cloud booten, können größere Varianten " -"teurer sein als kleinere in Bezug auf Ressourcen und monetäre Kosten." - -msgid "" -"To learn about auto-scaling with the Orchestration API, read these articles:" -msgstr "" -"Um über die automatische Skalierung mit der Orchestrierungs-API zu erfahren, " -"lesen Sie diese Artikel:" - -msgid "" -"To learn about the template syntax for OpenStack Orchestration, how to " -"create basic templates, and their inputs and outputs, see `Heat " -"Orchestration Template (HOT) Guide `_." -msgstr "" -"Um die Vorlage-Syntax für die OpenStack Orchestration zu erlernen, wie Sie " -"grundlegende Vorlagen erstellen und ihre Eingaben und Ausgänge erstellen, " -"finden Sie unter 'Heat Orchestration Template (HOT) Guide' `_." - -msgid "" -"To list the images that are available in your cloud, run some API calls:" -msgstr "" -"Um die Abbilder aufzurufen, die in Ihrer Cloud verfügbar sind, führen Sie " -"einige API-Aufrufe aus:" - -msgid "To recap:" -msgstr "Zur Wiederholung:" - -msgid "" -"To run your application, you must launch an instance. This instance serves " -"as a virtual machine." -msgstr "" -"Um Ihre Anwendung auszuführen, müssen Sie eine Instanz starten. Diese " -"Instanz dient als virtuelle Maschine." - -msgid "To see if the volume creation was successful, list all volumes:" -msgstr "" -"Um zu sehen, ob die Volumenerstellung erfolgreich war, listen Sie alle " -"Volumes auf:" - -msgid "" -"To see the application running, you must know where to look for it. By " -"default, your instance has outbound network access. To make your instance " -"reachable from the Internet, you need an IP address. By default in some " -"cases, your instance is provisioned with a publicly rout-able IP address. In " -"this case, you see an IP address listed under `public_ips` or `private_ips` " -"when you list the instances. If not, you must create and attach a floating " -"IP address to your instance." -msgstr "" -"Um die Anwendung zu sehen, müssen Sie wissen, wo sie sie suchen. " -"Standardmäßig verfügt Ihre Instanz über einen ausgehenden Netzwerkzugriff. " -"Um Ihre Instanz aus dem Internet zu erreichen, benötigen Sie eine IP-" -"Adresse. In manchen Fällen ist Ihre Instanz standardmäßig mit einer " -"öffentlich routbaren IP-Adresse versorgt. In diesem Fall sehen Sie eine IP-" -"Adresse, die unter `public_ips` oder `private_ips` aufgeführt ist, wenn Sie " -"die Instanzen auflisten. Wenn nicht, müssen Sie eine Floating-IP-Adresse an " -"Ihre Instanz erstellen und anhängen." - -msgid "To see whether a private IP address is assigned to your instance:" -msgstr "Um zu sehen, ob eine private IP-Adresse Ihrer Instanz zugewiesen ist:" - -msgid "To see which security groups apply to an instance, you can:" -msgstr "" -"Um zu sehen, welche Sicherheitsgruppen für eine Instanz gelten, können Sie:" - -msgid "" -"To set up environment variables for your cloud in an :file:`openrc.sh` file, " -"see `Set environment variables using the OpenStack RC file `_." -msgstr "" -"Um die Umgebungsvariablen für Ihre Cloud in einer: file: `openrc.sh` Datei " -"einzurichten, siehe` Umgebungsvariablen mit der OpenStack RC Datei " -"einstellen `_." - -msgid "" -"To set up the necessary variables for your cloud in an 'openrc' file, use " -"this guide:" -msgstr "" -"Um die notwendigen Variablen für Ihre Cloud in einer 'openrc' Datei " -"einzurichten, benutzen Sie diese Anleitung:" - -msgid "" -"To show the details of a specific fractal use the subcommand :code:`show` of " -"the Faafo CLI." -msgstr "" -"Um die Details eines bestimmten Fraktals zu zeigen, verwenden Sie den " -"Unterbefehl :code:`show` der Faafo CLI." - -msgid "" -"To test what happens when the Fractals application is under load, you can:" -msgstr "" -"Um zu testen, was passiert, wenn die Fractals-Anwendung unter Last ist, " -"können Sie:" - -msgid "" -"To try it out, add the following code to a Python script (or use an " -"interactive Python shell) by calling :code:`python -i`." -msgstr "" -"Um es auszuprobieren, fügen Sie den folgenden Code zu einem Python-Skript " -"hinzu (oder verwenden Sie eine interaktive Python-Shell), indem Sie " -"aufrufen :code: `python -i`." - -msgid "To try it out, make a 1GB volume called 'test'." -msgstr "Um es auszuprobieren, machen Sie ein 1GB Volumen namens 'Test'." - -msgid "" -"To try it, add the following code to a Python script (or use an interactive " -"Python shell) by calling :code:`python -i`." -msgstr "" -"Um es zu versuchen, fügen Sie den folgenden Code zu einem Python-Skript " -"(oder verwenden Sie eine interaktive Python-Shell), indem Sie :code: `python " -"-i` eingeben." - -msgid "" -"To try it, use an interactive Node.js shell by calling :code:`node` or add " -"the following code to a script." -msgstr "" -"Um es auszuprobieren, benutzen Sie eine interaktive Node.js-Shell, indem " -"Sie :code: `node` ausführen oder den folgenden Code zu einem Skript " -"hinzufügen." - -msgid "" -"To use Maven to compile a downloaded sample, with the command prompt located " -"in the same directory as the :code:`pom.xml` file, enter:" -msgstr "" -"Um Maven zu verwenden, um ein heruntergeladenes Sample zu kompilieren, mit " -"der Eingabeaufforderung im selben Verzeichnis wie die :code: `pom.xml` " -"Datei, geben Sie Folgendes ein:" - -msgid "" -"To use Maven to run each downloaded sample, with the command prompt located " -"in the same directory as the :code:`pom.xml` file, enter:" -msgstr "" -"Um Maven zu verwenden, um jedes heruntergeladene Beispiel auszuführen, mit " -"der Eingabeaufforderung, die sich im selben Verzeichnis wie die Datei :code: " -"`pom.xml` befindet, geben Sie Folgendes ein:" - -msgid "" -"To use a floating IP, you must first allocate an IP to your project, then " -"associate it to your instance's network interface." -msgstr "" -"Um eine Floating-IP zu verwenden, müssen Sie zuerst Ihr Projekt eine IP " -"zuordnen und sie dann der Netzwerkschnittstelle Ihrer Instanz zuordnen." - -msgid "" -"To use the OpenStack .NET SDK, add the following code in the required " -"namespace section." -msgstr "" -"Um das OpenStack .NET SDK zu verwenden, fügen Sie den folgenden Code in den " -"erforderlichen Namespace-Abschnitt hinzu." - -msgid "To verify that ceilometer is installed, list the known meters:" -msgstr "" -"Um zu überprüfen, ob der Ceilometer installiert ist, liste die bekannten " -"Zähler auf:" - -msgid "URL" -msgstr "URL" - -msgid "" -"Use :code:`ex_list_floating_ip_pools()` and select the first floating IP " -"address pool. Allocate this pool to your project and use it to get a " -"floating IP address." -msgstr "" -"Verwenden Sie :code: `ex_list_floating_ip_pools ()` und wählen Sie den " -"ersten floating IP-Adresspool aus. Weisen Sie diesen Pool zu Ihrem Projekt " -"und verwenden Sie ihn, um eine Floating-IP-Adresse zu erhalten." - -msgid "" -"Use :code:`getFloatingIps` to check for unused addresses. Select the first " -"available address. Otherwise, use :code:`allocateNewFloatingIp` to allocate " -"a floating IP to your project from the default address pool." -msgstr "" -"Verwenden Sie :code: `getFloatingIps`, um nach unbenutzten Adressen zu " -"suchen. Wählen Sie die erste verfügbare Adresse aus. Andernfalls verwenden " -"Sie :code:`allocateNewFloatingIp`, um Ihrem Projekt eine Floating-IP " -"zuzuweisen, aus dem Standard-Adresspool." - -msgid "Use Block Storage for the Fractal database server" -msgstr "Verwenden Sie Blockspeicher für den Fractal-Datenbankserver" - -msgid "Use Object Storage instead of a database" -msgstr "Verwenden Sie Objektspeicher anstelle einer Datenbank" - -msgid "Use Object Storage to store fractals" -msgstr "Verwenden Sie Objektspeicher, um Fraktale zu speichern" - -msgid "Use Object and Block storage for file and database persistence." -msgstr "" -"Verwenden Sie Objekt- und Blockspeicher für Datei- und Datenbankpersistenz." - -msgid "Use Orchestration services to automatically adjust to the environment." -msgstr "" -"Verwenden Sie Orchestrierungsdienste, um sich automatisch an die Umgebung " -"anzupassen." - -msgid "" -"Use SSH with the existing SSH keypair to log in to the :code:`app-" -"controller` controller instance." -msgstr "" -"Verwenden Sie SSH mit dem vorhandenen SSH-Schlüsselpaar, um sich an dem :" -"code:`app-controller` Controller-Instanz anzumelden." - -msgid "" -"Use a for loop to call the :code:`faafo` command-line interface to request a " -"random set of fractals 500 times:" -msgstr "" -"Verwenden Sie eine for-Schleife, um den :code:`faafo`-Befehlszeilen-" -"Interface anzurufen, um einen zufälligen Satz von Fraktalen 500 mal " -"anzufordern:" - -msgid "Use conf.d and etc.d." -msgstr "Verwenden Sie conf.d und etc.d." - -msgid "Use environment variables to set your cloud credentials" -msgstr "" -"Verwenden Sie Umgebungsvariablen, um Ihre Cloud-Anmeldeinformationen " -"festzulegen" - -msgid "" -"Use network service client to select the first floating IP address pool. " -"Allocate this pool to your project and use it to get a floating IP address." -msgstr "" -"Verwenden Sie den Netzwerkdienstclient, um den ersten Floating-IP-Adresspool " -"auszuwählen. Weisen Sie diesen Pool zu Ihrem Projekt und verwenden Sie ihn, " -"um eine Floating-IP-Adresse zu erhalten." - -msgid "Use the :code:`faafo UUID` command to examine some of the fractals." -msgstr "" -"Verwenden Sie den :code:`faafo UUID` Befehl, um einige der Fraktale zu " -"untersuchen." - -msgid "Use the :code:`faafo create` command to generate fractals." -msgstr "" -"Verwenden Sie den :code:`faafo create` Befehl, um Fraktale zu erzeugen." - -msgid "" -"Use the :code:`faafo list` command to watch the progress of fractal " -"generation." -msgstr "" -"Verwenden Sie den :code:`faafo list` Befehl, um den Fortschritt der " -"Fraktalgenerierung zu beobachten." - -msgid "" -"Use the `Health Endpoint Monitoring Pattern ` to implement functional checks within your " -"application that external tools can access through exposed endpoints at " -"regular intervals." -msgstr "" -"Verwenden Sie das `Health Endpoint Monitoring Pattern ` um funktionale Prüfungen " -"innerhalb Ihrer Anwendung zu implementieren, sodass externe Werkzeuge über " -"exponierte Endpunkte in regelmäßigen Abständen zugreifen können." - -msgid "" -"Use the image, flavor, key pair, and userdata to create an instance. After " -"you request the instance, wait for it to build." -msgstr "" -"Verwenden Sie das Abbild, die Variante, das Schlüsselpaar und die Userdata, " -"um eine Instanz zu erstellen. Nachdem Sie die Instanz angefordert haben, " -"warten Sie, bis sie gebaut wird." - -msgid "Use the stack ID to get more information about the stack:" -msgstr "" -"Verwenden Sie die Stack-ID, um mehr Informationen über den Stapel zu " -"erhalten:" - -msgid "" -"Use this guide to install the 'openstack' command-line client: https://docs." -"openstack.org/cli-reference/common/" -"cli_install_openstack_command_line_clients.html#install-the-clients" -msgstr "" -"Verwenden Sie diese Anleitung, um den Befehlszeilenclient 'openstack' zu " -"installieren: https://docs.openstack.org/cli-reference/common/" -"cli_install_openstack_command_line_clients.html#install-the-clients" - -msgid "" -"Use this guide to set up the necessary variables for your cloud in an " -"'openrc' file: https://docs.openstack.org/cli-reference/common/" -"cli_set_environment_variables_using_openstack_rc.html" -msgstr "" -"Verwenden Sie diese Anleitung, um die notwendigen Variablen für Ihre Cloud " -"in einer 'openrc' Datei einzurichten: https://docs.openstack.org/cli-" -"reference/common/cli_set_environment_variables_using_openstack_rc.html" - -msgid "" -"Use your credentials above to specify the cloud provider name, username, " -"password, project_name and region_name in the file :file:`~/.config/" -"openstack/clouds.yml`." -msgstr "" -"Verwenden Sie Ihre Anmeldeinformationen oben, um den Namen des Cloud-" -"Providers, den Benutzernamen, das Kennwort, den Projektnamen und den " -"Regionalnamen in der Datei anzugeben: file: `~/.config/openstack/clouds.yml`." - -msgid "Use your selected image and flavor to create an instance." -msgstr "" -"Verwenden Sie Ihr ausgewähltes Abbild und Ihre Variante, um eine Instanz zu " -"erstellen." - -msgid "User data in openstacksdk must be encoded to Base64" -msgstr "Userdata in openstacksdk müssen zu Base64 codiert werden" - -msgid "User data in openstacksdk must be encoded to Base64." -msgstr "Benutzerdaten in openstacksdk müssen zu Base64 codiert werden." - -msgid "" -"Userdata. During instance creation, you can provide userdata to OpenStack to " -"configure instances after they boot. The cloud-init service applies the user " -"data to an instance. You must pre-install the cloud-init service on your " -"chosen image. We will go into more detail in :doc:`/introduction`." -msgstr "" -"Userdata. Während der Instanzerstellung können Sie Userdata OpenStack zur " -"Verfügung stellen, um Instanzen nach dem Booten zu konfigurieren. Der Cloud-" -"init-Dienst wendet die Userdata auf eine Instanz an. Sie müssen den Cloud-" -"Init-Service auf Ihrem gewählten Abbild vorinstallieren. Wir werden " -"ausführlicher in :doc:`/introductiong`." - -msgid "Using Pacemaker to look at the API." -msgstr "Mit Pacemaker auf die API schauen." - -msgid "Values" -msgstr "Werte" - -msgid "Verify that the stack was successfully created:" -msgstr "Vergewissern Sie sich, dass der Stapel erfolgreich erstellt wurde:" - -msgid "Verify that we have had an impact" -msgstr "Vergewissern Sie sich, dass wir einen Einfluss hatten" - -msgid "Verify the nova instance was deleted when the stack was removed:" -msgstr "" -"Überprüfen Sie, ob die Nova-Instanz gelöscht wurde, als der Stapel entfernt " -"wurde:" - -msgid "Wait for it to reach the :code:`CREATE_COMPLETE` status:" -msgstr "Warten Sie, bis Sie den Status :code:`CREATE_COMPLETE` erreicht haben:" - -msgid "" -"Watch :code:`top` on the worker instance. Right after calling :code:`faafo` " -"the :code:`faafo-worker` process should start consuming a lot of CPU cycles." -msgstr "" -"Überwachen Sie :code:`top` auf der Worker-Instanz. Nach dem Aufruf :code:" -"`faafo` sollte der Prozess :code:` faafo-worker` beginnen, eine Menge von " -"CPU-Zyklen zu verbrauchen." - -msgid "" -"We are interested because the Telemetry service supports alarms: an alarm is " -"fired when our average statistic breaches a configured threshold. When the " -"alarm fires, an associated action is performed." -msgstr "" -"Wir sind interessiert, weil der Telemetrie-Service Alarme unterstützt: Ein " -"Alarm wird ausgelöst, wenn unsere durchschnittliche Statistik einen " -"konfigurierten Schwellenwert verletzt. Wenn der Alarm ausgelöst wird, wird " -"eine entsprechende Aktion durchgeführt." - -msgid "" -"We assume that you can already access an OpenStack cloud. You must have a " -"project, also known as a tenant, with a minimum quota of six instances. " -"Because the Fractals application runs in Ubuntu, Debian, Fedora-based, and " -"openSUSE-based distributions, you must create instances that use one of " -"these operating systems." -msgstr "" -"Wir gehen davon aus, dass Sie bereits auf eine OpenStack Cloud zugreifen " -"können. Sie müssen ein Projekt haben, auch bekannt als Tenant, mit einem " -"Mindestkontingent von sechs Instanzen. Da die Fractals-Anwendung in Ubuntu-, " -"Debian-, Fedora-basierten und openSUSE-basierten Distributionen ausgeführt " -"wird, müssen Sie Instanzen erstellen, die eines dieser Betriebssysteme " -"verwenden." - -msgid "We cover networking in detail in :doc:`/networking`." -msgstr "Wir decken die Vernetzung im Detail ab in :doc:`/networking`." - -msgid "" -"We explained image and flavor in :doc:`getting_started`, so in the following " -"sections, we will explain the other parameters in detail, including :code:" -"`ex_userdata` (cloud-init) and :code:`ex_keyname` (key pairs)." -msgstr "" -"Wir erklärten das Abbild und die Variante in :doc:`get_started`, also in den " -"folgenden Abschnitten werden wir die anderen Parameter im Detail erklären, " -"darunter :code:`ex_userdata` (cloud-init) und :code:`ex_keyname` " -"(Schlüsselpaare )." - -msgid "We have created a Maven POM file to help you get started." -msgstr "" -"Wir haben eine Maven POM Datei erstellt, um Ihnen den Einstieg zu " -"erleichtern." - -msgid "" -"We have not quite figured out how to stop using a database, but the general " -"steps are:" -msgstr "" -"Wir haben nicht ganz herausgefunden, wie man aufhört, eine Datenbank zu " -"benutzen, aber die allgemeinen Schritte sind:" - -msgid "" -"We have talked about separating functions into different micro-services, and " -"how that enables us to make use of the cloud architecture. Now let us see " -"that in action." -msgstr "" -"Wir haben über die Trennung von Funktionen in verschiedene Mikro-Dienste " -"gesprochen und wie das uns ermöglicht, die Cloud-Architektur zu nutzen. Nun " -"lassen Sie uns das in Aktion sehen." - -msgid "What you need" -msgstr "Was Sie brauchen" - -msgid "What you will learn" -msgstr "Was Sie lernen werden" - -msgid "" -"When an SSH public key is provided during instance creation, cloud-init " -"installs this key on a user account. (The user name varies between cloud " -"images.) See the `Obtaining Images `_ section of the image guide for guidance about which " -"user name you should use when SSHing. If you still have problems logging in, " -"ask your cloud provider to confirm the user name." -msgstr "" -"Wenn während der Instanzerstellung ein SSH-Public-Key zur Verfügung gestellt " -"wird, installiert cloud-init diesen Schlüssel auf einem Benutzerkonto. (Der " -"Benutzername variiert zwischen Cloud-Abbildern.) Siehe 'Erhalten von " -"Abbildern `_ " -"Abschnitt der Abbildanleitung zur Anleitung, welche Benutzernamen Sie " -"verwenden sollten, wenn SSHen. Wenn Sie noch Probleme beim Anmelden haben, " -"fragen Sie Ihren Cloud-Anbieter, um den Benutzernamen zu bestätigen." - -msgid "" -"When the instance boots, the `ex_userdata` variable value instructs the " -"instance to deploy the Fractals application." -msgstr "" -"Wenn die Instanz startet, weist die Variable 'ex_userdata' die Instanz an, " -"die Fractals-Anwendung bereitzustellen." - -msgid "" -"When you create an instance for the application, you want to give it a bit " -"more information than you supplied to the bare instance that you just " -"created and deleted. We will go into more detail in later sections, but for " -"now, simply create the following resources so that you can feed them to the " -"instance:" -msgstr "" -"Wenn Sie eine Instanz für die Anwendung erstellen, möchten Sie es ein " -"bisschen mehr Informationen geben als Sie an die bloße Instanz geliefert " -"haben, die Sie gerade erstellt und gelöscht haben. Wir werden in späteren " -"Abschnitten näher eingehen, aber jetzt schaffen wir einfach die folgenden " -"Ressourcen, damit Sie sie der Instanz zuführen können:" - -msgid "" -"When you deal with pets, you name and care for them. If they get sick, you " -"nurse them back to health, which can be difficult and very time consuming. " -"When you deal with cattle, you attach a numbered tag to their ear. If they " -"get sick, you put them down and move on." -msgstr "" -"Wenn Sie mit Haustieren umgehen, benennen und pflegen Sie sie. Wenn sie " -"krank werden, pflegt man sie wieder gesund, was schwierig und sehr " -"zeitraubend sein kann. Wenn Sie mit Vieh umgehen, fügen Sie ein nummeriertes " -"Etikett ans Ohr. Wenn sie krank werden, machen Sie sie weg und ziehen weiter." - -msgid "" -"While this stack starts a single instance that builds and runs the Fractal " -"application as an all-in-one installation, you can make very complicated " -"templates that impact dozens of instances or that add and remove instances " -"on demand. Continue to the next section to learn more." -msgstr "" -"Während dieser Stapel eine einzelne Instanz startet, die die Fractal-" -"Anwendung als All-in-One-Installation aufbaut und ausführt, können Sie sehr " -"komplizierte Vorlagen erstellen, die Dutzende von Instanzen beeinflussen " -"oder Instanzen auf Anfrage hinzufügen und entfernen. Fahren Sie mit dem " -"nächsten Abschnitt fort, um mehr zu erfahren." - -msgid "Who should read this guide" -msgstr "Wer sollte diesen Leitfaden lesen" - -msgid "" -"With multiple workers producing fractals as fast as they can, the system " -"must be able to receive the requests for fractals as quickly as possible. If " -"our application becomes popular, many thousands of users might connect to " -"our API to generate fractals." -msgstr "" -"Mit mehreren Workern, die Fraktale erzegen so schnell wie sie können, muss " -"das System in der Lage sein, die Anfragen für Fraktale so schnell wie " -"möglich zu erhalten. Wenn unsere Anwendung populär wird, können viele " -"Tausende von Benutzern eine Verbindung zu unserer API herstellen, um " -"Fraktale zu erzeugen." - -msgid "" -"With the OpenStack Networking API, the workflow for creating a network " -"topology that separates the public-facing Fractals app API from the worker " -"back end is as follows:" -msgstr "" -"Mit der OpenStack Networking API ist der Workflow zur Erstellung einer " -"Netzwerktopologie, die die öffentlich zugängliche Fractals App API vom " -"Worker Back End trennt, wie folgt:" - -msgid "" -"With the Orchestration API, the Fractal application can create an auto-" -"scaling group for all parts of the application, to dynamically provision " -"more compute resources during periods of heavy utilization, and also " -"terminate compute instances to scale down, as demand decreases." -msgstr "" -"Mit der Orchestrierungs-API kann die Fractal-Anwendung eine Auto-" -"Skalierungsgruppe für alle Teile der Anwendung erstellen, um dynamisch mehr " -"Rechenressourcen in Zeiten schwerer Auslastung bereitzustellen und auch " -"Compute-Instanzen zu verkleinern, wenn die Nachfrage sinkt." - -msgid "" -"With the addition of the load balancer, the Fractal app's networking " -"topology now reflects the modular nature of the application itself." -msgstr "" -"Mit der Ergänzung des Load Balancers spiegelt die Netzwerktopologie der " -"Fractal App die modulare Art der Applikation selbst wider." - -msgid "Work with stacks: Advanced" -msgstr "Arbeit mit Stapeln: Fortgeschrittene" - -msgid "Work with stacks: Basics" -msgstr "Arbeit mit Stapeln: Grundlagen" - -msgid "Work with the CLI" -msgstr "Arbeit mit der CLI" - -msgid "Work with the OpenStack Database service" -msgstr "Arbeiten Sie mit dem OpenStack Datenbankdienst" - -msgid "" -"Wow! If you have made it through this section, you know more than the " -"authors of this guide know about working with OpenStack clouds." -msgstr "" -"Beeindruckend! Wenn Sie es durch diesen Abschnitt geschaff haben, wissen Sie " -"mehr als die Autoren dieses Leitfadens über die Arbeit mit OpenStack-Clouds " -"wissen." - -msgid "Writing your first OpenStack application" -msgstr "Schreiben Sie Ihre erste OpenStack Anwendung" - -msgid "" -"You also need a security group to permit access to the database server (for " -"MySQL, port 3306) from the network:" -msgstr "" -"Sie benötigen auch eine Sicherheitsgruppe, um den Zugriff auf den " -"Datenbankserver (für MySQL, Port 3306) aus dem Netzwerk zu ermöglichen:" - -msgid "" -"You are ready to create members for the load balancer pool, which reference " -"the floating IPs:" -msgstr "" -"Sie sind bereit, Mitglieder für den Load Balancer Pool zu erstellen, die auf " -"die Floating-IPs verweisen:" - -msgid "" -"You can aggregate samples and calculate statistics across all instances with " -"the `metering.some_name` metadata that has `some_value` by using a query of " -"the form:" -msgstr "" -"Sie können Samples zusammenfassen und Statistiken über alle Instanzen mit " -"den Metadaten 'metering.some_name' berechnen, die `some_value` haben, indem " -"Sie eine Abfrage des Formulars verwenden:" - -msgid "" -"You can also download the OpenStack RC file from the OpenStack Horizon " -"dashboard. Log in to the dashboard and click :guilabel:`Project->Access & " -"Security->API Access->Download OpenStack RC file`. If you use this method, " -"be aware that the \"auth URL\" does not include the path. For example, if " -"your :file:`openrc.sh` file shows:" -msgstr "" -"Sie können die OpenStack RC-Datei auch aus dem OpenStack Horizon Dashboard " -"herunterladen. Melden Sie sich im Dashboard an und klicken Sie auf :" -"guilabel: `Project-> Access & Security-> API Access-> Download OpenStack RC " -"Datei`. Wenn Sie diese Methode verwenden, beachten Sie, dass die 'auth URL' " -"den Pfad nicht enthält. Zum Beispiel, wenn Ihre: Datei: `openrc.sh` Datei " -"zeigt:" - -msgid "You can also get information about available flavors:" -msgstr "Sie können auch Informationen über verfügbare Varianten erhalten:" - -msgid "" -"You can also use the OpenStack API to create snapshots of running instances " -"and persistent volumes. For more information, see your SDK documentation." -msgstr "" -"Sie können auch die OpenStack-API verwenden, um Snapshots von laufenden " -"Instanzen und persistenten Volumes zu erstellen. Weitere Informationen " -"finden Sie in Ihrer SDK-Dokumentation." - -msgid "" -"You can complete advanced tasks such as uploading an object with metadata, " -"as shown in following example. For more information, see the documentation " -"for your SDK." -msgstr "" -"Sie können erweiterte Aufgaben wie das Hochladen eines Objekts mit Metadaten " -"abschließen, wie im folgenden Beispiel gezeigt. Weitere Informationen finden " -"Sie in der Dokumentation zu Ihrem SDK." - -msgid "" -"You can detach the volume and reattach it elsewhere, or use the following " -"steps to delete the volume." -msgstr "" -"Sie können das Volume ablösen und an anderer Stelle wieder anbringen, oder " -"verwenden Sie die folgenden Schritte, um das Volume zu löschen." - -msgid "You can list available security groups with:" -msgstr "Sie können verfügbare Sicherheitsgruppen mit:" - -msgid "You can then attach it to the instance:" -msgstr "Sie können sie dann an die Instanz anschließen:" - -msgid "" -"You create stacks from templates, which contain resources. Resources are an " -"abstraction in the HOT (Heat Orchestration Template) template language, " -"which enables you to define different cloud resources by setting the :code:" -"`type` attribute." -msgstr "" -"Sie erstellen Stacks aus Vorlagen, die Ressourcen enthalten. Ressourcen sind " -"eine Abstraktion in der Schablonensprache von HOT (Heat Orchestration " -"Template), mit der Sie verschiedene Cloud-Ressourcen definieren können, " -"indem Sie das Attribut :code:`type` setzen." - -msgid "" -"You might have to run the :command:`openstack stack list` command a few " -"times before the stack creation is complete." -msgstr "" -"Möglicherweise müssen Sie :command: 'openstack stack list' ein paar Mal " -"ausführen, bevor die Stapelerstellung abgeschlossen ist." - -msgid "" -"You might want to use multiple clouds, such as a private cloud inside your " -"organization and a public cloud. This section attempts to do exactly that." -msgstr "" -"Vielleicht möchten Sie mehrere Clouds verwenden, z. B. eine private Cloud in " -"Ihrer Organisation und eine öffentliche Cloud. Dieser Abschnitt versucht " -"genau das zu tun." - -msgid "You must pass in objects and not object names to the delete commands." -msgstr "" -"Sie müssen Objekte und nicht Objektnamen an die Löschbefehle übergeben." - -msgid "" -"You need a server for the dedicated database. Use the image, flavor, and " -"keypair that you used in :doc:`/getting_started` to launch an :code:`app-" -"database` instance." -msgstr "" -"Sie benötigen einen Server für die dedizierte Datenbank. Verwenden Sie das " -"Abbild, die Variante und das Schlüsselpaar, das Sie verwendet haben :doc: `/ " -"getting_started`, um einen :code:` app-database` Instanz zu starten." - -msgid "You pass in these configuration settings as parameters:" -msgstr "Sie übergeben diese Konfigurationseinstellungen als Parameter:" - -msgid "You should be able to see them in the member list:" -msgstr "Sie sollten sie in der Mitgliederliste sehen können:" - -msgid "" -"You should be fairly confident about starting instances and distributing " -"services from an application among these instances." -msgstr "" -"Sie sollten sich ziemlich sicher über das Starten von Instanzen und die " -"Verteilung von Diensten aus einer Anwendung unter diesen Instanzen sein." - -msgid "" -"You should now be able to see this container appear in a listing of all " -"containers in your account:" -msgstr "" -"Sie sollten nun in der Lage sein, diesen Container in einer Auflistung aller " -"Container in Ihrem Konto sehen:" - -msgid "" -"You should now be fairly confident working with Block Storage volumes. For " -"information about other calls, see the volume documentation for your SDK. " -"Or, try one of these tutorial steps:" -msgstr "" -"Sie sollten jetzt ziemlich sicher sein, mit Block Storage Volumes zu " -"arbeiten. Weitere Informationen zu anderen Anrufen finden Sie in der " -"Datenträgerdokumentation für Ihr SDK. Oder versuchen Sie eines dieser " -"Tutorial Schritte:" - -msgid "" -"You should now be fairly confident working with Object Storage. You can find " -"more information about the Object Storage SDK calls at:" -msgstr "" -"Sie sollten jetzt ziemlich sicher sein, mit Object Storage zu arbeiten. " -"Weitere Informationen zu den Object Storage SDK-Anrufen finden Sie unter:" - -msgid "" -"You should now be fairly confident working with the Network API. To see " -"calls that we did not cover, see the volume documentation of your SDK, or " -"try one of these tutorial steps:" -msgstr "" -"Sie sollten jetzt ziemlich sicher sein, mit der Netzwerk-API zu arbeiten. Um " -"Aufrufe zu sehen, die wir nicht abgedeckt haben, sehen Sie die " -"Datenträgerdokumentation Ihres SDK oder versuchen Sie einen dieser Tutorial " -"Schritte:" - -msgid "" -"You should now be fairly confident working with the Orchestration service. " -"To see the calls that we did not cover and more, see the volume " -"documentation of your SDK. Or, try one of these steps in the tutorial:" -msgstr "" -"Sie sollten jetzt ziemlich sicher sein, mit dem Orchestrationsdienst zu " -"arbeiten. Um die Anrufe zu sehen, die wir nicht abgedeckt haben und mehr, " -"sehen Sie die Datendokumentation Ihres SDK. Oder versuchen Sie einen dieser " -"Schritte im Tutorial:" - -msgid "" -"You should now have a basic understanding of the architecture of cloud-based " -"applications. In addition, you have had practice starting new instances, " -"automatically configuring them at boot, and even modularizing an application " -"so that you may use multiple instances to run it. These are the basic steps " -"for requesting and using compute resources in order to run your application " -"on an OpenStack cloud." -msgstr "" -"Sie sollten nun ein grundlegendes Verständnis der Architektur von Cloud-" -"basierten Anwendungen haben. Darüber hinaus haben Sie Praxis, neue Instanzen " -"zu starten, automatisch konfigurieren sie beim Booten, und sogar " -"modularisieren eine Anwendung, so dass Sie mehrere Instanzen verwenden " -"können, um sie auszuführen. Dies sind die grundlegenden Schritte zum " -"Anfordern und Verwenden von Compute-Ressourcen, um Ihre Anwendung auf einer " -"OpenStack-Cloud auszuführen." - -msgid "You should see output like this:" -msgstr "Die Ausgabe sollte wie folgt aussehen:" - -msgid "You should see output something like this:" -msgstr "Sie sollten so etwas wie folgt sehen:" - -msgid "You should see output something like:" -msgstr "Sie sollten so etwas sehen:" - -msgid "You should see output such as:" -msgstr "Sie sollten Ausgaben sehen wie:" - -msgid "" -"You will progressively ramp up to use up six instances, so make sure that " -"your cloud account has the appropriate quota." -msgstr "" -"Sie werden fortschreitend hochfahren, um sechs Instanzen zu verwenden, also " -"stellen Sie sicher, dass Ihr Cloud-Konto die entsprechende Quote hat." - -msgid "Your SDK might call an instance a 'node' or 'server'." -msgstr "Ihr SDK könnte eine Instanz einen 'Knoten' oder 'Server' aufrufen." - -msgid "Your images and flavors will be different, of course." -msgstr "Ihre Abbilder und Varianten werden natürlich anders sein." - -msgid "Your ssh key name" -msgstr "Ihr ssh Schlüssel Name" - -msgid "`Libcloud `_" -msgstr "`Libcloud `_" - -msgid "" -"`Micro-services `_ are an " -"important design pattern that helps achieve application modularity. " -"Separating logical application functions into independent services " -"simplifies maintenance and re-use. Decoupling components also makes it " -"easier to selectively scale individual components, as required. Further, " -"application modularity is a required feature of applications that scale out " -"well and are fault tolerant." -msgstr "" -"`Mikro-Dienste `_ sind ein " -"wichtiges Design-Muster, das hilft, die Modularität der Anwendung zu " -"erreichen. Die Trennung von logischen Applikationsfunktionen in unabhängige " -"Dienste vereinfacht die Wartung und Wiederverwendung. " -"Entkopplungskomponenten erleichtern auch die selektive Skalierung einzelner " -"Komponenten nach Bedarf. Weiterhin ist die Anwendungsmodularität ein " -"notwendiges Merkmal von Anwendungen, die gut skalieren und fehlertolerant " -"sind." - -msgid "" -"`OpenStack Cloud SDK for Microsoft .NET 1.4.0.1 or later installed `_." -msgstr "" -"`OpenStack Cloud SDK für Microsoft .NET 1.4.0.1 oder höher installiert " -" `_." - -msgid "" -"`OpenStack Object Storage `_ (code-named swift) is open-source software that enables you to " -"create redundant, scalable data storage by using clusters of standardized " -"servers to store petabytes of accessible data. It is a long-term storage " -"system for large amounts of static data that you can retrieve, leverage, and " -"update. Unlike more traditional storage systems that you access through a " -"file system, you access Object Storage through an API." -msgstr "" -"`OpenStack Objektspeicher `` (code-named swift) ist Open-Source-Software, mit der Sie " -"redundante, skalierbare Datenspeicherung erstellen können, indem Sie Cluster " -"von standardisierten Servern verwenden, um Petabyte zugängliche Daten zu " -"speichern. Es ist ein langfristiges Speichersystem für große Mengen an " -"statischen Daten, die Sie abrufen, nutzen und aktualisieren können. Im " -"Gegensatz zu herkömmlichen Speichersystemen, die Sie über ein Dateisystem " -"aufrufen, greifen Sie über eine API auf Objektspeicher zu." - -msgid "" -"`Phoenix Servers `_, named " -"for the mythical bird that is consumed by fire and rises from the ashes to " -"live again, make it easy to start over with new instances." -msgstr "" -"`Phoenix-Servern `_, " -"benannt nach dem mythischen Vogel, der vom Feuer verbrannt wird und von der " -"Asche aufsteigt, um wieder zu leben, macht es leicht, mit neuen Instanzen zu " -"starten." - -msgid "" -"`a recent version of gophercloud installed `_" -msgstr "" -"'eine neue Version von gophercloud installiert `_" - -msgid "" -"`a recent version of php-opencloud installed `_." -msgstr "" -"`eine aktuelle Version von php-opencloud installiert `_." - -msgid "" -"`a recent version of shade installed `_." -msgstr "" -"`eine aktuelle Version der shade-Bibliothek installiert `_." - -msgid "" -"`cloud-init `_ is a tool that " -"performs instance configuration tasks during the boot of a cloud instance, " -"and comes installed on most cloud images. :code:`ex_userdata`, which was " -"passed to :code:`create_node`, is the configuration data passed to cloud-" -"init." -msgstr "" -"`cloud-init `_ ist ein Tool, " -"das Instanz-Konfigurationsaufgaben während des Bootens einer Cloud-Instanz " -"ausführt und auf den meisten Cloud-Abbildern installiert wird. :code:" -"`ex_userdata`, der an :code:`create_node` übergeben wurde, sind die an cloud-" -"init übergebenen Konfigurationsdaten." - -msgid "" -"`fog 1.19 or higher installed `_ and working with ruby gems 1.9." -msgstr "" -"`fog 1.19 oder höher installiert `_ und die Arbeit mit ruby gems 1.9." - -msgid "`fog `_" -msgstr "`fog `_" - -msgid "`gophercloud `_" -msgstr "`gophercloud `_" - -msgid "" -"`jClouds 1.8 or higher installed `_." -msgstr "" -"`jClouds 1.8 oder höher installiert `_." - -msgid "`jClouds `_" -msgstr "`jClouds `_" - -msgid "" -"`libcloud 0.15.1 or higher installed `_." -msgstr "" -"`libcloud 0.15.1 oder höher installiert `_." - -msgid "`php-opencloud `_" -msgstr "`php-opencloud `_" - -msgid "" -"`pkgcloud 1.2 or higher installed `_." -msgstr "" -"`pkgcloud 1.2 oder höher installiert `_." - -msgid "`pkgcloud `_" -msgstr "`pkgcloud `_" - -msgid "" -"a recent version of `OpenStackSDK `_ installed." -msgstr "" -"eine aktuelle Version von `openstacksdk `_ installiert" - -msgid "amqp://guest:guest@localhost:5672/" -msgstr "amqp://guest:guest@localhost:5672/" - -msgid "auth URL" -msgstr "Auth URL" - -msgid "cloud region" -msgstr "Cloud Region" - -msgid "conf.d, etc.d" -msgstr "conf.d, etc.d" - -msgid "" -"fog `does support OpenStack Orchestration `_." -msgstr "" -"fog 'unterstützt OpenStack Orchestrierung `_." - -msgid "" -"fog `supports `_ the OpenStack Networking API, but this section has not yet been " -"completed." -msgstr "" -"fog 'Unterstützung `` die OpenStack Networking API, aber dieser Abschnitt ist noch " -"nicht abgeschlossen." - -msgid "http://gophercloud.io/" -msgstr "http://gophercloud.io/" - -msgid "http://localhost/" -msgstr "http://localhost/" - -msgid "" -"http://php-opencloud.readthedocs.org/en/latest/getting-started-with-" -"openstack.html" -msgstr "" -"http://php-opencloud.readthedocs.org/de/latest/getting-started-with-" -"openstack.html" - -msgid "" -"https://docs.openstack.org/cli-reference/common/" -"cli_install_openstack_command_line_clients.html#install-the-clients" -msgstr "" -"https://docs.openstack.org/cli-reference/common/" -"cli_install_openstack_command_line_clients.html#install-the-clients" - -msgid "" -"https://docs.openstack.org/cli-reference/common/" -"cli_set_environment_variables_using_openstack_rc.html" -msgstr "" -"https://docs.openstack.org/cli-reference/common/" -"cli_set_environment_variables_using_openstack_rc.html" - -msgid "https://docs.openstack.org/infra/shade/" -msgstr "https://docs.openstack.org/infra/shade/" - -msgid "https://docs.openstack.org/openstacksdk/latest/" -msgstr "https://docs.openstack.org/openstacksdk/latest/" - -msgid "" -"https://github.com/fog/fog-openstack/blob/master/docs/getting_started.md" -msgstr "" -"https://github.com/fog/fog-openstack/blob/master/docs/getting_started.md" - -msgid "" -"https://github.com/fog/fog/blob/master/lib/fog/openstack/docs/storage.md" -msgstr "" -"https://github.com/fog/fog/blob/master/lib/fog/openstack/docs/storage.md" - -msgid "" -"https://github.com/pkgcloud/pkgcloud/tree/master/docs/providers/openstack" -msgstr "" -"https://github.com/pkgcloud/pkgcloud/tree/master/docs/providers/openstack" - -msgid "https://jclouds.apache.org/guides/openstack/" -msgstr "https://jclouds.apache.org/guides/openstack/" - -msgid "" -"https://libcloud.readthedocs.org/en/latest/compute/drivers/openstack.html" -msgstr "" -"https://libcloud.readthedocs.org/en/latest/compute/drivers/openstack.html" - -msgid "https://libcloud.readthedocs.org/en/latest/storage/api.html" -msgstr "https://libcloud.readthedocs.org/en/latest/storage/api.html" - -msgid "" -"https://superuser.openstack.org/articles/simple-auto-scaling-environment-" -"with-heat" -msgstr "" -"https://superuser.openstack.org/articles/simple-auto-scaling-environment-" -"with-heat" - -msgid "" -"https://superuser.openstack.org/articles/understanding-openstack-heat-auto-" -"scaling" -msgstr "" -"https://superuser.openstack.org/articles/understanding-openstack-heat-auto-" -"scaling" - -msgid "https://www.nuget.org/packages/openstack.net" -msgstr "https://www.nuget.org/packages/openstack.net" - -msgid "internal worker traffic" -msgstr "interner Worker-Verkehr" - -msgid "" -"jClouds supports the OpenStack Networking API, but section has not yet been " -"completed. Please see `this `_ in the meantime." -msgstr "" -"jClouds unterstützt die OpenStack Networking API, aber der Bereich ist noch " -"nicht abgeschlossen. Bitte sehen Sie `_ in der Zwischenzeit." - -msgid "libcloud does not currently support OpenStack Orchestration." -msgstr "libcloud unterstützt derzeit keine OpenStack Orchestrierung." - -msgid "" -"libcloud support added 0.14: https://developer.rackspace.com/blog/libcloud-0-" -"dot-14-released/" -msgstr "" -"libcloud support hinzugefügt 0.14: https://developer.rackspace.com/blog/" -"libcloud-0-dot-14-released/" - -msgid "node.js" -msgstr "node.js" - -msgid "password" -msgstr "Passwort" - -msgid "project ID or name (projects are also known as tenants)" -msgstr "Projekt-ID oder Name (Projekte sind auch als Tenant bekannt)" - -msgid "public-facing web traffic" -msgstr "öffentlich zugänglichen Webverkehr" - -msgid "sqlite:////tmp/sqlite.db" -msgstr "sqlite:////tmp/sqlite.db" - -msgid "the .NET SDK does not currently support OpenStack Orchestration." -msgstr "Das .NET SDK unterstützt derzeit keine OpenStack Orchestrierung." - -msgid "user name" -msgstr "Benutzername" diff --git a/firstapp/source/locale/en_GB/LC_MESSAGES/firstapp.po b/firstapp/source/locale/en_GB/LC_MESSAGES/firstapp.po deleted file mode 100644 index 33bea5250..000000000 --- a/firstapp/source/locale/en_GB/LC_MESSAGES/firstapp.po +++ /dev/null @@ -1,4336 +0,0 @@ -# OpenStack Infra , 2015. #zanata -# Rob Cresswell , 2015. #zanata -# Andi Chandler , 2017. #zanata -# Andi Chandler , 2018. #zanata -msgid "" -msgstr "" -"Project-Id-Version: OpenStack First Application 2013.2.1.dev4245\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-04-23 14:55+0000\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2018-11-18 10:59+0000\n" -"Last-Translator: Andi Chandler \n" -"Language: en_GB\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" -"X-Generator: Zanata 4.3.3\n" -"Language-Team: English (United Kingdom)\n" - -msgid "**GettingStarted.java:**" -msgstr "**GettingStarted.java:**" - -msgid "**Remove the stack**" -msgstr "**Remove the stack**" - -msgid "**Show information about the stack**" -msgstr "**Show information about the stack**" - -msgid "**Stack create**" -msgstr "**Stack create**" - -msgid "**pom.xml:**" -msgstr "**pom.xml:**" - -msgid ".NET Framework" -msgstr ".NET Framework" - -msgid ":code:`-d`" -msgstr ":code:`-d`" - -msgid ":code:`-e`" -msgstr ":code:`-e`" - -msgid ":code:`-i`" -msgstr ":code:`-i`" - -msgid ":code:`-m`" -msgstr ":code:`-m`" - -msgid ":code:`-r`" -msgstr ":code:`-r`" - -msgid "" -":code:`api` (enable and start the API service), :code:`worker` (enable and " -"start the worker service), and :code:`demo` (run the demo mode to request " -"random fractals)." -msgstr "" -":code:`api` (enable and start the API service), :code:`worker` (enable and " -"start the worker service), and :code:`demo` (run the demo mode to request " -"random fractals)." - -msgid "" -":code:`ceilometer_sample_query`: shows the samples used to build the " -"statistics." -msgstr "" -":code:`ceilometer_sample_query`: shows the samples used to build the " -"statistics." - -msgid "" -":code:`ceilometer_statistics_query`: shows the statistics used to trigger " -"the alarms." -msgstr "" -":code:`ceilometer_statistics_query`: shows the statistics used to trigger " -"the alarms." - -msgid "" -":code:`detach_volume` and :code:`destroy_volume` take a volume object, not a " -"name." -msgstr "" -":code:`detach_volume` and :code:`destroy_volume` take a volume object, not a " -"name." - -msgid "" -":code:`ex_create_security_group_rule()` takes ranges of ports as input. This " -"is why ports 80 and 22 are passed twice." -msgstr "" -":code:`ex_create_security_group_rule()` takes ranges of ports as input. This " -"is why ports 80 and 22 are passed twice." - -msgid "" -":code:`messaging` (install RabbitMQ) and :code:`faafo` (install the Faafo " -"app)." -msgstr "" -":code:`messaging` (install RabbitMQ) and :code:`faafo` (install the Faafo " -"app)." - -msgid "" -":code:`scale__workers_up_url`: A post to this url will add worker instances." -msgstr "" -":code:`scale__workers_up_url`: A post to this URL will add worker instances." - -msgid "" -":code:`scale_workers_down_url`: A post to this url will remove worker " -"instances." -msgstr "" -":code:`scale_workers_down_url`: A post to this URL will remove worker " -"instances." - -msgid ":doc:`/advice`: Get advice about operations." -msgstr ":doc:`/advice`: Get advice about operations." - -msgid "" -":doc:`/block_storage`: Migrate the database to block storage, or use the " -"database-as-a-service component." -msgstr "" -":doc:`/block_storage`: Migrate the database to block storage, or use the " -"database-as-a-service component." - -msgid "" -":doc:`/craziness`: Learn some crazy things that you might not think to do ;)" -msgstr "" -":doc:`/craziness`: Learn some crazy things that you might not think to do ;)" - -msgid "" -":doc:`/durability`: Learn how to use Object Storage to make your application " -"durable." -msgstr "" -":doc:`/durability`: Learn how to use Object Storage to make your application " -"durable." - -msgid "" -":doc:`/durability`: Learn how to use Object Storage to make your application " -"more durable." -msgstr "" -":doc:`/durability`: Learn how to use Object Storage to make your application " -"more durable." - -msgid ":doc:`/networking`: Learn about complex networking." -msgstr ":doc:`/networking`: Learn about complex networking." - -msgid ":doc:`/orchestration`: Automatically orchestrate your application." -msgstr ":doc:`/orchestration`: Automatically orchestrate your application." - -msgid ":doc:`/scaling_out`: Learn how to scale your application." -msgstr ":doc:`/scaling_out`: Learn how to scale your application." - -msgid "" -"A .NET-based library. Use it to write C++ or C# code for Microsoft " -"applications." -msgstr "" -"A .NET-based library. Use it to write C++ or C# code for Microsoft " -"applications." - -msgid "" -"A Java-based library that the Apache Foundation manages. Use it to work with " -"multiple cloud types." -msgstr "" -"A Java-based library that the Apache Foundation manages. Use it to work with " -"multiple cloud types." - -msgid "A Node.js-based SDK. Use it work with multiple clouds." -msgstr "A Node.js-based SDK. Use it work with multiple clouds." - -msgid "" -"A PHP-based library. Use it to write PHP code that works with OpenStack " -"clouds." -msgstr "" -"A PHP-based library. Use it to write PHP code that works with OpenStack " -"clouds." - -msgid "" -"A Python-based library developed by OpenStack Infra team. Use it to operate " -"multiple OpenStack clouds." -msgstr "" -"A Python-based library developed by OpenStack Infra team. Use it to operate " -"multiple OpenStack clouds." - -msgid "" -"A Python-based library that the Apache Foundation manages. Use it to work " -"with multiple cloud types." -msgstr "" -"A Python-based library that the Apache Foundation manages. Use it to work " -"with multiple cloud types." - -msgid "A Ruby-based SDK. Use it to work with multiple clouds." -msgstr "A Ruby-based SDK. Use it to work with multiple clouds." - -msgid "A floating IP helper function" -msgstr "A floating IP helper function" - -msgid "A general overview" -msgstr "A general overview" - -msgid "" -"A go-based SDK. Use it to write Golang code that works with OpenStack clouds." -msgstr "" -"A go-based SDK. Use it to write Golang code that works with OpenStack clouds." - -msgid "" -"A key pair. To access your instance, you must import an SSH public key into " -"OpenStack to create a key pair. OpenStack installs this key pair on the new " -"instance. Typically, your public key is written to :code:`.ssh/id_rsa.pub`. " -"If you do not have an SSH public key file, follow `these instructions " -"`_ first. We will " -"cover these instructions in depth in :doc:`/introduction`." -msgstr "" -"A key pair. To access your instance, you must import an SSH public key into " -"OpenStack to create a key pair. OpenStack installs this key pair on the new " -"instance. Typically, your public key is written to :code:`.ssh/id_rsa.pub`. " -"If you do not have an SSH public key file, follow `these instructions " -"`_ first. We will " -"cover these instructions in depth in :doc:`/introduction`." - -msgid "" -"A simple solution is to give half of your friends one address and half the " -"other, but that solution is not sustainable. Instead, you can use a `DNS " -"round robin `_ to do that " -"automatically. However, OpenStack networking can provide Load Balancing as a " -"Service, which :doc:`/networking` explains." -msgstr "" -"A simple solution is to give half of your friends one address and half the " -"other, but that solution is not sustainable. Instead, you can use a `DNS " -"round robin `_ to do that " -"automatically. However, OpenStack networking can provide Load Balancing as a " -"Service, which :doc:`/networking` explains." - -msgid "" -"API load is a slightly different problem than the previous one regarding " -"capacity to work. We can simulate many requests to the API, as follows:" -msgstr "" -"API load is a slightly different problem than the previous one regarding " -"capacity to work. We can simulate many requests to the API, as follows:" - -msgid "API traffic" -msgstr "API traffic" - -msgid "Access the application" -msgstr "Access the application" - -msgid "Add metadata to objects" -msgstr "Add metadata to objects" - -msgid "Add the option Networks and send its id to attach the instance to:" -msgstr "Add the option Networks and send its id to attach the instance to:" - -msgid "" -"Add the parameter network and send its name or id to attach the instance to:" -msgstr "" -"Add the parameter network and send its name or id to attach the instance to:" - -msgid "" -"Adding this capacity enables you to deal with a higher number of requests " -"for fractals. As soon as these worker instances start, they begin checking " -"the message queue for requests, reducing the overall backlog like a new " -"register opening in the supermarket." -msgstr "" -"Adding this capacity enables you to deal with a higher number of requests " -"for fractals. As soon as these worker instances start, they begin checking " -"the message queue for requests, reducing the overall backlog like a new " -"checkout opening in the supermarket." - -msgid "Advice for developers new to operations" -msgstr "Advice for developers new to operations" - -msgid "" -"After separating the Fractal worker nodes into their own networks, the next " -"logical step is to move the Fractal API service to a load balancer, so that " -"multiple API workers can handle requests. By using a load balancer, the API " -"service can be scaled out in a similar fashion to the worker nodes." -msgstr "" -"After separating the Fractal worker nodes into their own networks, the next " -"logical step is to move the Fractal API service to a load balancer, so that " -"multiple API workers can handle requests. By using a load balancer, the API " -"service can be scaled out in a similar fashion to the worker nodes." - -msgid "" -"After the instance is created, cloud-init downloads and runs a script " -"called :code:`install.sh`. This script installs the Fractals application. " -"Cloud-init can consume bash scripts and a number of different types of data. " -"You can even provide multiple types of data. You can find more information " -"about cloud-init in the `official documentation `_." -msgstr "" -"After the instance is created, cloud-init downloads and runs a script " -"called :code:`install.sh`. This script installs the Fractals application. " -"Cloud-init can consume bash scripts and a number of different types of data. " -"You can even provide multiple types of data. You can find more information " -"about cloud-init in the `official documentation `_." - -msgid "Allocate floating ips and assign them to the web server nodes." -msgstr "Allocate Floating IPs and assign them to the web server nodes." - -msgid "Allocate the floating IP address:" -msgstr "Allocate the floating IP address:" - -msgid "" -"Allocating a floating IP address to an instance does not change the IP " -"address of the instance, it causes OpenStack to establish the network " -"translation rules to allow an *additional* IP address." -msgstr "" -"Allocating a floating IP address to an instance does not change the IP " -"address of the instance, it causes OpenStack to establish the network " -"translation rules to allow an *additional* IP address." - -msgid "" -"An often-cited reason for designing applications by using cloud patterns is " -"the ability to **scale out**. That is: to add additional resources, as " -"required. Contrast this strategy to the previous one of increasing capacity " -"by scaling up the size of existing resources. To scale out, you must:" -msgstr "" -"An often-cited reason for designing applications by using cloud patterns is " -"the ability to **scale out**. That is: to add additional resources, as " -"required. Contrast this strategy to the previous one of increasing capacity " -"by scaling up the size of existing resources. To scale out, you must:" - -msgid "And as before, the stack takes a few minutes to build!" -msgstr "And as before, the stack takes a few minutes to build!" - -msgid "And confirm it is in place:" -msgstr "And confirm it is in place:" - -msgid "" -"Another approach is to create a 'gold' image, which pre-installs your " -"application and its dependencies. A 'gold' image enables faster boot times " -"and more control over what is on the instance. However, if you use 'gold' " -"images, you must have a process in place to ensure that these images do not " -"fall behind on security updates." -msgstr "" -"Another approach is to create a 'gold' image, which pre-installs your " -"application and its dependencies. A 'gold' image enables faster boot times " -"and more control over what is on the instance. However, if you use 'gold' " -"images, you must have a process in place to ensure that these images do not " -"fall behind on security updates." - -msgid "" -"Anyone with a programming background can easily read the code in this guide. " -"Although this guide focuses on a particular SDK, you can use other languages " -"and toolkits with the OpenStack cloud:" -msgstr "" -"Anyone with a programming background can easily read the code in this guide. " -"Although this guide focuses on a particular SDK, you can use other languages " -"and toolkits with the OpenStack cloud:" - -msgid "Appendix" -msgstr "Appendix" - -msgid "Application deployment" -msgstr "Application deployment" - -msgid "" -"Application developers and operators who use phoenix servers have access to " -"systems that are built from a known baseline, such as a specific operating " -"system version, and to tooling that automatically builds, installs, and " -"configures a system." -msgstr "" -"Application developers and operators who use phoenix servers have access to " -"systems that are built from a known baseline, such as a specific operating " -"system version, and to tooling that automatically builds, installs, and " -"configures a system." - -msgid "Architect your application to make use of additional resources." -msgstr "Architect your application to make use of additional resources." - -msgid "" -"Armed with a security group, image, and flavor size, you can add multiple " -"API services:" -msgstr "" -"Armed with a security group, image, and flavour size, you can add multiple " -"API services:" - -msgid "As before, pass in configuration settings as parameters." -msgstr "As before, pass in configuration settings as parameters." - -msgid "" -"As in traditional IT, cloud instances are accessed through IP addresses that " -"OpenStack assigns. How this is actually done depends on the networking setup " -"for your cloud. In some cases, you will simply get an Internet rout-able IP " -"address assigned directly to your instance." -msgstr "" -"As in traditional IT, cloud instances are accessed through IP addresses that " -"OpenStack assigns. How this is actually done depends on the networking setup " -"for your cloud. In some cases, you will simply get an Internet routable IP " -"address assigned directly to your instance." - -msgid "" -"As mentioned in :doc:`/introduction`, the generated fractal images are saved " -"on the local file system of the API service instances. Because you have " -"multiple API instances up and running, the fractal images are spread across " -"multiple API services, which causes a number of :code:`IOError: [Errno 2] No " -"such file or directory` exceptions when trying to download a fractal image " -"from an API service instance that does not have the fractal image on its " -"local file system." -msgstr "" -"As mentioned in :doc:`/introduction`, the generated fractal images are saved " -"on the local file system of the API service instances. Because you have " -"multiple API instances up and running, the fractal images are spread across " -"multiple API services, which causes a number of :code:`IOError: [Errno 2] No " -"such file or directory` exceptions when trying to download a fractal image " -"from an API service instance that does not have the fractal image on its " -"local file system." - -msgid "" -"As with classical infrastructure, failures of the underpinning cloud " -"infrastructure (hardware, networks, and software) are unavoidable. When you " -"design for the cloud, it is crucial that your application is designed for an " -"environment where failures can happen at any moment. This may sound like a " -"liability, but it is not; by designing your application with a high degree " -"of fault tolerance, you also make it resilient, and more adaptable, in the " -"face of change." -msgstr "" -"As with classical infrastructure, failures of the underpinning cloud " -"infrastructure (hardware, networks, and software) are unavoidable. When you " -"design for the cloud, it is crucial that your application is designed for an " -"environment where failures can happen at any moment. This may sound like a " -"liability, but it is not; by designing your application with a high degree " -"of fault tolerance, you also make it resilient, and more adaptable, in the " -"face of change." - -msgid "" -"As you can see from the parameters passed to the installation script, you " -"define this instance as the worker instance. But, you also pass the address " -"of the API instance and the message queue so the worker can pick up " -"requests. The Fractals application installation script accepts several " -"parameters." -msgstr "" -"As you can see from the parameters passed to the installation script, you " -"define this instance as the worker instance. But, you also pass the address " -"of the API instance and the message queue so the worker can pick up " -"requests. The Fractals application installation script accepts several " -"parameters." - -msgid "" -"As you change the topology of your applications, you must update or create " -"security groups. Here, you re-create the required security groups." -msgstr "" -"As you change the topology of your applications, you must update or create " -"security groups. Here, you re-create the required security groups." - -msgid "Associate a floating IP for external connectivity" -msgstr "Associate a floating IP for external connectivity" - -msgid "" -"At the end of this section, you make some slight changes to the networking " -"topology by using the OpenStack Networking API to create the 10.0.1.0/24 " -"network to which the worker nodes attach. You use the 10.0.3.0/24 API " -"network to attach the Fractal API servers. Web server instances have their " -"own 10.0.2.0/24 network, which is accessible by fractal aficionados " -"worldwide, by allocating floating IPs from the public network." -msgstr "" -"At the end of this section, you make some slight changes to the networking " -"topology by using the OpenStack Networking API to create the 10.0.1.0/24 " -"network to which the worker nodes attach. You use the 10.0.3.0/24 API " -"network to attach the Fractal API servers. Web server instances have their " -"own 10.0.2.0/24 network, which is accessible by fractal aficionados " -"worldwide, by allocating floating IPs from the public network." - -msgid "Attach the floating IP address to the instance:" -msgstr "Attach the floating IP address to the instance:" - -msgid "Automation" -msgstr "Automation" - -msgid "" -"Back up the Fractals app images, which are currently stored inside the " -"database, on Object Storage." -msgstr "" -"Back up the Fractals app images, which are currently stored inside the " -"database, on Object Storage." - -msgid "Back up the Fractals from the database on the Object Storage" -msgstr "Back up the Fractals from the database on the Object Storage" - -msgid "Backups" -msgstr "Backups" - -msgid "Basics" -msgstr "Basics" - -msgid "" -"Because all service endpoints use the Identity Service for authentication " -"and authorization, place the following code in the 'void Main()' entry-point " -"function." -msgstr "" -"Because all service endpoints use the Identity Service for authentication " -"and authorisation, place the following code in the 'void Main()' entry-point " -"function." - -msgid "" -"Because the SDKs do not fully support the OpenStack Networking API, this " -"section uses the command-line clients." -msgstr "" -"Because the SDKs do not fully support the OpenStack Networking API, this " -"section uses the command-line clients." - -msgid "" -"Because the local file system is ephemeral storage, the fractal images are " -"lost along with the instance when the instance is terminated. Block-based " -"storage, which the :doc:`/block_storage` section discusses, avoids that " -"problem, but like local file systems, it requires administration to ensure " -"that it does not fill up, and immediate attention if disks fail." -msgstr "" -"Because the local file system is ephemeral storage, the fractal images are " -"lost along with the instance when the instance is terminated. Block-based " -"storage, which the :doc:`/block_storage` section discusses, avoids that " -"problem, but like local file systems, it requires administration to ensure " -"that it does not fill up, and immediate attention if disks fail." - -msgid "" -"Because the tutorial reuses the :code:`conn` object, make sure that you " -"always have one handy." -msgstr "" -"Because the tutorial reuses the :code:`conn` object, make sure that you " -"always have one handy." - -msgid "Before proceeding, install the latest version of shade." -msgstr "Before proceeding, install the latest version of shade." - -msgid "Before you continue, you must do one more thing." -msgstr "Before you continue, you must do one more thing." - -msgid "" -"Before you run this class, confirm that you have configured it for your " -"cloud and the instance running the Fractals application." -msgstr "" -"Before you run this class, confirm that you have configured it for your " -"cloud and the instance running the Fractals application." - -msgid "" -"Before you run this script, confirm that you have set your authentication " -"information, the flavor ID, and image ID." -msgstr "" -"Before you run this script, confirm that you have set your authentication " -"information, the flavour ID, and image ID." - -msgid "" -"Before you scale out your application services, like the API service or the " -"workers, you must add a central database and an :code:`app-services` " -"messaging instance. The database and messaging queue will be used to track " -"the state of fractals and to coordinate the communication between the " -"services." -msgstr "" -"Before you scale out your application services, like the API service or the " -"workers, you must add a central database and an :code:`app-services` " -"messaging instance. The database and messaging queue will be used to track " -"the state of fractals and to coordinate the communication between the " -"services." - -msgid "Block Storage" -msgstr "Block Storage" - -msgid "Boot and configure an instance" -msgstr "Boot and configure an instance" - -msgid "Booting a worker" -msgstr "Booting a worker" - -msgid "Bootstrap your network" -msgstr "Bootstrap your network" - -msgid "" -"By default, data in OpenStack instances is stored on 'ephemeral' disks. " -"These disks remain with the instance throughout its lifetime. When you " -"terminate the instance, that storage and all the data stored on it " -"disappears. Ephemeral storage is allocated to a single instance and cannot " -"be moved to another instance." -msgstr "" -"By default, data in OpenStack instances is stored on 'ephemeral' disks. " -"These disks remain with the instance throughout its lifetime. When you " -"terminate the instance, that storage and all the data stored on it " -"disappears. Ephemeral storage is allocated to a single instance and cannot " -"be moved to another instance." - -msgid "" -"CI/CD means that you always test your application and make frequent " -"deployments to production." -msgstr "" -"CI/CD means that you always test your application and make frequent " -"deployments to production." - -msgid "" -"Call the :code:`faafo` command-line interface to request the generation of " -"five large fractals." -msgstr "" -"Call the :code:`faafo` command-line interface to request the generation of " -"five large fractals." - -msgid "" -"Change the API code, such as \"list fractals,\" to query Object Storage to " -"get the metadata." -msgstr "" -"Change the API code, such as \"list fractals,\" to query Object Storage to " -"get the metadata." - -msgid "" -"Change the Fractal upload code to store metadata with the object in Object " -"Storage." -msgstr "" -"Change the Fractal upload code to store metadata with the object in Object " -"Storage." - -msgid "" -"Check to see whether the API service process is running like expected. You " -"can find the logs for the API service in the directory :file:`/var/log/" -"supervisor/`." -msgstr "" -"Check to see whether the API service process is running like expected. You " -"can find the logs for the API service in the directory :file:`/var/log/" -"supervisor/`." - -msgid "" -"Choose an image and flavor for your instance. You need about 1GB RAM, 1 CPU, " -"and a 1GB disk. This example uses the Ubuntu image with a small flavor, " -"which is a safe choice. In subsequent tutorial sections in this guide, you " -"must change the image and flavor IDs to correspond to the image and flavor " -"that you choose." -msgstr "" -"Choose an image and flavour for your instance. You need about 1GB RAM, 1 " -"CPU, and a 1GB disk. This example uses the Ubuntu image with a small " -"flavour, which is a safe choice. In subsequent tutorial sections in this " -"guide, you must change the image and flavour IDs to correspond to the image " -"and flavour that you choose." - -msgid "Choose your OpenStack SDK" -msgstr "Choose your OpenStack SDK" - -msgid "Cloud application architecture principles" -msgstr "Cloud application architecture principles" - -msgid "" -"Cloud applications often use many small instances rather than a few large " -"instances. Provided that an application is sufficiently modular, you can " -"easily distribute micro-services across as many instances as required. This " -"architecture enables an application to grow past the limit imposed by the " -"maximum size of an instance. It is like trying to move a large number of " -"people from one place to another; there is only so many people you can put " -"on the largest bus, but you can use an unlimited number of buses or small " -"cars, which provide just the capacity you need - and no more." -msgstr "" -"Cloud applications often use many small instances rather than a few large " -"instances. Provided that an application is sufficiently modular, you can " -"easily distribute micro-services across as many instances as required. This " -"architecture enables an application to grow past the limit imposed by the " -"maximum size of an instance. It is like trying to move a large number of " -"people from one place to another; there is only so many people you can put " -"on the largest bus, but you can use an unlimited number of buses or small " -"cars, which provide just the capacity you need - and no more." - -msgid "" -"Cloud applications typically share several design principles. These " -"principles influenced the design of the Fractals application." -msgstr "" -"Cloud applications typically share several design principles. These " -"principles influenced the design of the Fractals application." - -msgid "" -"Cloud resources, such as running instances that you no longer use, can cost " -"money. To avoid unexpected expenses, destroy cloud resources." -msgstr "" -"Cloud resources, such as running instances that you no longer use, can cost " -"money. To avoid unexpected expenses, destroy cloud resources." - -msgid "Complete code sample" -msgstr "Complete code sample" - -msgid "Configuration management" -msgstr "Configuration management" - -msgid "" -"Configuration management tools, such as Ansible, Chef, and Puppet, enable " -"you to describe exactly what to install and configure on an instance. Using " -"these descriptions, these tools implement the changes that are required to " -"get to the desired state." -msgstr "" -"Configuration management tools, such as Ansible, Chef, and Puppet, enable " -"you to describe exactly what to install and configure on an instance. Using " -"these descriptions, these tools implement the changes that are required to " -"get to the desired state." - -msgid "Configure the Fractals app to use Object Storage" -msgstr "Configure the Fractals app to use Object Storage" - -msgid "Confirm that the stack created two alarms:" -msgstr "Confirm that the stack created two alarms:" - -msgid "Confirm that they were added:" -msgstr "Confirm that they were added:" - -msgid "" -"Confirm that we have a public network by listing the networks our tenant has " -"access to. The public network does not have to be named public - it could be " -"'external', 'net04_ext' or something else - the important thing is it exists " -"and can be used to reach the Internet." -msgstr "" -"Confirm that we have a public network by listing the networks our tenant has " -"access to. The public network does not have to be named public - it could be " -"'external', 'net04_ext' or something else - the important thing is it exists " -"and can be used to reach the Internet." - -msgid "Connect to the API endpoint:" -msgstr "Connect to the API endpoint:" - -msgid "Connecting to the Internet" -msgstr "Connecting to the Internet" - -msgid "Contents" -msgstr "Contents" - -msgid "Create a network and subnet for the web server nodes." -msgstr "Create a network and subnet for the web server nodes." - -msgid "" -"Create a network and subnet for the worker nodes. This is the private data " -"network." -msgstr "" -"Create a network and subnet for the worker nodes. This is the private data " -"network." - -msgid "Create a router for the private data network." -msgstr "Create a router for the private data network." - -msgid "" -"Create a volume object by using the unique identifier (UUID) for the volume. " -"Then, use the server object from the previous code snippet to attach the " -"volume to it at :code:`/dev/vdb`:" -msgstr "" -"Create a volume object by using the unique identifier (UUID) for the volume. " -"Then, use the server object from the previous code snippet to attach the " -"volume to it at :code:`/dev/vdb`:" - -msgid "" -"Create and delete compute resources. These resources are virtual machine " -"instances where the Fractals application runs." -msgstr "" -"Create and delete compute resources. These resources are virtual machine " -"instances where the Fractals application runs." - -msgid "Create more API service requests" -msgstr "Create more API service requests" - -msgid "Create more tasks" -msgstr "Create more tasks" - -msgid "Create networks" -msgstr "Create networks" - -msgid "Create the instance." -msgstr "Create the instance." - -msgid "" -"Currently, you cannot directly store generated images in OpenStack Object " -"Storage. Please revisit this section again in the future." -msgstr "" -"Currently, you cannot directly store generated images in OpenStack Object " -"Storage. Please revisit this section again in the future." - -msgid "Customize networking for better performance and segregation." -msgstr "Customise networking for better performance and segregation." - -msgid "" -"Define a short function to locate unused or allocate floating IPs. This " -"saves a few lines of code and prevents you from reaching your floating IP " -"quota too quickly." -msgstr "" -"Define a short function to locate unused or allocate floating IPs. This " -"saves a few lines of code and prevents you from reaching your floating IP " -"quota too quickly." - -msgid "Delete containers" -msgstr "Delete containers" - -msgid "Deploy the application to a new instance" -msgstr "Deploy the application to a new instance" - -msgid "" -"Deploying application data and configuration to the instance can take some " -"time. Consider enjoying a cup of coffee while you wait. After the " -"application deploys, you can use your preferred browser to visit the awesome " -"graphic interface at the following link." -msgstr "" -"Deploying application data and configuration to the instance can take some " -"time. Consider enjoying a cup of coffee while you wait. After the " -"application deploys, you can use your preferred browser to visit the awesome " -"graphic interface at the following link." - -msgid "" -"Deploying applications in a cloud environment can be very different from " -"deploying them in a traditional IT environment. This guide teaches you how " -"to deploy applications on OpenStack and some best practices for cloud " -"application development." -msgstr "" -"Deploying applications in a cloud environment can be very different from " -"deploying them in a traditional IT environment. This guide teaches you how " -"to deploy applications on OpenStack and some best practices for cloud " -"application development." - -msgid "Description" -msgstr "Description" - -msgid "Destroy an instance" -msgstr "Destroy an instance" - -msgid "" -"Do not worry if these concepts are not yet completely clear. In :doc:`/" -"introduction`, we explore these concepts in more detail." -msgstr "" -"Do not worry if these concepts are not yet completely clear. In :doc:`/" -"introduction`, we explore these concepts in more detail." - -msgid "Enable/start something" -msgstr "Enable/start something" - -msgid "" -"Ensure you have an :file:`openrc.sh` file, source it, and validate that your " -"trove client works:" -msgstr "" -"Ensure you have an :file:`openrc.sh` file, source it, and validate that your " -"trove client works:" - -msgid "" -"Ensure you have an openrc.sh file, source it, and then check that your " -"openstack client works: ::" -msgstr "" -"Ensure you have an openrc.sh file, source it, and then check that your " -"openstack client works: ::" - -msgid "" -"Even with a key in place, however, you must have the appropriate security " -"group rules in place to access your instance." -msgstr "" -"Even with a key in place, however, you must have the appropriate security " -"group rules in place to access your instance." - -msgid "Example" -msgstr "Example" - -msgid "Explore and apply advanced OpenStack cloud features." -msgstr "Explore and apply advanced OpenStack cloud features." - -msgid "Extra features" -msgstr "Extra features" - -msgid "Extra security groups" -msgstr "Extra security groups" - -msgid "Extras" -msgstr "Extras" - -msgid "Fail fast" -msgstr "Fail fast" - -msgid "Fault tolerance" -msgstr "Fault tolerance" - -msgid "Fault tolerance is essential to the cloud-based application." -msgstr "Fault tolerance is essential to the cloud-based application." - -msgid "Final result" -msgstr "Final result" - -msgid "Finally, clean up by deleting the test object:" -msgstr "Finally, clean up by deleting the test object:" - -msgid "" -"Finally, start the stopped MySQL database service and validate that " -"everything works as expected." -msgstr "" -"Finally, start the stopped MySQL database service and validate that " -"everything works as expected." - -msgid "First check for an unused floating IP." -msgstr "First check for an unused floating IP." - -msgid "" -"First provide the appropriate identity, credentials and authorization URL " -"for your project. Then get an instance of the Nova API interface." -msgstr "" -"First provide the appropriate identity, credentials and authorisation URL " -"for your project. Then get an instance of the Nova API interface." - -msgid "First, learn how to connect to the Object Storage endpoint:" -msgstr "First, learn how to connect to the Object Storage endpoint:" - -msgid "" -"First, tell the connection to get a specified image by using the ID of the " -"image that you picked in the previous section:" -msgstr "" -"First, tell the connection to get a specified image by using the ID of the " -"image that you picked in the previous section:" - -msgid "Flavors and images" -msgstr "Flavours and images" - -msgid "" -"For a list of available SDKs, see `Software Development Kits `_." -msgstr "" -"For a list of available SDKs, see `Software Development Kits `_." - -msgid "" -"For efficiency, most Object Storage installations treat large objects, :code:" -"`> 5GB`, differently than smaller objects." -msgstr "" -"For efficiency, most Object Storage installations treat large objects, :code:" -"`> 5GB`, differently than smaller objects." - -msgid "" -"For example, you might use the Orchestration API to create two compute " -"instances by creating a stack and by passing a template to the Orchestration " -"API. That template contains two resources with the :code:`type` attribute " -"set to :code:`OS::Nova::Server`." -msgstr "" -"For example, you might use the Orchestration API to create two compute " -"instances by creating a stack and by passing a template to the Orchestration " -"API. That template contains two resources with the :code:`type` attribute " -"set to :code:`OS::Nova::Server`." - -msgid "For example:" -msgstr "For example:" - -msgid "" -"For information about supported features and how to work with an existing " -"database service installation, see `Database as a Service in OpenStack " -"`_." -msgstr "" -"For information about supported features and how to work with an existing " -"database service installation, see `Database as a Service in OpenStack " -"`_." - -msgid "" -"For information about these and other calls, see `libcloud documentation " -"`_." -msgstr "" -"For information about these and other calls, see `libcloud documentation " -"`_." - -msgid "" -"For more information about hybrid clouds, see the `Hybrid Cloud chapter " -"`_ in the Architecture " -"Design Guide." -msgstr "" -"For more information about hybrid clouds, see the `Hybrid Cloud chapter " -"`_ in the Architecture " -"Design Guide." - -msgid "" -"For more information about multi-site clouds, see the `Multi-Site chapter " -"`_ in the " -"Architecture Design Guide." -msgstr "" -"For more information about multi-site clouds, see the `Multi-Site chapter " -"`_ in the " -"Architecture Design Guide." - -msgid "" -"For performance reasons, it makes sense to have a network for each tier, so " -"that traffic from one tier does not \"crowd out\" other types of traffic and " -"cause the application to fail. In addition, having separate networks makes " -"controlling access to parts of the application easier to manage, improving " -"the overall security of the application." -msgstr "" -"For performance reasons, it makes sense to have a network for each tier, so " -"that traffic from one tier does not \"crowd out\" other types of traffic and " -"cause the application to fail. In addition, having separate networks makes " -"controlling access to parts of the application easier to manage, improving " -"the overall security of the application." - -msgid "" -"For this example, we take a floating IP pool from the 'public' network, " -"which is your external network." -msgstr "" -"For this example, we take a floating IP pool from the 'public' network, " -"which is your external network." - -msgid "Fractals application architecture" -msgstr "Fractals application architecture" - -msgid "" -"From here, go to :doc:`/scaling_out` to learn how to further scale your " -"application. Or, try one of these steps in the tutorial:" -msgstr "" -"From here, go to :doc:`/scaling_out` to learn how to further scale your " -"application. Or, try one of these steps in the tutorial:" - -msgid "Generate load" -msgstr "Generate load" - -msgid "Get more information about the stack:" -msgstr "Get more information about the stack:" - -msgid "Getting started" -msgstr "Getting started" - -msgid "Go" -msgstr "Go" - -msgid "Go ahead and create two instances." -msgstr "Go ahead and create two instances." - -msgid "" -"Go ahead and delete the existing instances and security groups that you " -"created in previous sections. Remember, when instances in the cloud are no " -"longer working, remove them and re-create something new." -msgstr "" -"Go ahead and delete the existing instances and security groups that you " -"created in previous sections. Remember, when instances in the cloud are no " -"longer working, remove them and re-create something new." - -msgid "" -"Go ahead and test the fault tolerance. Start deleting workers and API " -"instances. As long as you have one of each, your application is fine. " -"However, be aware of one weak point. The database contains the fractals and " -"fractal metadata. If you lose that instance, the application stops. Future " -"sections will explain how to address this weak point." -msgstr "" -"Go ahead and test the fault tolerance. Start deleting workers and API " -"instances. As long as you have one of each, your application is fine. " -"However, be aware of one weak point. The database contains the fractals and " -"fractal metadata. If you lose that instance, the application stops. Future " -"sections will explain how to address this weak point." - -msgid "" -"Go to :doc:`/durability` to learn how to use Object Storage to solve this " -"problem in an elegant way. Or, you can proceed to one of these sections:" -msgstr "" -"Go to :doc:`/durability` to learn how to use Object Storage to solve this " -"problem in an elegant way. Or, you can proceed to one of these sections:" - -msgid "Going crazy" -msgstr "Going crazy" - -msgid "HOT templating language" -msgstr "HOT templating language" - -msgid "High availability" -msgstr "High availability" - -msgid "" -"How do you deploy your application? For example, do you pull the latest code " -"from a source control repository? Do you make packaged releases that update " -"infrequently? Do you perform haphazard tests in a development environment " -"and deploy only after major changes?" -msgstr "" -"How do you deploy your application? For example, do you pull the latest code " -"from a source control repository? Do you make packaged releases that update " -"infrequently? Do you perform haphazard tests in a development environment " -"and deploy only after major changes?" - -msgid "How the Fractals application interacts with OpenStack" -msgstr "How the Fractals application interacts with OpenStack" - -msgid "How you interact with OpenStack" -msgstr "How you interact with OpenStack" - -msgid "If a key pair of the given name is not found then one is generated." -msgstr "If a key pair of the given name is not found then one is generated." - -msgid "" -"If an application is meant to automatically scale up and down to meet " -"demand, it is not feasible have any manual steps in the process of deploying " -"any component of the application. Automation also decreases the time to " -"recovery for your application in the event of component failures, increasing " -"fault tolerance and resilience." -msgstr "" -"If an application is meant to automatically scale up and down to meet " -"demand, it is not feasible have any manual steps in the process of deploying " -"any component of the application. Automation also decreases the time to " -"recovery for your application in the event of component failures, increasing " -"fault tolerance and resilience." - -msgid "" -"If either alarm reports the :code:`insufficient data` state, the default " -"sampling period of the stack is probably too low for your cloud; ask your " -"support team for assistance. You can set the period through the :code:" -"`period` parameter of the stack to match your clouds requirements." -msgstr "" -"If either alarm reports the :code:`insufficient data` state, the default " -"sampling period of the stack is probably too low for your cloud; ask your " -"support team for assistance. You can set the period through the :code:" -"`period` parameter of the stack to match your clouds requirements." - -msgid "" -"If one application instance is compromised, all instances with the same " -"image and configuration will likely suffer the same vulnerability. The " -"safest path is to use configuration management to rebuild all instances." -msgstr "" -"If one application instance is compromised, all instances with the same " -"image and configuration will likely suffer the same vulnerability. The " -"safest path is to use configuration management to rebuild all instances." - -msgid "" -"If one is assigned, users can use this address to access the instance on " -"some OpenStack clouds." -msgstr "" -"If one is assigned, users can use this address to access the instance on " -"some OpenStack clouds." - -msgid "If one is assigned, users can use this address to access the instance." -msgstr "If one is assigned, users can use this address to access the instance." - -msgid "" -"If the image that you want is not available in your cloud, you can usually " -"upload one depending on the policy settings of your cloud. For information " -"about how to upload images, see `obtaining images `_." -msgstr "" -"If the image that you want is not available in your cloud, you can usually " -"upload one depending on the policy settings of your cloud. For information " -"about how to upload images, see `obtaining images `_." - -msgid "" -"If you are an advanced user, think about how you might remove the database " -"from the architecture and replace it with Object Storage metadata, and then " -"contribute these steps to :doc:`craziness`." -msgstr "" -"If you are an advanced user, think about how you might remove the database " -"from the architecture and replace it with Object Storage metadata, and then " -"contribute these steps to :doc:`craziness`." - -msgid "" -"If you are familiar with OpenStack but have not created a cloud application " -"in general or an OpenStack application in particular, this section teaches " -"you how to program with OpenStack components." -msgstr "" -"If you are familiar with OpenStack but have not created a cloud application " -"in general or an OpenStack application in particular, this section teaches " -"you how to program with OpenStack components." - -msgid "" -"If you check the load on the :code:`app-controller` API service instance, " -"you see that the instance is not doing well. On your single CPU flavor " -"instance, a load average greater than 1 means that the server is at capacity." -msgstr "" -"If you check the load on the :code:`app-controller` API service instance, " -"you see that the instance is not doing well. On your single CPU flavour " -"instance, a load average greater than 1 means that the server is at capacity." - -msgid "" -"If you check the load on the worker, you can see that the instance is not " -"doing well. On the single CPU flavor instance, a load average greater than 1 " -"means that the server is at capacity." -msgstr "" -"If you check the load on the worker, you can see that the instance is not " -"doing well. On the single CPU flavour instance, a load average greater than " -"1 means that the server is at capacity." - -msgid "" -"If you deploy your application on a regular basis, you can resolve outages " -"and make security updates without manual intervention. If an outage occurs, " -"you can provision more resources in another region. If you must patch " -"security holes, you can provision additional compute nodes that are built " -"with the updated software. Then, you can terminate vulnerable nodes and " -"automatically fail-over traffic to the new instances." -msgstr "" -"If you deploy your application on a regular basis, you can resolve outages " -"and make security updates without manual intervention. If an outage occurs, " -"you can provision more resources in another region. If you must patch " -"security holes, you can provision additional compute nodes that are built " -"with the updated software. Then, you can terminate vulnerable nodes and " -"automatically fail-over traffic to the new instances." - -msgid "" -"If you do not have a working application, follow the steps in :doc:" -"`introduction` to create one." -msgstr "" -"If you do not have a working application, follow the steps in :doc:" -"`introduction` to create one." - -msgid "" -"If you do not know Maven then the `Maven home site `_ is a good place to learn more." -msgstr "" -"If you do not know Maven then the `Maven home site `_ is a good place to learn more." - -msgid "" -"If you do not use floating IP addresses, substitute another IP address, as " -"appropriate." -msgstr "" -"If you do not use floating IP addresses, substitute another IP address, as " -"appropriate." - -msgid "" -"If you had a load balancer, you could distribute this load between the two " -"different API services. You have several options. The :doc:`networking` " -"section shows you one option." -msgstr "" -"If you had a load balancer, you could distribute this load between the two " -"different API services. You have several options. The :doc:`networking` " -"section shows you one option." - -msgid "" -"If you have no free floating IPs that have been allocated for your project, " -"first select a network which offer allocation of floating IPs. In this " -"example we use network which is called :code:`public`." -msgstr "" -"If you have no free floating IPs that have been allocated for your project, " -"first select a network which offer allocation of floating IPs. In this " -"example we use network which is called :code:`public`." - -msgid "" -"If you have no free floating IPs that have been previously allocated for " -"your project, first select a floating IP pool offered by your provider. In " -"this example, we have selected the first one and assume that it has " -"available IP addresses." -msgstr "" -"If you have no free floating IPs that have been previously allocated for " -"your project, first select a floating IP pool offered by your provider. In " -"this example, we have selected the first one and assume that it has " -"available IP addresses." - -msgid "" -"If you have no free floating IPs that have been previously allocated for " -"your project, then select a floating IP pool offered by your provider. In " -"this example, we have selected the first one and assume that it has " -"available IP addresses." -msgstr "" -"If you have no free floating IPs that have been previously allocated for " -"your project, then select a floating IP pool offered by your provider. In " -"this example, we have selected the first one and assume that it has " -"available IP addresses." - -msgid "If you list existing instances:" -msgstr "If you list existing instances:" - -msgid "If you list the instances again, the instance disappears." -msgstr "If you list the instances again, the instance disappears." - -msgid "" -"If you receive the :code:`libcloud.common.types.InvalidCredsError: 'Invalid " -"credentials with the provider'` exception when you run one of these API " -"calls, double-check your credentials." -msgstr "" -"If you receive the :code:`libcloud.common.types.InvalidCredsError: 'Invalid " -"credentials with the provider'` exception when you run one of these API " -"calls, double-check your credentials." - -msgid "" -"If you receive the exception :code:`openstack.exceptions.HttpException: " -"HttpException: 401 Client Error: Unauthorized,` while trying to run one of " -"the following API calls please double-check your credentials." -msgstr "" -"If you receive the exception :code:`openstack.exceptions.HttpException: " -"HttpException: 401 Client Error: Unauthorised,` while trying to run one of " -"the following API calls please double-check your credentials." - -msgid "" -"If you see an IOError, you may need to change ``~/.ssh/`` to ``/home/" -"{USERNAME}/.ssh/``, using an absolute path." -msgstr "" -"If you see an IOError, you may need to change ``~/.ssh/`` to ``/home/" -"{USERNAME}/.ssh/``, using an absolute path." - -msgid "" -"If you think about how you traditionally make what you store durable, you " -"quickly conclude that keeping multiple copies of your objects on separate " -"systems is a good way strategy. However, keeping track of those multiple " -"copies is difficult, and building that into an app requires complicated " -"logic." -msgstr "" -"If you think about how you traditionally make what you store durable, you " -"quickly conclude that keeping multiple copies of your objects on separate " -"systems is a good way strategy. However, keeping track of those multiple " -"copies is difficult, and building that into an app requires complicated " -"logic." - -msgid "" -"If you work with large objects, use the :code:`RegionScopedBlobStoreContext` " -"class family instead of the ones used so far." -msgstr "" -"If you work with large objects, use the :code:`RegionScopedBlobStoreContext` " -"class family instead of the ones used so far." - -msgid "" -"If you work with large objects, use the :code:`ex_multipart_upload_object` " -"call instead of the simpler :code:`upload_object` call. The call splits the " -"large object into chunks and creates a manifest so that the chunks can be " -"recombined on download. Change the :code:`chunk_size` parameter, in bytes, " -"to a value that your cloud can accept." -msgstr "" -"If you work with large objects, use the :code:`ex_multipart_upload_object` " -"call instead of the simpler :code:`upload_object` call. The call splits the " -"large object into chunks and creates a manifest so that the chunks can be " -"recombined on download. Change the :code:`chunk_size` parameter, in bytes, " -"to a value that your cloud can accept." - -msgid "" -"If your provider does not support regions, try a blank string ('') for the " -"`region_name`." -msgstr "" -"If your provider does not support regions, try a blank string ('') for the " -"`region_name`." - -msgid "" -"In a new Terminal window, SSH into the 'api' API instance. Use the key pair " -"name that you passed in as a parameter." -msgstr "" -"In a new Terminal window, SSH into the 'api' API instance. Use the key pair " -"name that you passed in as a parameter." - -msgid "" -"In addition to configuring backups, review your policies about what you back " -"up and how long to retain each backed up item." -msgstr "" -"In addition to configuring backups, review your policies about what you back " -"up and how long to retain each backed up item." - -msgid "" -"In addition to this kind of monitoring, you should consider availability " -"monitoring. Although your application might not care about a failed worker, " -"it should care about a failed database server." -msgstr "" -"In addition to this kind of monitoring, you should consider availability " -"monitoring. Although your application might not care about a failed worker, " -"it should care about a failed database server." - -msgid "" -"In cloud programming, it is very different. Rather than large, expensive " -"servers, you have virtual machines that are disposable; if something goes " -"wrong, you shut the server down and spin up a new one. There is still " -"operations staff, but rather than nursing individual servers back to health, " -"their job is to monitor the health of the overall system." -msgstr "" -"In cloud programming, it is very different. Rather than large, expensive " -"servers, you have virtual machines that are disposable; if something goes " -"wrong, you shut the server down and spin up a new one. There is still " -"operations staff, but rather than nursing individual servers back to health, " -"their job is to monitor the health of the overall system." - -msgid "" -"In cloud programming, there is a well-known analogy known as \"cattle vs pets" -"\". If you have not heard it before, it goes like this:" -msgstr "" -"In cloud programming, there is a well-known analogy known as \"cattle vs pets" -"\". If you have not heard it before, it goes like this:" - -msgid "" -"In earlier sections, the Fractal application used an installation script " -"into which the metadata API passed parameters to bootstrap the cluster. " -"`Etcd `_ is \"a distributed, consistent key-" -"value store for shared configuration and service discovery\" that you can " -"use to store configurations. You can write updated versions of the Fractal " -"worker component to connect to Etcd or use `Confd `_ to poll for changes from Etcd and write changes to " -"a configuration file on the local file system, which the Fractal worker can " -"use for configuration." -msgstr "" -"In earlier sections, the Fractal application used an installation script " -"into which the metadata API passed parameters to bootstrap the cluster. " -"`Etcd `_ is \"a distributed, consistent key-" -"value store for shared configuration and service discovery\" that you can " -"use to store configurations. You can write updated versions of the Fractal " -"worker component to connect to Etcd or use `Confd `_ to poll for changes from Etcd and write changes to " -"a configuration file on the local file system, which the Fractal worker can " -"use for configuration." - -msgid "" -"In openstacksdk parameter :code:`ex_userdata` is called :code:`user_data` " -"and parameter :code:`ex_keyname` is called :code:`key_name`." -msgstr "" -"In openstacksdk parameter :code:`ex_userdata` is called :code:`user_data` " -"and parameter :code:`ex_keyname` is called :code:`key_name`." - -msgid "" -"In previous chapters, all nodes that comprise the fractal application were " -"attached to the same network." -msgstr "" -"In previous chapters, all nodes that comprise the fractal application were " -"attached to the same network." - -msgid "" -"In previous sections, you used your SDK to programmatically interact with " -"OpenStack. In this section, you use the 'heat' command-line client to access " -"the Orchestration API directly through template files." -msgstr "" -"In previous sections, you used your SDK to programmatically interact with " -"OpenStack. In this section, you use the 'heat' command-line client to access " -"the Orchestration API directly through template files." - -msgid "" -"In the Terminal window where you run ceilometer, run :code:" -"`ceilometer_sample_query` to see the samples." -msgstr "" -"In the Terminal window where you run Ceilometer, run :code:" -"`ceilometer_sample_query` to see the samples." - -msgid "" -"In the following example, set :code:`pub_key_file` to the location of your " -"public SSH key file." -msgstr "" -"In the following example, set :code:`pub_key_file` to the location of your " -"public SSH key file." - -msgid "In the outputs section of the stack, you can run these web API calls:" -msgstr "In the outputs section of the stack, you can run these web API calls:" - -msgid "" -"In the previous steps, you split out several services and expanded capacity. " -"To see the new features of the Fractals application, SSH to one of the app " -"instances and create a few fractals." -msgstr "" -"In the previous steps, you split out several services and expanded capacity. " -"To see the new features of the Fractals application, SSH to one of the app " -"instances and create a few fractals." - -msgid "" -"In theory, you could use a simple script to monitor the load on your workers " -"and API services and trigger the creation of instances, which you already " -"know how to do. Congratulations! You are ready to create scalable cloud " -"applications." -msgstr "" -"In theory, you could use a simple script to monitor the load on your workers " -"and API services and trigger the creation of instances, which you already " -"know how to do. Congratulations! You are ready to create scalable cloud " -"applications." - -msgid "" -"In this case, we are presenting a shell script as the `userdata `_. " -"When :code:`create_node` creates the instance, :code:`cloud-init` executes " -"the shell script in the :code:`userdata` variable." -msgstr "" -"In this case, we are presenting a shell script as the `userdata `_. " -"When :code:`create_node` creates the instance, :code:`cloud-init` executes " -"the shell script in the :code:`userdata` variable." - -msgid "" -"In this network layout, we assume that the OpenStack cloud in which you have " -"been building your application has a public network and tenant router that " -"was previously created by your cloud provider or by yourself, following the " -"instructions in the appendix." -msgstr "" -"In this network layout, we assume that the OpenStack cloud in which you have " -"been building your application has a public network and tenant router that " -"was previously created by your cloud provider or by yourself, following the " -"instructions in the appendix." - -msgid "" -"In this template, the alarms use metadata that is attached to each worker " -"instance. The metadata is in the :code:`metering.stack=stack_id` format." -msgstr "" -"In this template, the alarms use metadata that is attached to each worker " -"instance. The metadata is in the :code:`metering.stack=stack_id` format." - -msgid "" -"In this tutorial, we have downloaded the latest version of our application " -"from source and installed it on a standard image. Our magic installation " -"script also updates the standard image to have the latest dependencies that " -"you need to run the application." -msgstr "" -"In this tutorial, we have downloaded the latest version of our application " -"from source and installed it on a standard image. Our magic installation " -"script also updates the standard image to have the latest dependencies that " -"you need to run the application." - -msgid "" -"In this tutorial, you interact with your OpenStack cloud through the SDK " -"that you chose in \"Choose your OpenStack SDK.\" This guide assumes that you " -"know how to run code snippets in your language of choice." -msgstr "" -"In this tutorial, you interact with your OpenStack cloud through the SDK " -"that you chose in \"Choose your OpenStack SDK.\" This guide assumes that you " -"know how to run code snippets in your language of choice." - -msgid "" -"In traditional data centers, network segments are dedicated to specific " -"types of network traffic." -msgstr "" -"In traditional data centres, network segments are dedicated to specific " -"types of network traffic." - -msgid "In your SSH session, confirm that no fractals were generated:" -msgstr "In your SSH session, confirm that no fractals were generated:" - -msgid "" -"Initially, the focus is on scaling the workers because they consume the most " -"resources." -msgstr "" -"Initially, the focus is on scaling the workers because they consume the most " -"resources." - -msgid "Install a service" -msgstr "Install a service" - -msgid "" -"Install the 'heat' command-line client by following this guide: https://docs." -"openstack.org/cli-reference/common/" -"cli_install_openstack_command_line_clients.html#install-the-clients" -msgstr "" -"Install the 'heat' command-line client by following this guide: https://docs." -"openstack.org/cli-reference/common/" -"cli_install_openstack_command_line_clients.html#install-the-clients" - -msgid "" -"Internet connectivity from your cloud instance is required to download the " -"application." -msgstr "" -"Internet connectivity from your cloud instance is required to download the " -"application." - -msgid "Introduction to Floating IPs" -msgstr "Introduction to Floating IPs" - -msgid "Introduction to cloud-init" -msgstr "Introduction to cloud-init" - -msgid "Introduction to key pairs" -msgstr "Introduction to key pairs" - -msgid "Introduction to security groups" -msgstr "Introduction to security groups" - -msgid "Introduction to tenant networking" -msgstr "Introduction to tenant networking" - -msgid "Introduction to the fractals application architecture" -msgstr "Introduction to the fractals application architecture" - -msgid "" -"It is easy to split out services into multiple instances. We will create a " -"controller instance called :code:`app-controller`, which hosts the API, " -"database, and messaging services. We will also create a worker instance " -"called :code:`app-worker-1`, which just generates fractals." -msgstr "" -"It is easy to split out services into multiple instances. We will create a " -"controller instance called :code:`app-controller`, which hosts the API, " -"database, and messaging services. We will also create a worker instance " -"called :code:`app-worker-1`, which just generates fractals." - -msgid "It is not possible to restore deleted objects. Be careful." -msgstr "It is not possible to restore deleted objects. Be careful." - -msgid "Java" -msgstr "Java" - -msgid "" -"Jclouds does not currently support OpenStack Orchestration. See this `bug " -"report `_." -msgstr "" -"Jclouds does not currently support OpenStack Orchestration. See this `bug " -"report `_." - -msgid "" -"Just as you back up information on a non-cloud server, you must back up non-" -"reproducible information, such as information on a database server, file " -"server, or in application log files. Just because something is 'in the " -"cloud' does not mean that the underlying hardware or systems cannot fail." -msgstr "" -"Just as you back up information on a non-cloud server, you must back up non-" -"reproducible information, such as information on a database server, file " -"server, or in application log files. Just because something is 'in the " -"cloud' does not mean that the underlying hardware or systems cannot fail." - -msgid "Language" -msgstr "Language" - -msgid "" -"Large file uploads that use the :code:`openstack-swift` provider are " -"supported in only jclouds V2, currently in beta. Also, the default chunk " -"size is 64 Mb. Consider changing this as homework." -msgstr "" -"Large file uploads that use the :code:`openstack-swift` provider are " -"supported in only jclouds V2, currently in beta. Also, the default chunk " -"size is 64 Mb. Consider changing this as homework." - -msgid "Large objects" -msgstr "Large objects" - -msgid "" -"Later on, you will use a Block Storage volume to provide persistent storage " -"for the database server for the Fractal application. But first, learn how to " -"create and attach a Block Storage device." -msgstr "" -"Later on, you will use a Block Storage volume to provide persistent storage " -"for the database server for the Fractal application. But first, learn how to " -"create and attach a Block Storage device." - -msgid "Launch an instance" -msgstr "Launch an instance" - -msgid "Launch the stack with auto-scaling workers:" -msgstr "Launch the stack with auto-scaling workers:" - -msgid "" -"Leave your shell open to use it for another instance deployment in this " -"section." -msgstr "" -"Leave your shell open to use it for another instance deployment in this " -"section." - -msgid "" -"Libcloud 0.16 and 0.17 are afflicted with a bug that means authentication to " -"a swift endpoint can fail with `a Python exception `_. If you encounter this, you can upgrade your " -"libcloud version, or apply a simple `2-line patch `_." -msgstr "" -"Libcloud 0.16 and 0.17 are afflicted with a bug that means authentication to " -"a swift endpoint can fail with `a Python exception `_. If you encounter this, you can upgrade your " -"libcloud version, or apply a simple `2-line patch `_." - -msgid "Libcloud does not support the OpenStack Networking API." -msgstr "Libcloud does not support the OpenStack Networking API." - -msgid "" -"Libcloud uses a different connector for Object Storage to all other " -"OpenStack services, so a conn object from previous sections will not work " -"here and we have to create a new one named :code:`swift`." -msgstr "" -"Libcloud uses a different connector for Object Storage to all other " -"OpenStack services, so a connector object from previous sections will not " -"work here and we have to create a new one named :code:`swift`." - -msgid "" -"Like many cloud applications, the Fractals application has a `RESTful API " -"`_. You can " -"connect to it directly and generate fractals, or you can integrate it as a " -"component of a larger application. Any time a standard interface such as an " -"API is available, automated testing becomes much more feasible, increasing " -"software quality." -msgstr "" -"Like many cloud applications, the Fractals application has a `RESTful API " -"`_. You can " -"connect to it directly and generate fractals, or you can integrate it as a " -"component of a larger application. Any time a standard interface such as an " -"API is available, automated testing becomes much more feasible, increasing " -"software quality." - -msgid "" -"List all available floating IPs for this project and select the first free " -"one. Allocate a new floating IP if none is available." -msgstr "" -"List all available floating IPs for this project and select the first free " -"one. Allocate a new floating IP if none is available." - -msgid "" -"List objects in your :code:`fractals` container to see if the upload was " -"successful. Then, download the file to verify that the md5sum is the same:" -msgstr "" -"List objects in your :code:`fractals` container to see if the upload was " -"successful. Then, download the file to verify that the md5sum is the same:" - -msgid "Load balancing" -msgstr "Load Balancing" - -msgid "Load the API: Create a lot of API service requests" -msgstr "Load the API: Create a lot of API service requests" - -msgid "" -"Load the worker: Create a lot of tasks to max out the CPU of existing worker " -"instances" -msgstr "" -"Load the worker: Create a lot of tasks to max out the CPU of existing worker " -"instances" - -msgid "Log in to the server to run the following steps." -msgstr "Log in to the server to run the following steps." - -msgid "" -"Login to the worker instance, :code:`app-worker-1`, with SSH, using the " -"previous added SSH key pair \"demokey\". Start by getting the IP address of " -"the worker:" -msgstr "" -"Login to the worker instance, :code:`app-worker-1`, with SSH, using the " -"previous added SSH key pair \"demokey\". Start by getting the IP address of " -"the worker:" - -msgid "Login with SSH and use the Fractal app" -msgstr "Login with SSH and use the Fractal app" - -msgid "Look at which ports are available:" -msgstr "Look at which ports are available:" - -msgid "" -"Make cloud-related architecture decisions such as turning functions into " -"micro-services and modularizing them." -msgstr "" -"Make cloud-related architecture decisions such as turning functions into " -"micro-services and modularising them." - -msgid "Make it durable" -msgstr "Make it durable" - -msgid "Make it possible to add new resources to your application." -msgstr "Make it possible to add new resources to your application." - -msgid "" -"Many of the network concepts that are discussed in this section are already " -"present in the diagram above. A tenant router provides routing and external " -"access for the worker nodes, and floating IP addresses are associated with " -"each node in the Fractal application cluster to facilitate external access." -msgstr "" -"Many of the network concepts that are discussed in this section are already " -"present in the diagram above. A tenant router provides routing and external " -"access for the worker nodes, and floating IP addresses are associated with " -"each node in the Fractal application cluster to facilitate external access." - -msgid "" -"Maven will download and install any dependencies required for compilation, " -"then execute the Java compiler. All files in the :code:`java` subdirectory " -"will be compiled." -msgstr "" -"Maven will download and install any dependencies required for compilation, " -"then execute the Java compiler. All files in the :code:`java` subdirectory " -"will be compiled." - -msgid "" -"Maven will download and install any further dependencies required and then " -"run the chosen class." -msgstr "" -"Maven will download and install any further dependencies required and then " -"run the chosen class." - -msgid "" -"Message queues are used to facilitate communication between the Fractal " -"application services. The Fractal application uses a `work queue `_ (or task queue) to " -"distribute tasks to the worker services." -msgstr "" -"Message queues are used to facilitate communication between the Fractal " -"application services. The Fractal application uses a `work queue `_ (or task queue) to " -"distribute tasks to the worker services." - -msgid "" -"Message queues work in a way similar to a queue (or a line, for those of us " -"on the other side of the ocean) in a bank being served by multiple clerks. " -"The message queue in our application provides a feed of work requests that " -"can be taken one-at-a-time by worker services, whether there is a single " -"worker service or hundreds of them." -msgstr "" -"Message queues work in a way similar to a queue (or a line, for those of us " -"on the other side of the ocean) in a bank being served by multiple clerks. " -"The message queue in our application provides a feed of work requests that " -"can be taken one-at-a-time by worker services, whether there is a single " -"worker service or hundreds of them." - -msgid "Modularity and micro-services" -msgstr "Modularity and micro-services" - -msgid "Monitoring" -msgstr "Monitoring" - -msgid "" -"Monitoring is essential for 'scalable' cloud applications. You must know how " -"many requests are coming in and the impact that these requests have on " -"various services. You must have enough information to determine whether to " -"start another worker or API service as you did in :doc:`/scaling_out`." -msgstr "" -"Monitoring is essential for 'scalable' cloud applications. You must know how " -"many requests are coming in and the impact that these requests have on " -"various services. You must have enough information to determine whether to " -"start another worker or API service as you did in :doc:`/scaling_out`." - -msgid "" -"Most cloud providers make a public network accessible to you. We will attach " -"a router to this public network to grant Internet access to our instances. " -"After also attaching this router to our internal networks, we will allocate " -"floating IPs from the public network for instances which need to be accessed " -"from the Internet." -msgstr "" -"Most cloud providers make a public network accessible to you. We will attach " -"a router to this public network to grant Internet access to our instances. " -"After also attaching this router to our internal networks, we will allocate " -"Floating IPs from the public network for instances which need to be accessed " -"from the Internet." - -msgid "" -"Most cloud providers provision all network objects that are required to boot " -"an instance. To determine whether these objects were created for you, access " -"the Network Topology section of the OpenStack dashboard." -msgstr "" -"Most cloud providers provision all network objects that are required to boot " -"an instance. To determine whether these objects were created for you, access " -"the Network Topology section of the OpenStack dashboard." - -msgid "" -"Most instances require access to the Internet. The instances in your " -"Fractals app are no exception! Add routers to pass traffic between the " -"various networks that you use." -msgstr "" -"Most instances require access to the Internet. The instances in your " -"Fractals app are no exception! Add routers to pass traffic between the " -"various networks that you use." - -msgid "Multiple clouds" -msgstr "Multiple clouds" - -msgid "Name" -msgstr "Name" - -msgid "" -"Network access. By default, OpenStack filters all traffic. You must create a " -"security group and apply it to your instance. The security group allows HTTP " -"and SSH access. We will go into more detail in :doc:`/introduction`." -msgstr "" -"Network access. By default, OpenStack filters all traffic. You must create a " -"security group and apply it to your instance. The security group allows HTTP " -"and SSH access. We will go into more detail in :doc:`/introduction`." - -msgid "Networking" -msgstr "Networking" - -msgid "Networking segmentation" -msgstr "Networking segmentation" - -msgid "Neutron LbaaS API" -msgstr "Neutron LBaaS API" - -msgid "Next steps" -msgstr "Next steps" - -msgid "" -"Next, back up all existing fractals from the database to the swift " -"container. A simple loop takes care of that:" -msgstr "" -"Next, back up all existing fractals from the database to the swift " -"container. A simple loop takes care of that:" - -msgid "Next, create a network and subnet for the API servers." -msgstr "Next, create a network and subnet for the API servers." - -msgid "Next, create a network and subnet for the workers." -msgstr "Next, create a network and subnet for the workers." - -msgid "" -"Next, create additional floating IPs. Specify the fixed IP addresses they " -"should point to and the ports that they should use:" -msgstr "" -"Next, create additional floating IPs. Specify the fixed IP addresses they " -"should point to and the ports that they should use:" - -msgid "Next, start a second instance, which will be the worker instance:" -msgstr "Next, start a second instance, which will be the worker instance:" - -msgid "Next, tell the script which flavor you want to use:" -msgstr "Next, tell the script which flavour you want to use:" - -msgid "" -"Note that the worker instance is part of an :code:`OS::Heat::" -"AutoScalingGroup`." -msgstr "" -"Note that the worker instance is part of an :code:`OS::Heat::" -"AutoScalingGroup`." - -msgid "" -"Note that this time, when you create a security group, you include a rule " -"that applies to only instances that are part of the worker group." -msgstr "" -"Note that this time, when you create a security group, you include a rule " -"that applies to only instances that are part of the worker group." - -msgid "" -"Note that we will be showing the commands in a more idiomatic Java way: as " -"methods on a class." -msgstr "" -"Note that we will be showing the commands in a more idiomatic Java way: as " -"methods on a class." - -msgid "" -"Notice that you have added this instance to the worker_group, so it can " -"access the controller." -msgstr "" -"Notice that you have added this instance to the worker_group, so it can " -"access the controller." - -msgid "" -"Now call the Fractal application's command line interface (:code:`faafo`) to " -"request a few new fractals. The following command requests a few fractals " -"with random parameters:" -msgstr "" -"Now call the Fractal application's command line interface (:code:`faafo`) to " -"request a few new fractals. The following command requests a few fractals " -"with random parameters:" - -msgid "" -"Now create a virtual IP that will be used to direct traffic between the " -"various members of the pool:" -msgstr "" -"Now create a virtual IP that will be used to direct traffic between the " -"various members of the pool:" - -msgid "" -"Now if you make a request for a new fractal, you connect to the controller " -"instance, :code:`app-controller`, but the work will actually be performed by " -"a separate worker instance - :code:`app-worker-1`." -msgstr "" -"Now if you make a request for a new fractal, you connect to the controller " -"instance, :code:`app-controller`, but the work will actually be performed by " -"a separate worker instance - :code:`app-worker-1`." - -msgid "" -"Now log into the controller instance, :code:`app-controller`, also with SSH, " -"using the previously added SSH key pair \"demokey\"." -msgstr "" -"Now log into the controller instance, :code:`app-controller`, also with SSH, " -"using the previously added SSH key pair \"demokey\"." - -msgid "Now prepare the empty block device." -msgstr "Now prepare the empty block device." - -msgid "" -"Now request an address from this network to be allocated to your project." -msgstr "" -"Now request an address from this network to be allocated to your project." - -msgid "" -"Now request that an address from this pool be allocated to your project." -msgstr "" -"Now request that an address from this pool be allocated to your project." - -msgid "" -"Now that you have an unused floating IP address allocated to your project, " -"attach it to an instance." -msgstr "" -"Now that you have an unused floating IP address allocated to your project, " -"attach it to an instance." - -msgid "" -"Now that you have got the networks created, go ahead and create two Floating " -"IPs, for web servers. Ensure that you replace 'public' with the name of the " -"public/external network offered by your cloud provider." -msgstr "" -"Now that you have got the networks created, go ahead and create two Floating " -"IPs, for web servers. Ensure that you replace 'public' with the name of the " -"public/external network offered by your cloud provider." - -msgid "" -"Now that you have prepared the networking infrastructure, you can go ahead " -"and boot an instance on it. Ensure you use appropriate flavor and image " -"values for your cloud - see :doc:`getting_started` if you have not already." -msgstr "" -"Now that you have prepared the networking infrastructure, you can go ahead " -"and boot an instance on it. Ensure you use appropriate flavour and image " -"values for your cloud - see :doc:`getting_started` if you have not already." - -msgid "" -"Now that you know how to create and delete instances, you can deploy the " -"sample application. The instance that you create for the application is " -"similar to the first instance that you created, but this time, we introduce " -"a few extra concepts." -msgstr "" -"Now that you know how to create and delete instances, you can deploy the " -"sample application. The instance that you create for the application is " -"similar to the first instance that you created, but this time, we introduce " -"a few extra concepts." - -msgid "Now you can SSH into the instance:" -msgstr "Now you can SSH into the instance:" - -msgid "Now, attach your router to the worker, API, and web server subnets." -msgstr "Now, attach your router to the worker, API, and web server subnets." - -msgid "" -"Now, create a health monitor that will ensure that members of the load " -"balancer pool are active and able to respond to requests. If a member in the " -"pool dies or is unresponsive, the member is removed from the pool so that " -"client requests are routed to another active member." -msgstr "" -"Now, create a health monitor that will ensure that members of the load " -"balancer pool are active and able to respond to requests. If a member in the " -"pool dies or is unresponsive, the member is removed from the pool so that " -"client requests are routed to another active member." - -msgid "Now, create a network and subnet for the web servers." -msgstr "Now, create a network and subnet for the web servers." - -msgid "Now, look at the big picture." -msgstr "Now, look at the big picture." - -msgid "Now, no more objects are available in the :code:`fractals` container." -msgstr "Now, no more objects are available in the :code:`fractals` container." - -msgid "" -"Now, wait until all the fractals are generated and the instances have idled " -"for some time." -msgstr "" -"Now, wait until all the fractals are generated and the instances have idled " -"for some time." - -msgid "Now, you can boot and configure the instance." -msgstr "Now, you can boot and configure the instance." - -msgid "Now, you can launch the instance." -msgstr "Now, you can launch the instance." - -msgid "Obtain the following information from your cloud provider:" -msgstr "Obtain the following information from your cloud provider:" - -msgid "" -"Of course there is also a web interface which offers a more human friendly " -"way of accessing the API to view the created fractal images, and a simple " -"command line interface." -msgstr "" -"Of course there is also a web interface which offers a more human friendly " -"way of accessing the API to view the created fractal images, and a simple " -"command line interface." - -msgid "" -"Of course, creating a monitoring system for a single application might not " -"make sense. To learn how to use the OpenStack Orchestration monitoring and " -"auto-scaling capabilities to automate these steps, see :doc:`orchestration`." -msgstr "" -"Of course, creating a monitoring system for a single application might not " -"make sense. To learn how to use the OpenStack Orchestration monitoring and " -"auto-scaling capabilities to automate these steps, see :doc:`orchestration`." - -msgid "" -"Of course, having access to additional resources is only part of the game " -"plan; while you can manually add or delete resources, you get more value and " -"more responsiveness if the application automatically requests additional " -"resources when it needs them." -msgstr "" -"Of course, having access to additional resources is only part of the game " -"plan; while you can manually add or delete resources, you get more value and " -"more responsiveness if the application automatically requests additional " -"resources when it needs them." - -msgid "Official Python-based library for OpenStack." -msgstr "Official Python-based library for OpenStack." - -msgid "" -"Once you have configured permissions, you must know where to access the " -"application." -msgstr "" -"Once you have configured permissions, you must know where to access the " -"application." - -msgid "Once you have created a rule or group, you can also delete it:" -msgstr "Once you have created a rule or group, you can also delete it:" - -msgid "" -"Once you have logged in, check to see whether the worker service process is " -"running as expected. You can find the logs of the worker service in the " -"directory :code:`/var/log/supervisor/`." -msgstr "" -"Once you have logged in, check to see whether the worker service process is " -"running as expected. You can find the logs of the worker service in the " -"directory :code:`/var/log/supervisor/`." - -msgid "" -"One of the latest trends in scalable cloud application deployment is " -"`continuous integration `_ and `continuous deployment `_ (CI/CD)." -msgstr "" -"One of the latest trends in scalable cloud application deployment is " -"`continuous integration `_ and `continuous deployment `_ (CI/CD)." - -msgid "" -"Open :code:`top` to monitor the CPU usage of the :code:`faafo-worker` " -"process." -msgstr "" -"Open :code:`top` to monitor the CPU usage of the :code:`faafo-worker` " -"process." - -msgid "" -"OpenStack Object Storage automatically replicates each object at least twice " -"before returning 'write success' to your API call. A good strategy is to " -"keep three copies of objects, by default, at all times, replicating them " -"across the system in case of hardware failure, maintenance, network outage, " -"or another kind of breakage. This strategy is very convenient for app " -"creation. You can just dump objects into object storage and not worry about " -"the additional work that it takes to keep them safe." -msgstr "" -"OpenStack Object Storage automatically replicates each object at least twice " -"before returning 'write success' to your API call. A good strategy is to " -"keep three copies of objects, by default, at all times, replicating them " -"across the system in case of hardware failure, maintenance, network outage, " -"or another kind of breakage. This strategy is very convenient for app " -"creation. You can just dump objects into object storage and not worry about " -"the additional work that it takes to keep them safe." - -msgid "OpenStack SDK" -msgstr "OpenStack SDK" - -msgid "OpenStack SDK for Microsoft .NET" -msgstr "OpenStack SDK for Microsoft .NET" - -msgid "OpenStack SDKs" -msgstr "OpenStack SDKs" - -msgid "" -"OpenStack provides a couple of tools that make it easy to back up data. If " -"your provider runs OpenStack Object Storage, you can use its API calls and " -"CLI tools to work with archive files." -msgstr "" -"OpenStack provides a couple of tools that make it easy to back up data. If " -"your provider runs OpenStack Object Storage, you can use its API calls and " -"CLI tools to work with archive files." - -msgid "" -"OpenStack supports 'regions', which are geographically-separated " -"installations that are connected to a single service catalog. This section " -"explains how to expand the Fractal application to use multiple regions for " -"high availability." -msgstr "" -"OpenStack supports 'regions', which are geographically-separated " -"installations that are connected to a single service catalogue. This section " -"explains how to expand the Fractal application to use multiple regions for " -"high availability." - -msgid "Or, try one of these tutorial steps:" -msgstr "Or, try one of these tutorial steps:" - -msgid "Orchestration" -msgstr "Orchestration" - -msgid "" -"Other features, such as creating volume snapshots, are useful for backups:" -msgstr "" -"Other features, such as creating volume snapshots, are useful for backups:" - -msgid "" -"Other versions of this guide show you how to use the other SDKs and " -"languages to complete these tasks. If you are a developer for another " -"toolkit that you would like this guide to include, feel free to submit code " -"snippets. For more information, contact `OpenStack Documentation team " -"`_ members." -msgstr "" -"Other versions of this guide show you how to use the other SDKs and " -"languages to complete these tasks. If you are a developer for another " -"toolkit that you would like this guide to include, feel free to submit code " -"snippets. For more information, contact `OpenStack Documentation team " -"`_ members." - -msgid "" -"Otherwise, continue reading to learn how to work with, and move the Fractal " -"application database server to use, block storage." -msgstr "" -"Otherwise, continue reading to learn how to work with, and move the Fractal " -"application database server to use, block storage." - -msgid "" -"Our code samples use `Java 8 `_." -msgstr "" -"Our code samples use `Java 8 `_." - -msgid "PHP" -msgstr "PHP" - -msgid "" -"PHP-OpenCloud supports the OpenStack Networking API, but this section has " -"not been completed." -msgstr "" -"PHP-OpenCloud supports the OpenStack Networking API, but this section has " -"not been completed." - -msgid "" -"PHP-opencloud supports OpenStack Orchestration :D:D:D but this section is " -"not written yet." -msgstr "" -"PHP-opencloud supports OpenStack Orchestration :D:D:D but this section is " -"not written yet." - -msgid "Parameter" -msgstr "Parameter" - -msgid "" -"Perhaps you can `contribute `_?" -msgstr "" -"Perhaps you can `contribute `_?" - -msgid "Phoenix servers" -msgstr "Phoenix servers" - -msgid "" -"Pkgcloud supports OpenStack Orchestration :D:D:D but this section is `not " -"written yet `_" -msgstr "" -"Pkgcloud supports OpenStack Orchestration :D:D:D but this section is `not " -"written yet `_" - -msgid "" -"Pkgcloud supports the OpenStack Networking API, but this section has not " -"been completed." -msgstr "" -"Pkgcloud supports the OpenStack Networking API, but this section has not " -"been completed." - -msgid "" -"Place the above pom.xml into the root directory of your project. Then create " -"the nested subdirectory tree :code:`src` -> :code:`main` -> :code:`java`. " -"Place the Java code samples that you copy from this book into the folder " -"named \":code:`java`\"." -msgstr "" -"Place the above pom.xml into the root directory of your project. Then create " -"the nested subdirectory tree :code:`src` -> :code:`main` -> :code:`java`. " -"Place the Java code samples that you copy from this book into the folder " -"named \":code:`java`\"." - -msgid "Place the images in the :code:`fractals` container:" -msgstr "Place the images in the :code:`fractals` container:" - -msgid "" -"Previously, you manually created the database, which is useful for a single " -"database that you rarely update. However, the OpenStack :code:`trove` " -"component provides Database as a Service (DBaaS)." -msgstr "" -"Previously, you manually created the database, which is useful for a single " -"database that you rarely update. However, the OpenStack :code:`trove` " -"component provides Database as a Service (DBaaS)." - -msgid "" -"Prior to this section, the network layout for the Fractal application would " -"be similar to the following diagram:" -msgstr "" -"Prior to this section, the network layout for the Fractal application would " -"be similar to the following diagram:" - -msgid "Programmatic interfaces (APIs)" -msgstr "Programmatic interfaces (APIs)" - -msgid "Python" -msgstr "Python" - -msgid "Regions and geographic diversity" -msgstr "Regions and geographic diversity" - -msgid "Remove the existing app" -msgstr "Remove the existing app" - -msgid "" -"Removing the egress rule created by OpenStack will cause your instance " -"networking to break." -msgstr "" -"Removing the egress rule created by OpenStack will cause your instance " -"networking to break." - -msgid "" -"Replace :code:`IP_API_1` and :code:`IP_API_2` with the corresponding " -"floating IPs. Replace FRACTAL_UUID with the UUID of an existing fractal." -msgstr "" -"Replace :code:`IP_API_1` and :code:`IP_API_2` with the corresponding " -"floating IPs. Replace FRACTAL_UUID with the UUID of an existing fractal." - -msgid "Replace :code:`IP_API_1` with the IP address of the API instance." -msgstr "Replace :code:`IP_API_1` with the IP address of the API instance." - -msgid "" -"Replace :code:`IP_API_1` with the IP address of the first API instance and " -"USERNAME with the appropriate user name." -msgstr "" -"Replace :code:`IP_API_1` with the IP address of the first API instance and " -"USERNAME with the appropriate user name." - -msgid "" -"Replace :code:`IP_CONTROLLER` with the IP address of the controller instance " -"and USERNAME to the appropriate user name." -msgstr "" -"Replace :code:`IP_CONTROLLER` with the IP address of the controller instance " -"and USERNAME to the appropriate user name." - -msgid "" -"Replace :code:`IP_CONTROLLER` with the IP address of the controller instance " -"and USERNAME with the appropriate user name." -msgstr "" -"Replace :code:`IP_CONTROLLER` with the IP address of the controller instance " -"and USERNAME with the appropriate user name." - -msgid "" -"Replace :code:`IP_CONTROLLER` with the IP address of the controller instance." -msgstr "" -"Replace :code:`IP_CONTROLLER` with the IP address of the controller instance." - -msgid "" -"Replace :code:`IP_DATABASE` with the IP address of the database instance and " -"USERNAME to the appropriate user name." -msgstr "" -"Replace :code:`IP_DATABASE` with the IP address of the database instance and " -"USERNAME to the appropriate user name." - -msgid "" -"Replace :code:`IP_WORKER_1` with the IP address of the worker instance and " -"USERNAME to the appropriate user name." -msgstr "" -"Replace :code:`IP_WORKER_1` with the IP address of the worker instance and " -"USERNAME to the appropriate user name." - -msgid "" -"Replace :code:`IP_WORKER` with the IP address of the worker instance and " -"USERNAME with the appropriate user name." -msgstr "" -"Replace :code:`IP_WORKER` with the IP address of the worker instance and " -"USERNAME with the appropriate user name." - -msgid "Ruby" -msgstr "Ruby" - -msgid "" -"Run the :code:`ceilometer_statistics_query`: command to see the derived " -"statistics." -msgstr "" -"Run the :code:`ceilometer_statistics_query`: command to see the derived " -"statistics." - -msgid "" -"Run the :code:`nova list` command to confirm that the :code:`OS::Heat::" -"AutoScalingGroup` has created more instances:" -msgstr "" -"Run the :code:`nova list` command to confirm that the :code:`OS::Heat::" -"AutoScalingGroup` has created more instances:" - -msgid "" -"Run the :code:`nova list` command to confirm that the :code:`OS::Heat::" -"AutoScalingGroup` removed the unneeded instances:" -msgstr "" -"Run the :code:`nova list` command to confirm that the :code:`OS::Heat::" -"AutoScalingGroup` removed the unneeded instances:" - -msgid "" -"Run the :code:`nova list` command. This template created three instances:" -msgstr "" -"Run the :code:`nova list` command. This template created three instances:" - -msgid "Run the script to start the deployment." -msgstr "Run the script to start the deployment." - -msgid "" -"SDKs do not generally support the service yet, but you can use the 'trove' " -"command-line client to work with it instead." -msgstr "" -"SDKs do not generally support the service yet, but you can use the 'trove' " -"command-line client to work with it instead." - -msgid "Scalability" -msgstr "Scalability" - -msgid "Scale available resources up and down." -msgstr "Scale available resources up and down." - -msgid "Scale the API service" -msgstr "Scale the API service" - -msgid "Scale the workers" -msgstr "Scale the workers" - -msgid "Scaling out" -msgstr "Scaling out" - -msgid "Security" -msgstr "Security" - -msgid "" -"Security groups are sets of network access rules that are applied to an " -"instance's networking. By default, only egress (outbound) traffic is " -"allowed. You must explicitly enable ingress (inbound) network access by " -"creating a security group rule." -msgstr "" -"Security groups are sets of network access rules that are applied to an " -"instance's networking. By default, only egress (outbound) traffic is " -"allowed. You must explicitly enable ingress (inbound) network access by " -"creating a security group rule." - -msgid "" -"Security is important when it comes to your instances; you can not have just " -"anyone accessing them. To enable logging into an instance, you must provide " -"the public key of an SSH key pair during instance creation. In section one, " -"you created and uploaded a key pair to OpenStack, and cloud-init installed " -"it for the user account." -msgstr "" -"Security is important when it comes to your instances; you can not have just " -"anyone accessing them. To enable logging into an instance, you must provide " -"the public key of an SSH key pair during instance creation. In section one, " -"you created and uploaded a key pair to OpenStack, and cloud-init installed " -"it for the user account." - -msgid "See the state of the alarms set up by the template:" -msgstr "See the state of the alarms set up by the template:" - -msgid "" -"Set the image and size variables to appropriate values for your cloud. We " -"will use these variables in later sections." -msgstr "" -"Set the image and size variables to appropriate values for your cloud. We " -"will use these variables in later sections." - -msgid "Shade" -msgstr "Shade" - -msgid "" -"Shade's create_object function has a \"use_slo\" parameter (that defaults to " -"true) which will break your object into smaller objects for upload and " -"rejoin them if needed." -msgstr "" -"Shade's create_object function has a \"use_slo\" parameter (that defaults to " -"true) which will break your object into smaller objects for upload and " -"rejoin them if needed." - -msgid "" -"Similar to the UNIX programming model, an object, such as a document or an " -"image, is a \"bag of bytes\" that contains data. You use containers to group " -"objects. You can place many objects inside a container, and your account can " -"have many containers." -msgstr "" -"Similar to the UNIX programming model, an object, such as a document or an " -"image, is a \"bag of bytes\" that contains data. You use containers to group " -"objects. You can place many objects inside a container, and your account can " -"have many containers." - -msgid "" -"So what exactly was that request doing at the end of the previous section? " -"Let us look at it again. In this subsection, we are just explaining what you " -"have already done in the previous section; you do not need to run these " -"commands again." -msgstr "" -"So what exactly was that request doing at the end of the previous section? " -"Let us look at it again. In this subsection, we are just explaining what you " -"have already done in the previous section; you do not need to run these " -"commands again." - -msgid "" -"So, for example, the file named :code:`GettingStarted.java` from the end of " -"this chapter would be located as follows:" -msgstr "" -"So, for example, the file named :code:`GettingStarted.java` from the end of " -"this chapter would be located as follows:" - -msgid "Specify a network during instance build" -msgstr "Specify a network during instance build" - -msgid "" -"Specify an external gateway for your router to tell OpenStack which network " -"to use for Internet access." -msgstr "" -"Specify an external gateway for your router to tell OpenStack which network " -"to use for Internet access." - -msgid "Specify the flavor ID that you would like to use." -msgstr "Specify the flavour ID that you would like to use." - -msgid "" -"Spend some time playing with the stack and the Fractal app to see how it " -"works." -msgstr "" -"Spend some time playing with the stack and the Fractal app to see how it " -"works." - -msgid "Split the database and message queue" -msgstr "Split the database and message queue" - -msgid "Splitting services across multiple instances" -msgstr "Splitting services across multiple instances" - -msgid "" -"Start by creating a security group for the all-in-one instance and adding " -"the appropriate rules, such as HTTP (TCP port 80) and SSH (TCP port 22):" -msgstr "" -"Start by creating a security group for the all-in-one instance and adding " -"the appropriate rules, such as HTTP (TCP port 80) and SSH (TCP port 22):" - -msgid "Start by looking at what is already in place." -msgstr "Start by looking at what is already in place." - -msgid "" -"Stop the running MySQL database service and move the database files from :" -"file:`/var/lib/mysql` to the new volume, which is temporarily mounted at :" -"file:`/mnt/database`." -msgstr "" -"Stop the running MySQL database service and move the database files from :" -"file:`/var/lib/mysql` to the new volume, which is temporarily mounted at :" -"file:`/mnt/database`." - -msgid "" -"Swift metadata keys are prepended with \"x-object-meta-\" so when you get " -"the object with get_object(), in order to get the value of the metadata your " -"key will be \"x-object-meta-foo\"." -msgstr "" -"Swift metadata keys are prepended with \"x-object-meta-\" so when you get " -"the object with get_object(), in order to get the value of the metadata your " -"key will be \"x-object-meta-foo\"." - -msgid "" -"Sync the file systems and mount the block device that contains the database " -"files to :file:`/var/lib/mysql`." -msgstr "" -"Sync the file systems and mount the block device that contains the database " -"files to :file:`/var/lib/mysql`." - -msgid "" -"That brings us to where we ended up at the end of :doc:`/getting_started`. " -"But where do we go from here?" -msgstr "" -"That brings us to where we ended up at the end of :doc:`/getting_started`. " -"But where do we go from here?" - -msgid "" -"That example is simplistic, of course, but the flexibility of the resource " -"object enables the creation of templates that contain all the required cloud " -"infrastructure to run an application, such as load balancers, block storage " -"volumes, compute instances, networking topology, and security policies." -msgstr "" -"That example is simplistic, of course, but the flexibility of the resource " -"object enables the creation of templates that contain all the required cloud " -"infrastructure to run an application, such as load balancers, block storage " -"volumes, compute instances, networking topology, and security policies." - -msgid "" -"That, as it happens, is the new reality of programming. Applications and " -"systems used to be created on large, expensive servers, cared for by " -"operations staff dedicated to keeping them healthy. If something went wrong " -"with one of those servers, the staff's job was to do whatever it took to " -"make it right again and save the server and the application." -msgstr "" -"That, as it happens, is the new reality of programming. Applications and " -"systems used to be created on large, expensive servers, cared for by " -"operations staff dedicated to keeping them healthy. If something went wrong " -"with one of those servers, the staff's job was to do whatever it took to " -"make it right again and save the server and the application." - -msgid "" -"The :code:`OS::Heat::AutoScalingGroup` removes instances in creation order. " -"So the worker instance that was created first is the first instance to be " -"removed." -msgstr "" -"The :code:`OS::Heat::AutoScalingGroup` removes instances in creation order. " -"So the worker instance that was created first is the first instance to be " -"removed." - -msgid "" -"The :doc:`/introduction` section describes how to build in a modular " -"fashion, create an API, and other aspects of the application architecture. " -"Now you will see why those strategies are so important. By creating a " -"modular application with decoupled services, you can identify components " -"that cause application performance bottlenecks and scale them out. Just as " -"importantly, you can also remove resources when they are no longer " -"necessary. It is very difficult to overstate the cost savings that this " -"feature can bring, as compared to traditional infrastructure." -msgstr "" -"The :doc:`/introduction` section describes how to build in a modular " -"fashion, create an API, and other aspects of the application architecture. " -"Now you will see why those strategies are so important. By creating a " -"modular application with decoupled services, you can identify components " -"that cause application performance bottlenecks and scale them out. Just as " -"importantly, you can also remove resources when they are no longer " -"necessary. It is very difficult to overstate the cost savings that this " -"feature can bring, as compared to traditional infrastructure." - -msgid "" -"The CPU utilization across workers increases as workers start to create the " -"fractals." -msgstr "" -"The CPU utilisation across workers increases as workers start to create the " -"fractals." - -msgid "" -"The Fractals app currently uses the local file system on the instance to " -"store the images that it generates. For a number of reasons, this approach " -"is not scalable or durable." -msgstr "" -"The Fractals app currently uses the local file system on the instance to " -"store the images that it generates. For a number of reasons, this approach " -"is not scalable or durable." - -msgid "" -"The Fractals application was designed with the principles of the previous " -"subsection in mind. You will note that in :doc:`getting_started`, we " -"deployed the application in an all-in-one style, on a single virtual " -"machine. This is not a good practice, but because the application uses micro-" -"services to decouple logical application functions, we can change this " -"easily." -msgstr "" -"The Fractals application was designed with the principles of the previous " -"subsection in mind. You will note that in :doc:`getting_started`, we " -"deployed the application in an all-in-one style, on a single virtual " -"machine. This is not a good practice, but because the application uses micro-" -"services to decouple logical application functions, we can change this " -"easily." - -msgid "The Object Storage API is organized around objects and containers." -msgstr "The Object Storage API is organised around objects and containers." - -msgid "" -"The Object Storage service manages many of the tasks normally managed by the " -"application owner. The Object Storage service provides a scalable and " -"durable API that you can use for the fractals app, eliminating the need to " -"be aware of the low level details of how objects are stored and replicated, " -"and how to grow the storage pool. Object Storage handles replication for " -"you. It stores multiple copies of each object. You can use the Object " -"Storage API to return an object, on demand." -msgstr "" -"The Object Storage service manages many of the tasks normally managed by the " -"application owner. The Object Storage service provides a scalable and " -"durable API that you can use for the fractals app, eliminating the need to " -"be aware of the low level details of how objects are stored and replicated, " -"and how to grow the storage pool. Object Storage handles replication for " -"you. It stores multiple copies of each object. You can use the Object " -"Storage API to return an object, on demand." - -msgid "" -"The OpenStack Networking API provides support for creating loadbalancers, " -"which can be used to scale the Fractal app web service. In the following " -"example, we create two compute instances via the Compute API, then " -"instantiate a load balancer that will use a virtual IP (VIP) for accessing " -"the web service offered by the two compute nodes. The end result will be the " -"following network topology:" -msgstr "" -"The OpenStack Networking API provides support for creating load balancers, " -"which can be used to scale the Fractal app web service. In the following " -"example, we create two compute instances via the Compute API, then " -"instantiate a load balancer that will use a virtual IP (VIP) for accessing " -"the web service offered by the two compute nodes. The end result will be the " -"following network topology:" - -msgid "" -"The OpenStack Orchestration API uses the stacks, resources, and templates " -"constructs." -msgstr "" -"The OpenStack Orchestration API uses the stacks, resources, and templates " -"constructs." - -msgid "The OpenStack SDK does not currently support OpenStack Orchestration." -msgstr "The OpenStack SDK does not currently support OpenStack Orchestration." - -msgid "" -"The Orchestration service is not deployed by default in every cloud. If " -"these commands do not work, it means the Orchestration API is not available; " -"ask your support team for assistance." -msgstr "" -"The Orchestration service is not deployed by default in every cloud. If " -"these commands do not work, it means the Orchestration API is not available; " -"ask your support team for assistance." - -msgid "" -"The Orchestration service provides a template-based way to describe a cloud " -"application, then coordinates running the needed OpenStack API calls to run " -"cloud applications. The templates enable you to create most OpenStack " -"resource types, such as instances, networking information, volumes, security " -"groups, and even users. It also provides more advanced functionality, such " -"as instance high availability, instance auto-scaling, and nested stacks." -msgstr "" -"The Orchestration service provides a template-based way to describe a cloud " -"application, then coordinates running the needed OpenStack API calls to run " -"cloud applications. The templates enable you to create most OpenStack " -"resource types, such as instances, networking information, volumes, security " -"groups, and even users. It also provides more advanced functionality, such " -"as instance high availability, instance auto-scaling, and nested stacks." - -msgid "" -"The Telemetry service is not deployed by default in every cloud. If the " -"ceilometer commands do not work, this example does not work; ask your " -"support team for assistance." -msgstr "" -"The Telemetry service is not deployed by default in every cloud. If the " -"Ceilometer commands do not work, this example does not work; ask your " -"support team for assistance." - -msgid "" -"The Telemetry service uses meters to measure a given aspect of a resources " -"usage. The meter that we are interested in is the :code:`cpu_util` meter." -msgstr "" -"The Telemetry service uses meters to measure a given aspect of a resources " -"usage. The meter that we are interested in is the :code:`cpu_util` meter." - -msgid "" -"The `RabbitMQ getting started tutorial `_ provides a great introduction to message queues." -msgstr "" -"The `RabbitMQ getting started tutorial `_ provides a great introduction to message queues." - -msgid "" -"The `generated_by` field shows the worker that created the fractal. Because " -"multiple worker instances share the work, fractals are generated more " -"quickly and users might not even notice when a worker fails." -msgstr "" -"The `generated_by` field shows the worker that created the fractal. Because " -"multiple worker instances share the work, fractals are generated more " -"quickly and users might not even notice when a worker fails." - -msgid "" -"The `outputs` property shows the URL through which you can access the " -"Fractal application. You can SSH into the instance." -msgstr "" -"The `outputs` property shows the URL through which you can access the " -"Fractal application. You can SSH into the instance." - -msgid "The actual auth URL is:" -msgstr "The actual auth URL is:" - -msgid "The alarms have the form:" -msgstr "The alarms have the form:" - -msgid "" -"The application stores the generated fractal images directly in the database " -"used by the API service instance. Storing image files in a database is not " -"good practice. We are doing it here as an example only as an easy way to " -"enable multiple instances to have access to the data. For best practice, we " -"recommend storing objects in Object Storage, which is covered in :doc:" -"`durability`." -msgstr "" -"The application stores the generated fractal images directly in the database " -"used by the API service instance. Storing image files in a database is not " -"good practice. We are doing it here as an example only as an easy way to " -"enable multiple instances to have access to the data. For best practice, we " -"recommend storing objects in Object Storage, which is covered in :doc:" -"`durability`." - -msgid "" -"The auto-scaling stack sets up an API instance, a services instance, and an " -"auto-scaling group with a single worker instance. It also sets up ceilometer " -"alarms that add worker instances to the auto-scaling group when it is under " -"load, and removes instances when the group is idling. To do this, the alarms " -"post to URLs." -msgstr "" -"The auto-scaling stack sets up an API instance, a services instance, and an " -"auto-scaling group with a single worker instance. It also sets up Ceilometer " -"alarms that add worker instances to the auto-scaling group when it is under " -"load, and removes instances when the group is idling. To do this, the alarms " -"post to URLs." - -msgid "" -"The client object accesses the Compute v2.0 service and type v2.1, so that " -"version is in this tutorial." -msgstr "" -"The client object accesses the Compute v2.0 service and type v2.1, so that " -"version is in this tutorial." - -msgid "The connection URL for the database (not used here)." -msgstr "The connection URL for the database (not used here)." - -msgid "The endpoint URL of the API service." -msgstr "The endpoint URL of the API service." - -msgid "" -"The example code uses the awesome `Requests library `_. Before you try to run the previous script, make " -"sure that it is installed on your system." -msgstr "" -"The example code uses the awesome `Requests library `_. Before you try to run the previous script, make " -"sure that it is installed on your system." - -msgid "" -"The example template depends on the ceilometer project, which is part of the " -"`Telemetry service `_." -msgstr "" -"The example template depends on the Ceilometer project, which is part of the " -"`Telemetry service `_." - -msgid "" -"The first step is to start the controller instance. The instance has the API " -"service, the database, and the messaging service, as you can see from the " -"parameters passed to the installation script." -msgstr "" -"The first step is to start the controller instance. The instance has the API " -"service, the database, and the messaging service, as you can see from the " -"parameters passed to the installation script." - -msgid "The flavor" -msgstr "The flavour" - -msgid "" -"The following file contains all of the code from this section of the " -"tutorial. This comprehensive code sample lets you view and run the code as a " -"single file." -msgstr "" -"The following file contains all of the code from this section of the " -"tutorial. This comprehensive code sample lets you view and run the code as a " -"single file." - -msgid "" -"The following file contains all of the code from this section of the " -"tutorial. This comprehensive code sample lets you view and run the code as a " -"single script." -msgstr "" -"The following file contains all of the code from this section of the " -"tutorial. This comprehensive code sample lets you view and run the code as a " -"single script." - -msgid "" -"The following instance creation example assumes that you have a single-" -"tenant network. If you receive the 'Exception: 400 Bad Request Multiple " -"possible networks found, use a Network ID to be more specific' error, you " -"have multiple-tenant networks. You must add a `networks` parameter to the " -"call that creates the server. See :doc:`/appendix` for details." -msgstr "" -"The following instance creation example assumes that you have a single-" -"tenant network. If you receive the 'Exception: 400 Bad Request Multiple " -"possible networks found, use a Network ID to be more specific' error, you " -"have multiple-tenant networks. You must add a `networks` parameter to the " -"call that creates the server. See :doc:`/appendix` for details." - -msgid "The following operations are destructive and result in data loss." -msgstr "The following operations are destructive and result in data loss." - -msgid "" -"The fractal application we are building contains these types of network " -"traffic:" -msgstr "" -"The fractal application we are building contains these types of network " -"traffic:" - -msgid "" -"The fractals are now available from any of the app-api hosts. To verify, " -"visit http://IP_API_1/fractal/FRACTAL_UUID and http://IP_API_2/fractal/" -"FRACTAL_UUID. You now have multiple redundant web services. If one fails, " -"you can use the others." -msgstr "" -"The fractals are now available from any of the app-api hosts. To verify, " -"visit http://IP_API_1/fractal/FRACTAL_UUID and http://IP_API_2/fractal/" -"FRACTAL_UUID. You now have multiple redundant web services. If one fails, " -"you can use the others." - -msgid "The magic revisited" -msgstr "The magic revisited" - -msgid "" -"The message queue can take a while to notice that worker instances have died." -msgstr "" -"The message queue can take a while to notice that worker instances have died." - -msgid "" -"The most common way for OpenStack clouds to allocate Internet rout-able IP " -"addresses to instances, however, is through the use of floating IPs. A " -"floating IP is an address that exists as an entity unto itself, and can be " -"associated to a specific instance network interface. When a floating IP " -"address is associated to an instance network interface, OpenStack re-directs " -"traffic bound for that address to the address of the instance's internal " -"network interface address. Your cloud provider will generally offer pools of " -"floating IPs for your use." -msgstr "" -"The most common way for OpenStack clouds to allocate Internet routable IP " -"addresses to instances, however, is through the use of floating IPs. A " -"floating IP is an address that exists as an entity unto itself, and can be " -"associated to a specific instance network interface. When a floating IP " -"address is associated to an instance network interface, OpenStack re-directs " -"traffic bound for that address to the address of the instance's internal " -"network interface address. Your cloud provider will generally offer pools of " -"floating IPs for your use." - -msgid "The new instance appears." -msgstr "The new instance appears." - -msgid "" -"The next logical step is to upload an object. Find a photo of a goat online, " -"name it :code:`goat.jpg`, and upload it to your :code:`fractals` container:" -msgstr "" -"The next logical step is to upload an object. Find a photo of a goat online, " -"name it :code:`goat.jpg`, and upload it to your :code:`fractals` container:" - -msgid "" -"The outputs section of the stack contains two ceilometer command-line " -"queries:" -msgstr "" -"The outputs section of the stack contains two Ceilometer command-line " -"queries:" - -msgid "The parameter :code:`Size` is in gigabytes." -msgstr "The parameter :code:`Size` is in gigabytes." - -msgid "The parameter :code:`size` is in gigabytes." -msgstr "The parameter :code:`size` is in gigabytes." - -msgid "The prefix is `metering.` For example, `metering.some_name`." -msgstr "The prefix is `metering.` For example, `metering.some_name`." - -msgid "" -"The previous section uses two virtual machines - one 'control' service and " -"one 'worker'. The speed at which your application can generate fractals " -"depends on the number of workers. With just one worker, you can produce only " -"one fractal at a time. Before long, you will need more resources." -msgstr "" -"The previous section uses two virtual machines - one 'control' service and " -"one 'worker'. The speed at which your application can generate fractals " -"depends on the number of workers. With just one worker, you can produce only " -"one fractal at a time. Before long, you will need more resources." - -msgid "" -"The rest of this tutorial will not reference the all-in-one instance you " -"created in section one. Take a moment to delete this instance." -msgstr "" -"The rest of this tutorial will not reference the all-in-one instance you " -"created in section one. Take a moment to delete this instance." - -msgid "The samples and the statistics are listed in opposite time order!" -msgstr "The samples and the statistics are listed in opposite time order!" - -msgid "The second application is an OpenStack application that enables you to:" -msgstr "" -"The second application is an OpenStack application that enables you to:" - -msgid "The shade framework can select and assign a free floating IP quickly" -msgstr "The shade framework can select and assign a free floating IP quickly" - -msgid "" -"The sheer number of requests means that some requests for fractals might not " -"make it to the message queue for processing. To ensure that you can cope " -"with demand, you must also scale out the API capability of the Fractals " -"application." -msgstr "" -"The sheer number of requests means that some requests for fractals might not " -"make it to the message queue for processing. To ensure that you can cope " -"with demand, you must also scale out the API capability of the Fractals " -"application." - -msgid "The stack automatically creates a Nova instance, as follows:" -msgstr "The stack automatically creates a Nova instance, as follows:" - -msgid "" -"The stack reports an initial :code:`CREATE_IN_PROGRESS` status. When all " -"software is installed, the status changes to :code:`CREATE_COMPLETE`." -msgstr "" -"The stack reports an initial :code:`CREATE_IN_PROGRESS` status. When all " -"software is installed, the status changes to :code:`CREATE_COMPLETE`." - -msgid "" -"The stack we will be building uses the firing of alarms to control the " -"addition or removal of worker instances." -msgstr "" -"The stack we will be building uses the firing of alarms to control the " -"addition or removal of worker instances." - -msgid "The transport URL of the messaging service." -msgstr "The transport URL of the messaging service." - -msgid "The unique identifier (UUID) of the image" -msgstr "The unique identifier (UUID) of the image" - -msgid "The value of a meter is regularly sampled and saved with a timestamp." -msgstr "The value of a meter is regularly sampled and saved with a timestamp." - -msgid "" -"The worker service consumes messages from the work queue and then processes " -"them to create the corresponding fractal image file." -msgstr "" -"The worker service consumes messages from the work queue and then processes " -"them to create the corresponding fractal image file." - -msgid "" -"The world is running out of IPv4 addresses. If you get the \"No more IP " -"addresses available on network\" error, contact your cloud administrator. " -"You may also want to ask about IPv6 :)" -msgstr "" -"The world is running out of IPv4 addresses. If you get the \"No more IP " -"addresses available on network\" error, contact your cloud administrator. " -"You may also want to ask about IPv6 :)" - -msgid "Then attach it to the instance:" -msgstr "Then attach it to the instance:" - -msgid "Then request an IP number be allocated from the pool." -msgstr "Then request an IP number be allocated from the pool." - -msgid "Then, create a pair of large fractals:" -msgstr "Then, create a pair of large fractals:" - -msgid "" -"There are also multiple storage back ends (to store the generated fractal " -"images) and a database component (to store the state of tasks), but we will " -"talk about those in :doc:`/durability` and :doc:`/block_storage` " -"respectively." -msgstr "" -"There are also multiple storage back ends (to store the generated fractal " -"images) and a database component (to store the state of tasks), but we will " -"talk about those in :doc:`/durability` and :doc:`/block_storage` " -"respectively." - -msgid "" -"There are definite advantages to this architecture. It is easy to get a \"new" -"\" server, without any of the issues that inevitably arise when a server has " -"been up and running for months, or even years." -msgstr "" -"There are definite advantages to this architecture. It is easy to get a \"new" -"\" server, without any of the issues that inevitably arise when a server has " -"been up and running for months, or even years." - -msgid "" -"There are more commands available; find out more details about them with :" -"code:`faafo get --help`, :code:`faafo list --help`, and :code:`faafo delete " -"--help`." -msgstr "" -"There are more commands available; find out more details about them with :" -"code:`faafo get --help`, :code:`faafo list --help`, and :code:`faafo delete " -"--help`." - -msgid "" -"These demonstrate how the Ceilometer alarms add and remove instances. To use " -"them:" -msgstr "" -"These demonstrate how the Ceilometer alarms add and remove instances. To use " -"them:" - -msgid "These queries provide a view into the behavior of the stack." -msgstr "These queries provide a view into the behaviour of the stack." - -msgid "" -"These saved samples are aggregated to produce a statistic. The statistic " -"that we are interested in is **avg**: the average of the samples over a " -"given period." -msgstr "" -"These saved samples are aggregated to produce a statistic. The statistic " -"that we are interested in is **avg**: the average of the samples over a " -"given period." - -msgid "" -"These services are client-facing, so unlike the workers they do not use a " -"message queue to distribute tasks. Instead, you must introduce some kind of " -"load balancing mechanism to share incoming requests between the different " -"API services." -msgstr "" -"These services are client-facing, so unlike the workers they do not use a " -"message queue to distribute tasks. Instead, you must introduce some kind of " -"load balancing mechanism to share incoming requests between the different " -"API services." - -msgid "" -"These tools vastly reduce the effort it takes to work with large numbers of " -"servers, and also improve the ability to recreate, update, move, and " -"distribute applications." -msgstr "" -"These tools vastly reduce the effort it takes to work with large numbers of " -"servers, and also improve the ability to recreate, update, move, and " -"distribute applications." - -msgid "" -"This OpenStack Database service is not installed in many clouds right now, " -"but if your cloud supports it, it can make your life a lot easier when " -"working with databases." -msgstr "" -"This OpenStack Database service is not installed in many clouds right now, " -"but if your cloud supports it, it can make your life a lot easier when " -"working with databases." - -msgid "This adds a \"foo\" key to the metadata that has a value of \"bar\"." -msgstr "This adds a \"foo\" key to the metadata that has a value of \"bar\"." - -msgid "" -"This chapter explains the importance of durability and scalability for your " -"cloud-based applications. In most cases, really achieving these qualities " -"means automating tasks such as scaling and other operational tasks." -msgstr "" -"This chapter explains the importance of durability and scalability for your " -"cloud-based applications. In most cases, really achieving these qualities " -"means automating tasks such as scaling and other operational tasks." - -msgid "" -"This chapter introduces the Networking API. This will enable us to build " -"networking topologies that separate public traffic accessing the application " -"from traffic between the API and the worker components. We also introduce " -"load balancing for resilience, and create a secure back-end network for " -"communication between the database, web server, file storage, and worker " -"components." -msgstr "" -"This chapter introduces the Networking API. This will enable us to build " -"networking topologies that separate public traffic accessing the application " -"from traffic between the API and the worker components. We also introduce " -"load balancing for resilience, and create a secure back-end network for " -"communication between the database, web server, file storage, and worker " -"components." - -msgid "This code returns output like this:" -msgstr "This code returns output like this:" - -msgid "This code returns the floating IP address:" -msgstr "This code returns the floating IP address:" - -msgid "" -"This command returns a very long list of meters. Once a meter is created, it " -"is never thrown away!" -msgstr "" -"This command returns a very long list of meters. Once a meter is created, it " -"is never thrown away!" - -msgid "This document has not yet been completed for the .NET SDK." -msgstr "This document has not yet been completed for the .NET SDK." - -msgid "This document has not yet been completed for the fog SDK." -msgstr "This document has not yet been completed for the fog SDK." - -msgid "This document has not yet been completed for the php-opencloud SDK." -msgstr "This document has not yet been completed for the php-opencloud SDK." - -msgid "" -"This file contains all the code from this tutorial section. This class lets " -"you view and run the code." -msgstr "" -"This file contains all the code from this tutorial section. This class lets " -"you view and run the code." - -msgid "" -"This file contains all the code from this tutorial section. This " -"comprehensive code sample lets you view and run the code as a single script." -msgstr "" -"This file contains all the code from this tutorial section. This " -"comprehensive code sample lets you view and run the code as a single script." - -msgid "This gets an IP address that you can assign to your instance:" -msgstr "This gets an IP address that you can assign to your instance:" - -msgid "" -"This guide is for experienced software developers who want to deploy " -"applications to OpenStack clouds." -msgstr "" -"This guide is for experienced software developers who want to deploy " -"applications to OpenStack clouds." - -msgid "" -"This is a `useful pattern `_ for many cloud applications that have long lists of requests coming " -"in and a pool of resources from which to service them. This also means that " -"a worker may crash and the tasks will be processed by other workers." -msgstr "" -"This is a `useful pattern `_ for many cloud applications that have long lists of requests coming " -"in and a pool of resources from which to service them. This also means that " -"a worker may crash and the tasks will be processed by other workers." - -msgid "" -"This option also uses a bit stream to upload the file, iterating bit by bit " -"over the file and passing those bits to Object Storage as they come. " -"Compared to loading the entire file in memory and then sending it, this " -"method is more efficient, especially for larger files." -msgstr "" -"This option also uses a bit stream to upload the file, iterating bit by bit " -"over the file and passing those bits to Object Storage as they come. " -"Compared to loading the entire file in memory and then sending it, this " -"method is more efficient, especially for larger files." - -msgid "" -"This process was obviously a very manual one. Figuring out that we needed " -"more workers and then starting new ones required some effort. Ideally the " -"system would do this itself. If you build your application to detect these " -"situations, you can have it automatically request and remove resources, " -"which saves you the effort of doing this work yourself. Instead, the " -"OpenStack Orchestration service can monitor load and start instances, as " -"appropriate. To find out how to set that up, see :doc:`orchestration`." -msgstr "" -"This process was obviously a very manual one. Figuring out that we needed " -"more workers and then starting new ones required some effort. Ideally the " -"system would do this itself. If you build your application to detect these " -"situations, you can have it automatically request and remove resources, " -"which saves you the effort of doing this work yourself. Instead, the " -"OpenStack Orchestration service can monitor load and start instances, as " -"appropriate. To find out how to set that up, see :doc:`orchestration`." - -msgid "" -"This section assumes that your cloud provider has implemented the OpenStack " -"Networking API (neutron). Users of clouds which have implemented legacy " -"networking (nova-network) will have access to networking via the Compute " -"API. Log in to the Horizon dashboard and navigate to :guilabel:`Project-" -">Access & Security->API Access`. If you see a service endpoint for the " -"Network API, your cloud is most likely running the Networking API. If you " -"are still in doubt, ask your cloud provider for more information." -msgstr "" -"This section assumes that your cloud provider has implemented the OpenStack " -"Networking API (neutron). Users of clouds which have implemented legacy " -"networking (nova-network) will have access to networking via the Compute " -"API. Log in to the Horizon dashboard and navigate to :guilabel:`Project-" -">Access & Security->API Access`. If you see a service endpoint for the " -"Network API, your cloud is most likely running the Networking API. If you " -"are still in doubt, ask your cloud provider for more information." - -msgid "" -"This section continues to illustrate the separation of services onto " -"multiple instances and highlights some of the choices that we have made that " -"facilitate scalability in the application architecture." -msgstr "" -"This section continues to illustrate the separation of services onto " -"multiple instances and highlights some of the choices that we have made that " -"facilitate scalability in the application architecture." - -msgid "This section explores options for expanding the sample application." -msgstr "This section explores options for expanding the sample application." - -msgid "This section has not yet been completed for the .NET SDK" -msgstr "This section has not yet been completed for the .NET SDK" - -msgid "This section has not yet been completed for the .NET SDK." -msgstr "This section has not yet been completed for the .NET SDK." - -msgid "This section has not yet been completed for the OpenStack SDK." -msgstr "This section has not yet been completed for the OpenStack SDK." - -msgid "This section has not yet been completed for the PHP-OpenCloud SDK." -msgstr "This section has not yet been completed for the PHP-OpenCloud SDK." - -msgid "This section has not yet been completed for the fog SDK." -msgstr "This section has not yet been completed for the fog SDK." - -msgid "This section has not yet been completed for the pkgcloud SDK." -msgstr "This section has not yet been completed for the pkgcloud SDK." - -msgid "" -"This section introduces block storage, also known as volume storage, which " -"provides access to persistent storage devices. You interact with block " -"storage by attaching volumes to running instances just as you might attach a " -"USB drive to a physical server. You can detach volumes from one instance and " -"reattach them to another instance and the data remains intact. The OpenStack " -"Block Storage (cinder) project implements block storage." -msgstr "" -"This section introduces block storage, also known as volume storage, which " -"provides access to persistent storage devices. You interact with block " -"storage by attaching volumes to running instances just as you might attach a " -"USB drive to a physical server. You can detach volumes from one instance and " -"reattach them to another instance and the data remains intact. The OpenStack " -"Block Storage (Cinder) project implements block storage." - -msgid "This section introduces object storage." -msgstr "This section introduces object storage." - -msgid "" -"This section introduces some operational concepts and tasks to developers " -"who have not written cloud applications before." -msgstr "" -"This section introduces some operational concepts and tasks to developers " -"who have not written cloud applications before." - -msgid "" -"This section introduces the `HOT templating language `_, and takes you through some " -"common OpenStack Orchestration calls." -msgstr "" -"This section introduces the `HOT templating language `_, and takes you through some " -"common OpenStack Orchestration calls." - -msgid "" -"This section introduces the application architecture and explains how it was " -"designed to take advantage of cloud features in general and OpenStack in " -"particular. It also describes some commands in the previous section." -msgstr "" -"This section introduces the application architecture and explains how it was " -"designed to take advantage of cloud features in general and OpenStack in " -"particular. It also describes some commands in the previous section." - -msgid "" -"This section is based on the Neutron LBaaS API version 1.0 https://docs." -"openstack.org/admin-guide/networking_adv-features.html#basic-load-balancer-" -"as-a-service-operations" -msgstr "" -"This section is based on the Neutron LBaaS API version 1.0 https://docs." -"openstack.org/admin-guide/networking_adv-features.html#basic-load-balancer-" -"as-a-service-operations" - -msgid "This section is incomplete. Please help us finish it!" -msgstr "This section is incomplete. Please help us finish it!" - -msgid "" -"This tutorial shows two applications. The first application is a simple " -"fractal generator that uses mathematical equations to generate beautiful " -"`fractal images `_. We show you this " -"application in its entirety so that you can compare it to a second, more " -"robust, application." -msgstr "" -"This tutorial shows two applications. The first application is a simple " -"fractal generator that uses mathematical equations to generate beautiful " -"`fractal images `_. We show you this " -"application in its entirety so that you can compare it to a second, more " -"robust, application." - -msgid "" -"Though you might have configured Object Storage to store images, the Fractal " -"application needs a database to track the location of, and parameters that " -"were used to create, images in Object Storage. This database server cannot " -"fail." -msgstr "" -"Though you might have configured Object Storage to store images, the Fractal " -"application needs a database to track the location of, and parameters that " -"were used to create, images in Object Storage. This database server cannot " -"fail." - -msgid "" -"To begin to store objects, we must first make a container. Call yours :code:" -"`fractals`:" -msgstr "" -"To begin to store objects, we must first make a container. Call yours :code:" -"`fractals`:" - -msgid "" -"To better understand how the template works, use this guide to install the " -"'ceilometer' command-line client:" -msgstr "" -"To better understand how the template works, use this guide to install the " -"'ceilometer' command-line client:" - -msgid "" -"To configure shade using a profile, use your credentials above to specify " -"the cloud provider name, username, password, project name, and region name " -"in the file :file:`~/.config/openstack/clouds.yml`." -msgstr "" -"To configure shade using a profile, use your credentials above to specify " -"the cloud provider name, username, password, project name, and region name " -"in the file :file:`~/.config/openstack/clouds.yml`." - -msgid "To create a floating IP address to use with your instance:" -msgstr "To create a floating IP address to use with your instance:" - -msgid "" -"To delete a container, you must first remove all objects from the container. " -"Otherwise, the delete operation fails:" -msgstr "" -"To delete a container, you must first remove all objects from the container. " -"Otherwise, the delete operation fails:" - -msgid "To detach and delete a volume:" -msgstr "To detach and delete a volume:" - -msgid "To determine whether a public IP address is assigned to your instance:" -msgstr "To determine whether a public IP address is assigned to your instance:" - -msgid "To increase the overall capacity, add three workers:" -msgstr "To increase the overall capacity, add three workers:" - -msgid "" -"To install the 'trove' command-line client, see `Install the OpenStack " -"command-line clients `_." -msgstr "" -"To install the 'trove' command-line client, see `Install the OpenStack " -"command-line clients `_." - -msgid "" -"To install the OpenStack .NET SDK, use the NeGet Package Manager that is " -"included with Visual Studio and Xamarin Studio. You simply add a package " -"named 'openstack.net' and the NeGet Package Manager automatically installs " -"the necessary dependencies." -msgstr "" -"To install the OpenStack .NET SDK, use the NeGet Package Manager that is " -"included with Visual Studio and Xamarin Studio. You simply add a package " -"named 'openstack.net' and the NeGet Package Manager automatically installs " -"the necessary dependencies." - -msgid "To interact with the cloud, you must also have" -msgstr "To interact with the cloud, you must also have" - -msgid "" -"To launch an instance, you choose a flavor and an image. The flavor " -"represents the size of the instance, including the number of CPUs and amount " -"of RAM and disk space. An image is a prepared OS installation from which you " -"clone your instance. When you boot instances in a public cloud, larger " -"flavors can be more expensive than smaller ones in terms of resources and " -"monetary cost." -msgstr "" -"To launch an instance, you choose a flavour and an image. The flavour " -"represents the size of the instance, including the number of CPUs and amount " -"of RAM and disk space. An image is a prepared OS installation from which you " -"clone your instance. When you boot instances in a public cloud, larger " -"flavours can be more expensive than smaller ones in terms of resources and " -"monetary cost." - -msgid "" -"To learn about auto-scaling with the Orchestration API, read these articles:" -msgstr "" -"To learn about auto-scaling with the Orchestration API, read these articles:" - -msgid "" -"To learn about the template syntax for OpenStack Orchestration, how to " -"create basic templates, and their inputs and outputs, see `Heat " -"Orchestration Template (HOT) Guide `_." -msgstr "" -"To learn about the template syntax for OpenStack Orchestration, how to " -"create basic templates, and their inputs and outputs, see `Heat " -"Orchestration Template (HOT) Guide `_." - -msgid "" -"To list the images that are available in your cloud, run some API calls:" -msgstr "" -"To list the images that are available in your cloud, run some API calls:" - -msgid "To recap:" -msgstr "To recap:" - -msgid "" -"To run your application, you must launch an instance. This instance serves " -"as a virtual machine." -msgstr "" -"To run your application, you must launch an instance. This instance serves " -"as a virtual machine." - -msgid "To see if the volume creation was successful, list all volumes:" -msgstr "To see if the volume creation was successful, list all volumes:" - -msgid "" -"To see the application running, you must know where to look for it. By " -"default, your instance has outbound network access. To make your instance " -"reachable from the Internet, you need an IP address. By default in some " -"cases, your instance is provisioned with a publicly rout-able IP address. In " -"this case, you see an IP address listed under `public_ips` or `private_ips` " -"when you list the instances. If not, you must create and attach a floating " -"IP address to your instance." -msgstr "" -"To see the application running, you must know where to look for it. By " -"default, your instance has outbound network access. To make your instance " -"reachable from the Internet, you need an IP address. By default in some " -"cases, your instance is provisioned with a publicly rout-able IP address. In " -"this case, you see an IP address listed under `public_ips` or `private_ips` " -"when you list the instances. If not, you must create and attach a floating " -"IP address to your instance." - -msgid "To see whether a private IP address is assigned to your instance:" -msgstr "To see whether a private IP address is assigned to your instance:" - -msgid "To see which security groups apply to an instance, you can:" -msgstr "To see which security groups apply to an instance, you can:" - -msgid "" -"To set up environment variables for your cloud in an :file:`openrc.sh` file, " -"see `Set environment variables using the OpenStack RC file `_." -msgstr "" -"To set up environment variables for your cloud in an :file:`openrc.sh` file, " -"see `Set environment variables using the OpenStack RC file `_." - -msgid "" -"To set up the necessary variables for your cloud in an 'openrc' file, use " -"this guide:" -msgstr "" -"To set up the necessary variables for your cloud in an 'openrc' file, use " -"this guide:" - -msgid "" -"To show the details of a specific fractal use the subcommand :code:`show` of " -"the Faafo CLI." -msgstr "" -"To show the details of a specific fractal use the subcommand :code:`show` of " -"the Faafo CLI." - -msgid "" -"To test what happens when the Fractals application is under load, you can:" -msgstr "" -"To test what happens when the Fractals application is under load, you can:" - -msgid "" -"To try it out, add the following code to a Python script (or use an " -"interactive Python shell) by calling :code:`python -i`." -msgstr "" -"To try it out, add the following code to a Python script (or use an " -"interactive Python shell) by calling :code:`python -i`." - -msgid "To try it out, make a 1GB volume called 'test'." -msgstr "To try it out, make a 1GB volume called 'test'." - -msgid "" -"To try it, add the following code to a Python script (or use an interactive " -"Python shell) by calling :code:`python -i`." -msgstr "" -"To try it, add the following code to a Python script (or use an interactive " -"Python shell) by calling :code:`python -i`." - -msgid "" -"To try it, use an interactive Node.js shell by calling :code:`node` or add " -"the following code to a script." -msgstr "" -"To try it, use an interactive Node.js shell by calling :code:`node` or add " -"the following code to a script." - -msgid "" -"To use Maven to compile a downloaded sample, with the command prompt located " -"in the same directory as the :code:`pom.xml` file, enter:" -msgstr "" -"To use Maven to compile a downloaded sample, with the command prompt located " -"in the same directory as the :code:`pom.xml` file, enter:" - -msgid "" -"To use Maven to run each downloaded sample, with the command prompt located " -"in the same directory as the :code:`pom.xml` file, enter:" -msgstr "" -"To use Maven to run each downloaded sample, with the command prompt located " -"in the same directory as the :code:`pom.xml` file, enter:" - -msgid "" -"To use a floating IP, you must first allocate an IP to your project, then " -"associate it to your instance's network interface." -msgstr "" -"To use a floating IP, you must first allocate an IP to your project, then " -"associate it to your instance's network interface." - -msgid "" -"To use the OpenStack .NET SDK, add the following code in the required " -"namespace section." -msgstr "" -"To use the OpenStack .NET SDK, add the following code in the required " -"namespace section." - -msgid "To verify that ceilometer is installed, list the known meters:" -msgstr "To verify that Ceilometer is installed, list the known meters:" - -msgid "URL" -msgstr "URL" - -msgid "" -"Use :code:`ex_list_floating_ip_pools()` and select the first floating IP " -"address pool. Allocate this pool to your project and use it to get a " -"floating IP address." -msgstr "" -"Use :code:`ex_list_floating_ip_pools()` and select the first floating IP " -"address pool. Allocate this pool to your project and use it to get a " -"floating IP address." - -msgid "" -"Use :code:`getFloatingIps` to check for unused addresses. Select the first " -"available address. Otherwise, use :code:`allocateNewFloatingIp` to allocate " -"a floating IP to your project from the default address pool." -msgstr "" -"Use :code:`getFloatingIps` to check for unused addresses. Select the first " -"available address. Otherwise, use :code:`allocateNewFloatingIp` to allocate " -"a floating IP to your project from the default address pool." - -msgid "Use Block Storage for the Fractal database server" -msgstr "Use Block Storage for the Fractal database server" - -msgid "Use Object Storage instead of a database" -msgstr "Use Object Storage instead of a database" - -msgid "Use Object Storage to store fractals" -msgstr "Use Object Storage to store fractals" - -msgid "Use Object and Block storage for file and database persistence." -msgstr "Use Object and Block storage for file and database persistence." - -msgid "Use Orchestration services to automatically adjust to the environment." -msgstr "Use Orchestration services to automatically adjust to the environment." - -msgid "" -"Use SSH with the existing SSH keypair to log in to the :code:`app-" -"controller` controller instance." -msgstr "" -"Use SSH with the existing SSH keypair to log in to the :code:`app-" -"controller` controller instance." - -msgid "" -"Use a for loop to call the :code:`faafo` command-line interface to request a " -"random set of fractals 500 times:" -msgstr "" -"Use a for loop to call the :code:`faafo` command-line interface to request a " -"random set of fractals 500 times:" - -msgid "Use conf.d and etc.d." -msgstr "Use conf.d and etc.d." - -msgid "Use environment variables to set your cloud credentials" -msgstr "Use environment variables to set your cloud credentials" - -msgid "" -"Use network service client to select the first floating IP address pool. " -"Allocate this pool to your project and use it to get a floating IP address." -msgstr "" -"Use network service client to select the first floating IP address pool. " -"Allocate this pool to your project and use it to get a floating IP address." - -msgid "Use the :code:`faafo UUID` command to examine some of the fractals." -msgstr "Use the :code:`faafo UUID` command to examine some of the fractals." - -msgid "Use the :code:`faafo create` command to generate fractals." -msgstr "Use the :code:`faafo create` command to generate fractals." - -msgid "" -"Use the :code:`faafo list` command to watch the progress of fractal " -"generation." -msgstr "" -"Use the :code:`faafo list` command to watch the progress of fractal " -"generation." - -msgid "" -"Use the `Health Endpoint Monitoring Pattern ` to implement functional checks within your " -"application that external tools can access through exposed endpoints at " -"regular intervals." -msgstr "" -"Use the `Health Endpoint Monitoring Pattern ` to implement functional checks within your " -"application that external tools can access through exposed endpoints at " -"regular intervals." - -msgid "" -"Use the image, flavor, key pair, and userdata to create an instance. After " -"you request the instance, wait for it to build." -msgstr "" -"Use the image, flavour, key pair, and userdata to create an instance. After " -"you request the instance, wait for it to build." - -msgid "Use the stack ID to get more information about the stack:" -msgstr "Use the stack ID to get more information about the stack:" - -msgid "" -"Use this guide to install the 'openstack' command-line client: https://docs." -"openstack.org/cli-reference/common/" -"cli_install_openstack_command_line_clients.html#install-the-clients" -msgstr "" -"Use this guide to install the 'openstack' command-line client: https://docs." -"openstack.org/cli-reference/common/" -"cli_install_openstack_command_line_clients.html#install-the-clients" - -msgid "" -"Use this guide to set up the necessary variables for your cloud in an " -"'openrc' file: https://docs.openstack.org/cli-reference/common/" -"cli_set_environment_variables_using_openstack_rc.html" -msgstr "" -"Use this guide to set up the necessary variables for your cloud in an " -"'openrc' file: https://docs.openstack.org/cli-reference/common/" -"cli_set_environment_variables_using_openstack_rc.html" - -msgid "" -"Use your credentials above to specify the cloud provider name, username, " -"password, project_name and region_name in the file :file:`~/.config/" -"openstack/clouds.yml`." -msgstr "" -"Use your credentials above to specify the cloud provider name, username, " -"password, project_name and region_name in the file :file:`~/.config/" -"openstack/clouds.yml`." - -msgid "Use your selected image and flavor to create an instance." -msgstr "Use your selected image and flavour to create an instance." - -msgid "User data in openstacksdk must be encoded to Base64" -msgstr "User data in openstacksdk must be encoded to Base64" - -msgid "User data in openstacksdk must be encoded to Base64." -msgstr "User data in openstacksdk must be encoded to Base64." - -msgid "" -"Userdata. During instance creation, you can provide userdata to OpenStack to " -"configure instances after they boot. The cloud-init service applies the user " -"data to an instance. You must pre-install the cloud-init service on your " -"chosen image. We will go into more detail in :doc:`/introduction`." -msgstr "" -"Userdata. During instance creation, you can provide userdata to OpenStack to " -"configure instances after they boot. The cloud-init service applies the user " -"data to an instance. You must pre-install the cloud-init service on your " -"chosen image. We will go into more detail in :doc:`/introduction`." - -msgid "Using Pacemaker to look at the API." -msgstr "Using Pacemaker to look at the API." - -msgid "Values" -msgstr "Values" - -msgid "Verify that the stack was successfully created:" -msgstr "Verify that the stack was successfully created:" - -msgid "Verify that we have had an impact" -msgstr "Verify that we have had an impact" - -msgid "Verify the nova instance was deleted when the stack was removed:" -msgstr "Verify the Nova instance was deleted when the stack was removed:" - -msgid "Wait for it to reach the :code:`CREATE_COMPLETE` status:" -msgstr "Wait for it to reach the :code:`CREATE_COMPLETE` status:" - -msgid "" -"Watch :code:`top` on the worker instance. Right after calling :code:`faafo` " -"the :code:`faafo-worker` process should start consuming a lot of CPU cycles." -msgstr "" -"Watch :code:`top` on the worker instance. Right after calling :code:`faafo` " -"the :code:`faafo-worker` process should start consuming a lot of CPU cycles." - -msgid "" -"We are interested because the Telemetry service supports alarms: an alarm is " -"fired when our average statistic breaches a configured threshold. When the " -"alarm fires, an associated action is performed." -msgstr "" -"We are interested because the Telemetry service supports alarms: an alarm is " -"fired when our average statistic breaches a configured threshold. When the " -"alarm fires, an associated action is performed." - -msgid "" -"We assume that you can already access an OpenStack cloud. You must have a " -"project, also known as a tenant, with a minimum quota of six instances. " -"Because the Fractals application runs in Ubuntu, Debian, Fedora-based, and " -"openSUSE-based distributions, you must create instances that use one of " -"these operating systems." -msgstr "" -"We assume that you can already access an OpenStack cloud. You must have a " -"project, also known as a tenant, with a minimum quota of six instances. " -"Because the Fractals application runs in Ubuntu, Debian, Fedora-based, and " -"openSUSE-based distributions, you must create instances that use one of " -"these operating systems." - -msgid "We cover networking in detail in :doc:`/networking`." -msgstr "We cover networking in detail in :doc:`/networking`." - -msgid "" -"We explained image and flavor in :doc:`getting_started`, so in the following " -"sections, we will explain the other parameters in detail, including :code:" -"`ex_userdata` (cloud-init) and :code:`ex_keyname` (key pairs)." -msgstr "" -"We explained image and flavour in :doc:`getting_started`, so in the " -"following sections, we will explain the other parameters in detail, " -"including :code:`ex_userdata` (cloud-init) and :code:`ex_keyname` (key " -"pairs)." - -msgid "We have created a Maven POM file to help you get started." -msgstr "We have created a Maven POM file to help you get started." - -msgid "" -"We have not quite figured out how to stop using a database, but the general " -"steps are:" -msgstr "" -"We have not quite figured out how to stop using a database, but the general " -"steps are:" - -msgid "" -"We have talked about separating functions into different micro-services, and " -"how that enables us to make use of the cloud architecture. Now let us see " -"that in action." -msgstr "" -"We have talked about separating functions into different micro-services, and " -"how that enables us to make use of the cloud architecture. Now let us see " -"that in action." - -msgid "What you need" -msgstr "What you need" - -msgid "What you will learn" -msgstr "What you will learn" - -msgid "" -"When an SSH public key is provided during instance creation, cloud-init " -"installs this key on a user account. (The user name varies between cloud " -"images.) See the `Obtaining Images `_ section of the image guide for guidance about which " -"user name you should use when SSHing. If you still have problems logging in, " -"ask your cloud provider to confirm the user name." -msgstr "" -"When an SSH public key is provided during instance creation, cloud-init " -"installs this key on a user account. (The user name varies between cloud " -"images.) See the `Obtaining Images `_ section of the image guide for guidance about which " -"user name you should use when SSHing. If you still have problems logging in, " -"ask your cloud provider to confirm the user name." - -msgid "" -"When the instance boots, the `ex_userdata` variable value instructs the " -"instance to deploy the Fractals application." -msgstr "" -"When the instance boots, the `ex_userdata` variable value instructs the " -"instance to deploy the Fractals application." - -msgid "" -"When you create an instance for the application, you want to give it a bit " -"more information than you supplied to the bare instance that you just " -"created and deleted. We will go into more detail in later sections, but for " -"now, simply create the following resources so that you can feed them to the " -"instance:" -msgstr "" -"When you create an instance for the application, you want to give it a bit " -"more information than you supplied to the bare instance that you just " -"created and deleted. We will go into more detail in later sections, but for " -"now, simply create the following resources so that you can feed them to the " -"instance:" - -msgid "" -"When you deal with pets, you name and care for them. If they get sick, you " -"nurse them back to health, which can be difficult and very time consuming. " -"When you deal with cattle, you attach a numbered tag to their ear. If they " -"get sick, you put them down and move on." -msgstr "" -"When you deal with pets, you name and care for them. If they get sick, you " -"nurse them back to health, which can be difficult and very time consuming. " -"When you deal with cattle, you attach a numbered tag to their ear. If they " -"get sick, you put them down and move on." - -msgid "" -"While this stack starts a single instance that builds and runs the Fractal " -"application as an all-in-one installation, you can make very complicated " -"templates that impact dozens of instances or that add and remove instances " -"on demand. Continue to the next section to learn more." -msgstr "" -"While this stack starts a single instance that builds and runs the Fractal " -"application as an all-in-one installation, you can make very complicated " -"templates that impact dozens of instances or that add and remove instances " -"on demand. Continue to the next section to learn more." - -msgid "Who should read this guide" -msgstr "Who should read this guide" - -msgid "" -"With multiple workers producing fractals as fast as they can, the system " -"must be able to receive the requests for fractals as quickly as possible. If " -"our application becomes popular, many thousands of users might connect to " -"our API to generate fractals." -msgstr "" -"With multiple workers producing fractals as fast as they can, the system " -"must be able to receive the requests for fractals as quickly as possible. If " -"our application becomes popular, many thousands of users might connect to " -"our API to generate fractals." - -msgid "" -"With the OpenStack Networking API, the workflow for creating a network " -"topology that separates the public-facing Fractals app API from the worker " -"back end is as follows:" -msgstr "" -"With the OpenStack Networking API, the workflow for creating a network " -"topology that separates the public-facing Fractals app API from the worker " -"back end is as follows:" - -msgid "" -"With the Orchestration API, the Fractal application can create an auto-" -"scaling group for all parts of the application, to dynamically provision " -"more compute resources during periods of heavy utilization, and also " -"terminate compute instances to scale down, as demand decreases." -msgstr "" -"With the Orchestration API, the Fractal application can create an auto-" -"scaling group for all parts of the application, to dynamically provision " -"more compute resources during periods of heavy utilisation, and also " -"terminate compute instances to scale down, as demand decreases." - -msgid "" -"With the addition of the load balancer, the Fractal app's networking " -"topology now reflects the modular nature of the application itself." -msgstr "" -"With the addition of the load balancer, the Fractal app's networking " -"topology now reflects the modular nature of the application itself." - -msgid "Work with stacks: Advanced" -msgstr "Work with stacks: Advanced" - -msgid "Work with stacks: Basics" -msgstr "Work with stacks: Basics" - -msgid "Work with the CLI" -msgstr "Work with the CLI" - -msgid "Work with the OpenStack Database service" -msgstr "Work with the OpenStack Database service" - -msgid "" -"Wow! If you have made it through this section, you know more than the " -"authors of this guide know about working with OpenStack clouds." -msgstr "" -"Wow! If you have made it through this section, you know more than the " -"authors of this guide know about working with OpenStack clouds." - -msgid "Writing your first OpenStack application" -msgstr "Writing your first OpenStack application" - -msgid "" -"You also need a security group to permit access to the database server (for " -"MySQL, port 3306) from the network:" -msgstr "" -"You also need a security group to permit access to the database server (for " -"MySQL, port 3306) from the network:" - -msgid "" -"You are ready to create members for the load balancer pool, which reference " -"the floating IPs:" -msgstr "" -"You are ready to create members for the load balancer pool, which reference " -"the Floating IPs:" - -msgid "" -"You can aggregate samples and calculate statistics across all instances with " -"the `metering.some_name` metadata that has `some_value` by using a query of " -"the form:" -msgstr "" -"You can aggregate samples and calculate statistics across all instances with " -"the `metering.some_name` metadata that has `some_value` by using a query of " -"the form:" - -msgid "" -"You can also download the OpenStack RC file from the OpenStack Horizon " -"dashboard. Log in to the dashboard and click :guilabel:`Project->Access & " -"Security->API Access->Download OpenStack RC file`. If you use this method, " -"be aware that the \"auth URL\" does not include the path. For example, if " -"your :file:`openrc.sh` file shows:" -msgstr "" -"You can also download the OpenStack RC file from the OpenStack Horizon " -"dashboard. Log in to the dashboard and click :guilabel:`Project->Access & " -"Security->API Access->Download OpenStack RC file`. If you use this method, " -"be aware that the \"auth URL\" does not include the path. For example, if " -"your :file:`openrc.sh` file shows:" - -msgid "You can also get information about available flavors:" -msgstr "You can also get information about available flavours:" - -msgid "" -"You can also use the OpenStack API to create snapshots of running instances " -"and persistent volumes. For more information, see your SDK documentation." -msgstr "" -"You can also use the OpenStack API to create snapshots of running instances " -"and persistent volumes. For more information, see your SDK documentation." - -msgid "" -"You can complete advanced tasks such as uploading an object with metadata, " -"as shown in following example. For more information, see the documentation " -"for your SDK." -msgstr "" -"You can complete advanced tasks such as uploading an object with metadata, " -"as shown in following example. For more information, see the documentation " -"for your SDK." - -msgid "" -"You can detach the volume and reattach it elsewhere, or use the following " -"steps to delete the volume." -msgstr "" -"You can detach the volume and reattach it elsewhere, or use the following " -"steps to delete the volume." - -msgid "You can list available security groups with:" -msgstr "You can list available security groups with:" - -msgid "You can then attach it to the instance:" -msgstr "You can then attach it to the instance:" - -msgid "" -"You create stacks from templates, which contain resources. Resources are an " -"abstraction in the HOT (Heat Orchestration Template) template language, " -"which enables you to define different cloud resources by setting the :code:" -"`type` attribute." -msgstr "" -"You create stacks from templates, which contain resources. Resources are an " -"abstraction in the HOT (Heat Orchestration Template) template language, " -"which enables you to define different cloud resources by setting the :code:" -"`type` attribute." - -msgid "" -"You might have to run the :command:`openstack stack list` command a few " -"times before the stack creation is complete." -msgstr "" -"You might have to run the :command:`openstack stack list` command a few " -"times before the stack creation is complete." - -msgid "" -"You might want to use multiple clouds, such as a private cloud inside your " -"organization and a public cloud. This section attempts to do exactly that." -msgstr "" -"You might want to use multiple clouds, such as a private cloud inside your " -"organization and a public cloud. This section attempts to do exactly that." - -msgid "You must pass in objects and not object names to the delete commands." -msgstr "You must pass in objects and not object names to the delete commands." - -msgid "" -"You need a server for the dedicated database. Use the image, flavor, and " -"keypair that you used in :doc:`/getting_started` to launch an :code:`app-" -"database` instance." -msgstr "" -"You need a server for the dedicated database. Use the image, flavour, and " -"keypair that you used in :doc:`/getting_started` to launch an :code:`app-" -"database` instance." - -msgid "You pass in these configuration settings as parameters:" -msgstr "You pass in these configuration settings as parameters:" - -msgid "You should be able to see them in the member list:" -msgstr "You should be able to see them in the member list:" - -msgid "" -"You should be fairly confident about starting instances and distributing " -"services from an application among these instances." -msgstr "" -"You should be fairly confident about starting instances and distributing " -"services from an application among these instances." - -msgid "" -"You should now be able to see this container appear in a listing of all " -"containers in your account:" -msgstr "" -"You should now be able to see this container appear in a listing of all " -"containers in your account:" - -msgid "" -"You should now be fairly confident working with Block Storage volumes. For " -"information about other calls, see the volume documentation for your SDK. " -"Or, try one of these tutorial steps:" -msgstr "" -"You should now be fairly confident working with Block Storage volumes. For " -"information about other calls, see the volume documentation for your SDK. " -"Or, try one of these tutorial steps:" - -msgid "" -"You should now be fairly confident working with Object Storage. You can find " -"more information about the Object Storage SDK calls at:" -msgstr "" -"You should now be fairly confident working with Object Storage. You can find " -"more information about the Object Storage SDK calls at:" - -msgid "" -"You should now be fairly confident working with the Network API. To see " -"calls that we did not cover, see the volume documentation of your SDK, or " -"try one of these tutorial steps:" -msgstr "" -"You should now be fairly confident working with the Network API. To see " -"calls that we did not cover, see the volume documentation of your SDK, or " -"try one of these tutorial steps:" - -msgid "" -"You should now be fairly confident working with the Orchestration service. " -"To see the calls that we did not cover and more, see the volume " -"documentation of your SDK. Or, try one of these steps in the tutorial:" -msgstr "" -"You should now be fairly confident working with the Orchestration service. " -"To see the calls that we did not cover and more, see the volume " -"documentation of your SDK. Or, try one of these steps in the tutorial:" - -msgid "" -"You should now have a basic understanding of the architecture of cloud-based " -"applications. In addition, you have had practice starting new instances, " -"automatically configuring them at boot, and even modularizing an application " -"so that you may use multiple instances to run it. These are the basic steps " -"for requesting and using compute resources in order to run your application " -"on an OpenStack cloud." -msgstr "" -"You should now have a basic understanding of the architecture of cloud-based " -"applications. In addition, you have had practice starting new instances, " -"automatically configuring them at boot, and even modularizing an application " -"so that you may use multiple instances to run it. These are the basic steps " -"for requesting and using compute resources in order to run your application " -"on an OpenStack cloud." - -msgid "You should see output like this:" -msgstr "You should see output like this:" - -msgid "You should see output something like this:" -msgstr "You should see output something like this:" - -msgid "You should see output something like:" -msgstr "You should see output something like:" - -msgid "You should see output such as:" -msgstr "You should see output such as:" - -msgid "" -"You will progressively ramp up to use up six instances, so make sure that " -"your cloud account has the appropriate quota." -msgstr "" -"You will progressively ramp up to use up six instances, so make sure that " -"your cloud account has the appropriate quota." - -msgid "Your SDK might call an instance a 'node' or 'server'." -msgstr "Your SDK might call an instance a 'node' or 'server'." - -msgid "Your images and flavors will be different, of course." -msgstr "Your images and flavours will be different, of course." - -msgid "Your ssh key name" -msgstr "Your SSH key name" - -msgid "`Libcloud `_" -msgstr "`Libcloud `_" - -msgid "" -"`Micro-services `_ are an " -"important design pattern that helps achieve application modularity. " -"Separating logical application functions into independent services " -"simplifies maintenance and re-use. Decoupling components also makes it " -"easier to selectively scale individual components, as required. Further, " -"application modularity is a required feature of applications that scale out " -"well and are fault tolerant." -msgstr "" -"`Micro-services `_ are an " -"important design pattern that helps achieve application modularity. " -"Separating logical application functions into independent services " -"simplifies maintenance and re-use. Decoupling components also makes it " -"easier to selectively scale individual components, as required. Further, " -"application modularity is a required feature of applications that scale out " -"well and are fault tolerant." - -msgid "" -"`OpenStack Cloud SDK for Microsoft .NET 1.4.0.1 or later installed `_." -msgstr "" -"`OpenStack Cloud SDK for Microsoft .NET 1.4.0.1 or later installed `_." - -msgid "" -"`OpenStack Object Storage `_ (code-named swift) is open-source software that enables you to " -"create redundant, scalable data storage by using clusters of standardized " -"servers to store petabytes of accessible data. It is a long-term storage " -"system for large amounts of static data that you can retrieve, leverage, and " -"update. Unlike more traditional storage systems that you access through a " -"file system, you access Object Storage through an API." -msgstr "" -"`OpenStack Object Storage `_ (code-named swift) is open-source software that enables you to " -"create redundant, scalable data storage by using clusters of standardised " -"servers to store petabytes of accessible data. It is a long-term storage " -"system for large amounts of static data that you can retrieve, leverage, and " -"update. Unlike more traditional storage systems that you access through a " -"file system, you access Object Storage through an API." - -msgid "" -"`Phoenix Servers `_, named " -"for the mythical bird that is consumed by fire and rises from the ashes to " -"live again, make it easy to start over with new instances." -msgstr "" -"`Phoenix Servers `_, named " -"for the mythical bird that is consumed by fire and rises from the ashes to " -"live again, make it easy to start over with new instances." - -msgid "" -"`a recent version of gophercloud installed `_" -msgstr "" -"`a recent version of gophercloud installed `_" - -msgid "" -"`a recent version of php-opencloud installed `_." -msgstr "" -"`a recent version of php-opencloud installed `_." - -msgid "" -"`a recent version of shade installed `_." -msgstr "" -"`a recent version of shade installed `_." - -msgid "" -"`cloud-init `_ is a tool that " -"performs instance configuration tasks during the boot of a cloud instance, " -"and comes installed on most cloud images. :code:`ex_userdata`, which was " -"passed to :code:`create_node`, is the configuration data passed to cloud-" -"init." -msgstr "" -"`cloud-init `_ is a tool that " -"performs instance configuration tasks during the boot of a cloud instance, " -"and comes installed on most cloud images. :code:`ex_userdata`, which was " -"passed to :code:`create_node`, is the configuration data passed to cloud-" -"init." - -msgid "" -"`fog 1.19 or higher installed `_ and working with ruby gems 1.9." -msgstr "" -"`fog 1.19 or higher installed `_ and working with ruby gems 1.9." - -msgid "`fog `_" -msgstr "`fog `_" - -msgid "`gophercloud `_" -msgstr "`gophercloud `_" - -msgid "" -"`jClouds 1.8 or higher installed `_." -msgstr "" -"`jClouds 1.8 or higher installed `_." - -msgid "`jClouds `_" -msgstr "`jClouds `_" - -msgid "" -"`libcloud 0.15.1 or higher installed `_." -msgstr "" -"`libcloud 0.15.1 or higher installed `_." - -msgid "`php-opencloud `_" -msgstr "`php-opencloud `_" - -msgid "" -"`pkgcloud 1.2 or higher installed `_." -msgstr "" -"`pkgcloud 1.2 or higher installed `_." - -msgid "`pkgcloud `_" -msgstr "`pkgcloud `_" - -msgid "" -"a recent version of `OpenStackSDK `_ installed." -msgstr "" -"a recent version of `OpenStackSDK `_ installed." - -msgid "amqp://guest:guest@localhost:5672/" -msgstr "amqp://guest:guest@localhost:5672/" - -msgid "auth URL" -msgstr "auth URL" - -msgid "cloud region" -msgstr "cloud region" - -msgid "conf.d, etc.d" -msgstr "conf.d, etc.d" - -msgid "" -"fog `does support OpenStack Orchestration `_." -msgstr "" -"fog `does support OpenStack Orchestration `_." - -msgid "" -"fog `supports `_ the OpenStack Networking API, but this section has not yet been " -"completed." -msgstr "" -"fog `supports `_ the OpenStack Networking API, but this section has not yet been " -"completed." - -msgid "http://gophercloud.io/" -msgstr "http://gophercloud.io/" - -msgid "http://localhost/" -msgstr "http://localhost/" - -msgid "" -"http://php-opencloud.readthedocs.org/en/latest/getting-started-with-" -"openstack.html" -msgstr "" -"http://php-opencloud.readthedocs.org/en/latest/getting-started-with-" -"openstack.html" - -msgid "" -"https://docs.openstack.org/cli-reference/common/" -"cli_install_openstack_command_line_clients.html#install-the-clients" -msgstr "" -"https://docs.openstack.org/cli-reference/common/" -"cli_install_openstack_command_line_clients.html#install-the-clients" - -msgid "" -"https://docs.openstack.org/cli-reference/common/" -"cli_set_environment_variables_using_openstack_rc.html" -msgstr "" -"https://docs.openstack.org/cli-reference/common/" -"cli_set_environment_variables_using_openstack_rc.html" - -msgid "https://docs.openstack.org/infra/shade/" -msgstr "https://docs.openstack.org/infra/shade/" - -msgid "https://docs.openstack.org/openstacksdk/latest/" -msgstr "https://docs.openstack.org/openstacksdk/latest/" - -msgid "" -"https://github.com/fog/fog-openstack/blob/master/docs/getting_started.md" -msgstr "" -"https://github.com/fog/fog-openstack/blob/master/docs/getting_started.md" - -msgid "" -"https://github.com/fog/fog/blob/master/lib/fog/openstack/docs/storage.md" -msgstr "" -"https://github.com/fog/fog/blob/master/lib/fog/openstack/docs/storage.md" - -msgid "" -"https://github.com/pkgcloud/pkgcloud/tree/master/docs/providers/openstack" -msgstr "" -"https://github.com/pkgcloud/pkgcloud/tree/master/docs/providers/openstack" - -msgid "https://jclouds.apache.org/guides/openstack/" -msgstr "https://jclouds.apache.org/guides/openstack/" - -msgid "" -"https://libcloud.readthedocs.org/en/latest/compute/drivers/openstack.html" -msgstr "" -"https://libcloud.readthedocs.org/en/latest/compute/drivers/openstack.html" - -msgid "https://libcloud.readthedocs.org/en/latest/storage/api.html" -msgstr "https://libcloud.readthedocs.org/en/latest/storage/api.html" - -msgid "" -"https://superuser.openstack.org/articles/simple-auto-scaling-environment-" -"with-heat" -msgstr "" -"https://superuser.openstack.org/articles/simple-auto-scaling-environment-" -"with-heat" - -msgid "" -"https://superuser.openstack.org/articles/understanding-openstack-heat-auto-" -"scaling" -msgstr "" -"https://superuser.openstack.org/articles/understanding-openstack-heat-auto-" -"scaling" - -msgid "https://www.nuget.org/packages/openstack.net" -msgstr "https://www.nuget.org/packages/openstack.net" - -msgid "internal worker traffic" -msgstr "internal worker traffic" - -msgid "" -"jClouds supports the OpenStack Networking API, but section has not yet been " -"completed. Please see `this `_ in the meantime." -msgstr "" -"jClouds supports the OpenStack Networking API, but section has not yet been " -"completed. Please see `this `_ in the meantime." - -msgid "libcloud does not currently support OpenStack Orchestration." -msgstr "libcloud does not currently support OpenStack Orchestration." - -msgid "" -"libcloud support added 0.14: https://developer.rackspace.com/blog/libcloud-0-" -"dot-14-released/" -msgstr "" -"libcloud support added 0.14: https://developer.rackspace.com/blog/libcloud-0-" -"dot-14-released/" - -msgid "node.js" -msgstr "node.js" - -msgid "password" -msgstr "password" - -msgid "project ID or name (projects are also known as tenants)" -msgstr "project ID or name (projects are also known as tenants)" - -msgid "public-facing web traffic" -msgstr "public-facing web traffic" - -msgid "sqlite:////tmp/sqlite.db" -msgstr "sqlite:////tmp/sqlite.db" - -msgid "the .NET SDK does not currently support OpenStack Orchestration." -msgstr "the .NET SDK does not currently support OpenStack Orchestration." - -msgid "user name" -msgstr "user name" diff --git a/firstapp/source/locale/id/LC_MESSAGES/firstapp.po b/firstapp/source/locale/id/LC_MESSAGES/firstapp.po deleted file mode 100644 index b997579bf..000000000 --- a/firstapp/source/locale/id/LC_MESSAGES/firstapp.po +++ /dev/null @@ -1,4446 +0,0 @@ -# OpenStack Infra , 2015. #zanata -# suhartono , 2017. #zanata -# suhartono , 2018. #zanata -# suhartono , 2019. #zanata -msgid "" -msgstr "" -"Project-Id-Version: OpenStack First Application 2013.2.1.dev4245\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-04-23 14:55+0000\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2019-04-25 03:44+0000\n" -"Last-Translator: suhartono \n" -"Language: id\n" -"Plural-Forms: nplurals=1; plural=0\n" -"X-Generator: Zanata 4.3.3\n" -"Language-Team: Indonesian\n" - -msgid "**GettingStarted.java:**" -msgstr "**GettingStarted.java:**" - -msgid "**Remove the stack**" -msgstr "**Remove the stack**" - -msgid "**Show information about the stack**" -msgstr "**Show information about the stack**" - -msgid "**Stack create**" -msgstr "**Stack create**" - -msgid "**pom.xml:**" -msgstr "**pom.xml:**" - -msgid ".NET Framework" -msgstr ".NET Framework" - -msgid ":code:`-d`" -msgstr ":code:`-d`" - -msgid ":code:`-e`" -msgstr ":code:`-e`" - -msgid ":code:`-i`" -msgstr ":code:`-i`" - -msgid ":code:`-m`" -msgstr ":code:`-m`" - -msgid ":code:`-r`" -msgstr ":code:`-r`" - -msgid "" -":code:`api` (enable and start the API service), :code:`worker` (enable and " -"start the worker service), and :code:`demo` (run the demo mode to request " -"random fractals)." -msgstr "" -":code:`api` (enable and start the API service), :code:`worker` (enable and " -"start the worker service), dan :code:`demo` (run the demo mode to request " -"random fractals)." - -msgid "" -":code:`ceilometer_sample_query`: shows the samples used to build the " -"statistics." -msgstr "" -":code:`ceilometer_sample_query`: menunjukkan sampel yang digunakan untuk " -"membangun statistik." - -msgid "" -":code:`ceilometer_statistics_query`: shows the statistics used to trigger " -"the alarms." -msgstr "" -":code:`ceilometer_statistics_query`: menunjukkan statistik yang digunakan " -"untuk memicu alarm." - -msgid "" -":code:`detach_volume` and :code:`destroy_volume` take a volume object, not a " -"name." -msgstr "" -":code:`detach_volume` dan :code:`destroy_volume` ambil objek volume, bukan " -"nama." - -msgid "" -":code:`ex_create_security_group_rule()` takes ranges of ports as input. This " -"is why ports 80 and 22 are passed twice." -msgstr "" -":code:`ex_create_security_group_rule()` mengambil rentang port sebagai " -"masukan. Inilah sebabnya mengapa port 80 dan 22 dilewati dua kali." - -msgid "" -":code:`messaging` (install RabbitMQ) and :code:`faafo` (install the Faafo " -"app)." -msgstr "" -":code:`messaging` (install RabbitMQ) and :code:`faafo` (install the Faafo " -"app)." - -msgid "" -":code:`scale__workers_up_url`: A post to this url will add worker instances." -msgstr "" -":code:`scale__workers_up_url`: Post ke url ini akan menambahkan instance " -"pekerja." - -msgid "" -":code:`scale_workers_down_url`: A post to this url will remove worker " -"instances." -msgstr "" -":code:`scale_workers_down_url`: Post ke url ini akan menghapus instance " -"pekerja." - -msgid ":doc:`/advice`: Get advice about operations." -msgstr ":doc:`/advice`: Get advice about operations." - -msgid "" -":doc:`/block_storage`: Migrate the database to block storage, or use the " -"database-as-a-service component." -msgstr "" -":doc:`/block_storage`: Migrasikan database untuk memblokir penyimpanan, atau " -"gunakan komponen basis data as-a-service." - -msgid "" -":doc:`/craziness`: Learn some crazy things that you might not think to do ;)" -msgstr "" -":doc:`/craziness`: Pelajari beberapa hal gila yang mungkin tidak Anda " -"pikirkan untuk dilakukan;)" - -msgid "" -":doc:`/durability`: Learn how to use Object Storage to make your application " -"durable." -msgstr "" -":doc:`/durability`: Pelajari cara menggunakan Object Storage agar aplikasi " -"Anda awet." - -msgid "" -":doc:`/durability`: Learn how to use Object Storage to make your application " -"more durable." -msgstr "" -":doc:`/durability`: Pelajari cara menggunakan Object Storage agar aplikasi " -"Anda lebih awet." - -msgid ":doc:`/networking`: Learn about complex networking." -msgstr ":doc:`/networking`: Learn about complex networking." - -msgid ":doc:`/orchestration`: Automatically orchestrate your application." -msgstr ":doc:`/orchestration`: Automatically orchestrate your application." - -msgid ":doc:`/scaling_out`: Learn how to scale your application." -msgstr ":doc:`/scaling_out`: Pelajari bagaimana melakukan skala aplikasi Anda." - -msgid "" -"A .NET-based library. Use it to write C++ or C# code for Microsoft " -"applications." -msgstr "" -"Perpustakaan berbasis .NET. Gunakan untuk menulis kode C ++ atau C # untuk " -"aplikasi Microsoft." - -msgid "" -"A Java-based library that the Apache Foundation manages. Use it to work with " -"multiple cloud types." -msgstr "" -"Perpustakaan berbasis Java yang dikelola Apache Foundation. Gunakan untuk " -"bekerja dengan beberapa jenis awan." - -msgid "A Node.js-based SDK. Use it work with multiple clouds." -msgstr "SDK berbasis Node.js. Gunakan bekerja dengan banyak awan." - -msgid "" -"A PHP-based library. Use it to write PHP code that works with OpenStack " -"clouds." -msgstr "" -"Sebuah perpustakaan berbasis PHP. Gunakan untuk menulis kode PHP yang " -"bekerja dengan awan OpenStack." - -msgid "" -"A Python-based library developed by OpenStack Infra team. Use it to operate " -"multiple OpenStack clouds." -msgstr "" -"Perpustakaan berbasis Python yang dikembangkan oleh tim OpenStack Infra. " -"Gunakan untuk mengoperasikan beberapa awan OpenStack." - -msgid "" -"A Python-based library that the Apache Foundation manages. Use it to work " -"with multiple cloud types." -msgstr "" -"Perpustakaan berbasis Python yang dikelola Apache Foundation. Gunakan untuk " -"bekerja dengan beberapa jenis awan." - -msgid "A Ruby-based SDK. Use it to work with multiple clouds." -msgstr "SDK berbasis Ruby. Gunakan untuk bekerja dengan beberapa awan." - -msgid "A floating IP helper function" -msgstr "Fungsi pembantu IP mengambang" - -msgid "A general overview" -msgstr "Gambaran umum" - -msgid "" -"A go-based SDK. Use it to write Golang code that works with OpenStack clouds." -msgstr "" -"SDK berbasis go. Gunakan untuk menulis kode Golang yang bekerja dengan awan " -"OpenStack." - -msgid "" -"A key pair. To access your instance, you must import an SSH public key into " -"OpenStack to create a key pair. OpenStack installs this key pair on the new " -"instance. Typically, your public key is written to :code:`.ssh/id_rsa.pub`. " -"If you do not have an SSH public key file, follow `these instructions " -"`_ first. We will " -"cover these instructions in depth in :doc:`/introduction`." -msgstr "" -"Pasangan kunci Untuk mengakses instance Anda, Anda harus mengimpor kunci " -"publik SSH ke OpenStack untuk membuat pasangan kunci. OpenStack menginstal " -"pasangan kunci ini pada instance baru. Biasanya, kunci publik Anda ditulis " -"ke :code:`.ssh/id_rsa.pub`. Jika Anda tidak memiliki file kunci publik SSH, " -"ikuti `these instructions `_ sebelumnya. Kami akan membahas instruksi ini secara mendalam :doc:`/" -"introduction`." - -msgid "" -"A simple solution is to give half of your friends one address and half the " -"other, but that solution is not sustainable. Instead, you can use a `DNS " -"round robin `_ to do that " -"automatically. However, OpenStack networking can provide Load Balancing as a " -"Service, which :doc:`/networking` explains." -msgstr "" -"Solusi sederhana adalah memberi setengah dari satu alamat teman Anda dan " -"setengah lainnya, namun solusi itu tidak berkelanjutan. Sebagai gantinya, " -"Anda bisa menggunakan `DNS round robin `_ untuk melakukannya secara otomatis. Namun, jaringan OpenStack " -"dapat menyediakan Load Balancing sebagai Service, yang mana :doc:`/" -"networking` menjelaskan." - -msgid "" -"API load is a slightly different problem than the previous one regarding " -"capacity to work. We can simulate many requests to the API, as follows:" -msgstr "" -"Beban API adalah masalah yang sedikit berbeda dari yang sebelumnya mengenai " -"kapasitas untuk bekerja. Kita bisa mensimulasikan banyak permintaan ke API, " -"sebagai berikut:" - -msgid "API traffic" -msgstr "Lalu lintas API" - -msgid "Access the application" -msgstr "Akses aplikasi" - -msgid "Add metadata to objects" -msgstr "Tambahkan metadata ke objek" - -msgid "Add the option Networks and send its id to attach the instance to:" -msgstr "Tambahkan opsi Networks dan kirim idnya untuk menyematkan instance ke:" - -msgid "" -"Add the parameter network and send its name or id to attach the instance to:" -msgstr "" -"Tambahkan jaringan parameter dan kirimkan nama atau id untuk menyematkan " -"instance ke:" - -msgid "" -"Adding this capacity enables you to deal with a higher number of requests " -"for fractals. As soon as these worker instances start, they begin checking " -"the message queue for requests, reducing the overall backlog like a new " -"register opening in the supermarket." -msgstr "" -"Menambahkan kapasitas ini memungkinkan Anda menangani jumlah permintaan " -"fraktal yang lebih tinggi. Begitu instance pekerja ini dimulai, mereka mulai " -"memeriksa antrian pesan untuk permintaan, mengurangi keseluruhan simpanan " -"keseluruhan seperti pembukaan pendaftar baru di supermarket." - -msgid "Advice for developers new to operations" -msgstr "Saran bagi pengembang baru untuk operasi" - -msgid "" -"After separating the Fractal worker nodes into their own networks, the next " -"logical step is to move the Fractal API service to a load balancer, so that " -"multiple API workers can handle requests. By using a load balancer, the API " -"service can be scaled out in a similar fashion to the worker nodes." -msgstr "" -"Setelah memisahkan node pekerja Fractal ke jaringan mereka sendiri, langkah " -"logis berikutnya adalah memindahkan layanan Fractal API ke penyeimbang " -"beban, sehingga beberapa pekerja API dapat menangani permintaan. Dengan " -"menggunakan penyeimbang beban, layanan API dapat disesuaikan dengan node " -"pekerja." - -msgid "" -"After the instance is created, cloud-init downloads and runs a script " -"called :code:`install.sh`. This script installs the Fractals application. " -"Cloud-init can consume bash scripts and a number of different types of data. " -"You can even provide multiple types of data. You can find more information " -"about cloud-init in the `official documentation `_." -msgstr "" -"Setelah instance dibuat, unduhan cloud-init dan jalankan skrip yang disebut :" -"code:`install.sh`. Script ini menginstal aplikasi Fractals. Cloud-init bisa " -"mengkonsumsi script bash dan sejumlah tipe data yang berbeda. Anda bahkan " -"bisa menyediakan beberapa jenis data. Anda dapat menemukan lebih banyak " -"informasi tentang cloud-init di `official documentation `_." - -msgid "Allocate floating ips and assign them to the web server nodes." -msgstr "Alokasikan floating ip dan tetapkan ke node server web." - -msgid "Allocate the floating IP address:" -msgstr "Alokasikan floating IP address:" - -msgid "" -"Allocating a floating IP address to an instance does not change the IP " -"address of the instance, it causes OpenStack to establish the network " -"translation rules to allow an *additional* IP address." -msgstr "" -"Mengalokasikan sebuah floating IP ke sebuah instance tidak mengubah alamat " -"IP dari instance, menyebabkan OpenStack untuk menetapkan aturan terjemahan " -"jaringan untuk mengizinkan sebuah *additional* alamat IP." - -msgid "" -"An often-cited reason for designing applications by using cloud patterns is " -"the ability to **scale out**. That is: to add additional resources, as " -"required. Contrast this strategy to the previous one of increasing capacity " -"by scaling up the size of existing resources. To scale out, you must:" -msgstr "" -"Alasan yang sering dikutip untuk merancang aplikasi dengan menggunakan pola " -"awan adalah kemampuan untuk **scale out**. Yaitu: menambahkan sumber daya " -"tambahan, sesuai kebutuhan. Bandingkan strategi ini dengan kapasitas " -"peningkatan sebelumnya dengan meningkatkan (scaling up) ukuran sumber daya " -"yang ada. Untuk scale out, Anda harus:" - -msgid "And as before, the stack takes a few minutes to build!" -msgstr "" -"Dan seperti sebelumnya, stack itu membutuhkan waktu beberapa menit untuk " -"dibangun!" - -msgid "And confirm it is in place:" -msgstr "Dan konfirmasikan sudah ada di tempat:" - -msgid "" -"Another approach is to create a 'gold' image, which pre-installs your " -"application and its dependencies. A 'gold' image enables faster boot times " -"and more control over what is on the instance. However, if you use 'gold' " -"images, you must have a process in place to ensure that these images do not " -"fall behind on security updates." -msgstr "" -"Pendekatan lain adalah dengan menciptakan 'gold' image, yang menginstall " -"aplikasi dan dependensinya. The 'gold' image, memungkinkan waktu boot yang " -"lebih cepat dan kontrol yang lebih besar atas apa yang ada pada instance. " -"Namun, jika Anda menggunakan 'gold' image, Anda harus memiliki proses untuk " -"memastikan images ini tidak ketinggalan dalam pembaruan keamanan." - -msgid "" -"Anyone with a programming background can easily read the code in this guide. " -"Although this guide focuses on a particular SDK, you can use other languages " -"and toolkits with the OpenStack cloud:" -msgstr "" -"Siapapun dengan latar belakang pemrograman dapat dengan mudah membaca kode " -"dalam panduan ini. Meskipun panduan ini berfokus pada SDK tertentu, Anda " -"dapat menggunakan bahasa dan toolkit lain dengan awan OpenStack:" - -msgid "Appendix" -msgstr "Appendix" - -msgid "Application deployment" -msgstr "Penerapan aplikasi" - -msgid "" -"Application developers and operators who use phoenix servers have access to " -"systems that are built from a known baseline, such as a specific operating " -"system version, and to tooling that automatically builds, installs, and " -"configures a system." -msgstr "" -"Pengembang aplikasi dan operator yang menggunakan server phoenix memiliki " -"akses ke sistem yang dibangun dari dasar yang diketahui, seperti versi " -"sistem operasi tertentu, dan menggunakan alat yang secara otomatis " -"membangun, memasang, dan mengonfigurasi sistem." - -msgid "Architect your application to make use of additional resources." -msgstr "Arsitek aplikasi Anda untuk memanfaatkan sumber daya tambahan." - -msgid "" -"Armed with a security group, image, and flavor size, you can add multiple " -"API services:" -msgstr "" -"Berbekal security group, image, dan flavor size, Anda dapat menambahkan " -"beberapa layanan API:" - -msgid "As before, pass in configuration settings as parameters." -msgstr "" -"Seperti sebelumnya, masuk dalam pengaturan konfigurasi sebagai parameter." - -msgid "" -"As in traditional IT, cloud instances are accessed through IP addresses that " -"OpenStack assigns. How this is actually done depends on the networking setup " -"for your cloud. In some cases, you will simply get an Internet rout-able IP " -"address assigned directly to your instance." -msgstr "" -"Seperti dalam TI tradisional, instance awan diakses melalui alamat IP yang " -"diberikan OpenStack. Bagaimana ini sebenarnya dilakukan tergantung pada " -"pengaturan jaringan untuk awan Anda. Dalam beberapa kasus, Anda hanya akan " -"mendapatkan alamat IP rout-able internet yang diberikan langsung ke instance " -"Anda." - -msgid "" -"As mentioned in :doc:`/introduction`, the generated fractal images are saved " -"on the local file system of the API service instances. Because you have " -"multiple API instances up and running, the fractal images are spread across " -"multiple API services, which causes a number of :code:`IOError: [Errno 2] No " -"such file or directory` exceptions when trying to download a fractal image " -"from an API service instance that does not have the fractal image on its " -"local file system." -msgstr "" -"Seperti yang disebutkan di :doc:`/introduction`, image fraktal yang " -"dihasilkan disimpan pada sistem file lokal dari instance layanan API. Karena " -"beberapa instance API Anda aktif dan berjalan, image fraktal tersebar di " -"beberapa layanan API, yang menyebabkan sejumlah pengecualian :code:`IOError: " -"[Errno 2] No such file or directory` saat mencoba mendownload image fraktal " -"dari instance layanan API yang tidak memiliki image fraktal pada sistem file " -"lokalnya." - -msgid "" -"As with classical infrastructure, failures of the underpinning cloud " -"infrastructure (hardware, networks, and software) are unavoidable. When you " -"design for the cloud, it is crucial that your application is designed for an " -"environment where failures can happen at any moment. This may sound like a " -"liability, but it is not; by designing your application with a high degree " -"of fault tolerance, you also make it resilient, and more adaptable, in the " -"face of change." -msgstr "" -"Seperti halnya infrastruktur klasik, kegagalan infrastruktur awan (hardware, " -"jaringan, dan perangkat lunak) yang tidak dapat dihindari tidak dapat " -"dihindari. Saat merancang awan, sangat penting aplikasi Anda dirancang untuk " -"lingkungan tempat terjadi kegagalan setiap saat. Ini mungkin terdengar " -"seperti pertanggungjawaban, tapi tidak demikian; Dengan merancang aplikasi " -"Anda dengan tingkat toleransi kesalahan yang tinggi, Anda juga membuatnya " -"tahan lama, dan lebih mudah beradaptasi, dalam menghadapi perubahan." - -msgid "" -"As you can see from the parameters passed to the installation script, you " -"define this instance as the worker instance. But, you also pass the address " -"of the API instance and the message queue so the worker can pick up " -"requests. The Fractals application installation script accepts several " -"parameters." -msgstr "" -"Seperti yang dapat Anda lihat dari parameter yang dilewatkan ke skrip " -"instalasi, Anda mendefinisikan instance ini sebagai instance pekerja. Tapi, " -"Anda juga menyampaikan alamat instance API dan antrean pesan sehingga " -"pekerja dapat mengambil permintaan. Skrip instalasi aplikasi Fractals " -"menerima beberapa parameter." - -msgid "" -"As you change the topology of your applications, you must update or create " -"security groups. Here, you re-create the required security groups." -msgstr "" -"Saat Anda mengubah topologi aplikasi Anda, Anda harus memperbarui atau " -"membuat grup keamanan. Di sini, Anda menciptakan kembali kelompok keamanan " -"yang dibutuhkan." - -msgid "Associate a floating IP for external connectivity" -msgstr "Mengaitkan IP terapung untuk konektivitas eksternal" - -msgid "" -"At the end of this section, you make some slight changes to the networking " -"topology by using the OpenStack Networking API to create the 10.0.1.0/24 " -"network to which the worker nodes attach. You use the 10.0.3.0/24 API " -"network to attach the Fractal API servers. Web server instances have their " -"own 10.0.2.0/24 network, which is accessible by fractal aficionados " -"worldwide, by allocating floating IPs from the public network." -msgstr "" -"Pada akhir bagian ini, Anda membuat sedikit perubahan pada topologi jaringan " -"dengan menggunakan OpenStack Networking API untuk membuat jaringan " -"10.0.1.0/24 tempat (worker node) simpul pekerja mengkaitkan. Anda " -"menggunakan jaringan API 10.0.3.0/24 untuk mengkaitkan server API Fraktal. " -"Instance server web memiliki jaringan 10.0.2.0/24 sendiri, yang dapat " -"diakses oleh aficionados (penggemar) fraktal di seluruh dunia, dengan " -"mengalokasikan IP mengambang (floating) dari jaringan publik." - -msgid "Attach the floating IP address to the instance:" -msgstr "Lekatkan floating IP address ke instance:" - -msgid "Automation" -msgstr "Otomatisasi" - -msgid "" -"Back up the Fractals app images, which are currently stored inside the " -"database, on Object Storage." -msgstr "" -"Cadangkan gambar aplikasi Fractals, yang saat ini tersimpan di dalam " -"database, di Object Storage." - -msgid "Back up the Fractals from the database on the Object Storage" -msgstr "Cadangkan Fractal dari database pada Object Storage" - -msgid "Backups" -msgstr "Cadangan (backup)" - -msgid "Basics" -msgstr "Dasar-dasar" - -msgid "" -"Because all service endpoints use the Identity Service for authentication " -"and authorization, place the following code in the 'void Main()' entry-point " -"function." -msgstr "" -"Karena semua titik akhir layanan menggunakan Layanan Identity untuk " -"otentikasi dan otorisasi, letakkan kode berikut di fungsi entry-point 'void " -"Main ()'." - -msgid "" -"Because the SDKs do not fully support the OpenStack Networking API, this " -"section uses the command-line clients." -msgstr "" -"Karena SDK tidak sepenuhnya mendukung OpenStack Networking API, bagian ini " -"menggunakan klien command-lin." - -msgid "" -"Because the local file system is ephemeral storage, the fractal images are " -"lost along with the instance when the instance is terminated. Block-based " -"storage, which the :doc:`/block_storage` section discusses, avoids that " -"problem, but like local file systems, it requires administration to ensure " -"that it does not fill up, and immediate attention if disks fail." -msgstr "" -"Karena sistem file lokal adalah penyimpanan singkat, image fraktal hilang " -"bersamaan dengan instance saat berakhir. Penyimpanan berbasis blok, dimana " -"bagian :doc:`/block_storage` membahas, menghindari masalah itu, tapi seperti " -"sistem file lokal, memerlukan administrasi untuk memastikan tidak terisi, " -"dan segera diperhatikan jika disk gagal." - -msgid "" -"Because the tutorial reuses the :code:`conn` object, make sure that you " -"always have one handy." -msgstr "" -"Karena tutorialnya menggunakan kembali obyek :code:`conn`, pastikan selalu " -"ada yang berguna." - -msgid "Before proceeding, install the latest version of shade." -msgstr "Sebelum melanjutkan, pasang versi terbaru dari shade (naungan)." - -msgid "Before you continue, you must do one more thing." -msgstr "Sebelum melanjutkan, Anda harus melakukan satu hal lagi." - -msgid "" -"Before you run this class, confirm that you have configured it for your " -"cloud and the instance running the Fractals application." -msgstr "" -"Sebelum menjalankan kelas ini, konfirmasikan bahwa Anda telah " -"mengonfigurasikannya untuk awan Anda dan instance menjalankan aplikasi " -"Fractals." - -msgid "" -"Before you run this script, confirm that you have set your authentication " -"information, the flavor ID, and image ID." -msgstr "" -"Sebelum menjalankan skrip ini, konfirmasikan bahwa Anda telah menyetel " -"informasi autentikasi, flavor ID, dan image ID." - -msgid "" -"Before you scale out your application services, like the API service or the " -"workers, you must add a central database and an :code:`app-services` " -"messaging instance. The database and messaging queue will be used to track " -"the state of fractals and to coordinate the communication between the " -"services." -msgstr "" -"Sebelum Anda mengurangi layanan aplikasi Anda, seperti layanan API atau " -"pekerja, Anda harus menambahkan database pusat dan instance pengiriman :" -"code:`app-services` . Database dan antrian pesan akan digunakan untuk " -"melacak keadaan fraktal dan untuk mengkoordinasikan komunikasi antara " -"layanan." - -msgid "Block Storage" -msgstr "Block Storage" - -msgid "Boot and configure an instance" -msgstr "Boot dan konfigurasikan sebuah instance" - -msgid "Booting a worker" -msgstr "Booting pekerja" - -msgid "Bootstrap your network" -msgstr "Bootstrap your network" - -msgid "" -"By default, data in OpenStack instances is stored on 'ephemeral' disks. " -"These disks remain with the instance throughout its lifetime. When you " -"terminate the instance, that storage and all the data stored on it " -"disappears. Ephemeral storage is allocated to a single instance and cannot " -"be moved to another instance." -msgstr "" -"Secara default, data dalam instance OpenStack disimpan pada disk " -"'ephemeral'. Disk ini tetap dengan instance selama masa hidupnya. Bila Anda " -"mengakhiri instance, penyimpanan dan semua data yang tersimpan di dalamnya " -"hilang. Penyimpanan sesaat dialokasikan ke satu instance dan tidak dapat " -"dipindahkan ke instance lain." - -msgid "" -"CI/CD means that you always test your application and make frequent " -"deployments to production." -msgstr "" -"CI/CD berarti Anda selalu menguji aplikasi Anda dan sering melakukan " -"penyebaran ke produksi." - -msgid "" -"Call the :code:`faafo` command-line interface to request the generation of " -"five large fractals." -msgstr "" -"Panggil antarmuka command-line :code:`faafo` untuk meminta pembangkit lima " -"fraktal besar." - -msgid "" -"Change the API code, such as \"list fractals,\" to query Object Storage to " -"get the metadata." -msgstr "" -"Ubah kode API, seperti \"list fractals,\" untuk query Object Storage untuk " -"mendapatkan metadata." - -msgid "" -"Change the Fractal upload code to store metadata with the object in Object " -"Storage." -msgstr "" -"Ubah kode upload Fractal untuk menyimpan metadata dengan objek di Object " -"Storage." - -msgid "" -"Check to see whether the API service process is running like expected. You " -"can find the logs for the API service in the directory :file:`/var/log/" -"supervisor/`." -msgstr "" -"Periksa untuk melihat apakah proses layanan API berjalan seperti yang " -"diharapkan. Anda dapat menemukan log untuk layanan API di direktori :file:`/" -"var/log/supervisor/`." - -msgid "" -"Choose an image and flavor for your instance. You need about 1GB RAM, 1 CPU, " -"and a 1GB disk. This example uses the Ubuntu image with a small flavor, " -"which is a safe choice. In subsequent tutorial sections in this guide, you " -"must change the image and flavor IDs to correspond to the image and flavor " -"that you choose." -msgstr "" -"Pilih flavor dan image untuk instance Anda. Anda memerlukan RAM 1GB, 1 CPU, " -"dan disk 1GB. Contoh ini menggunakan image Ubuntu dengan sedikit flavor, " -"yang merupakan pilihan yang aman. Di bagian tutorial berikutnya dalam " -"panduan ini, Anda harus mengubah ID image dan flavor agar sesuai dengan " -"image dan flavor yang Anda pilih." - -msgid "Choose your OpenStack SDK" -msgstr "Pilih SDK OpenStack Anda" - -msgid "Cloud application architecture principles" -msgstr "Prinsip arsitektur aplikasi cloud" - -msgid "" -"Cloud applications often use many small instances rather than a few large " -"instances. Provided that an application is sufficiently modular, you can " -"easily distribute micro-services across as many instances as required. This " -"architecture enables an application to grow past the limit imposed by the " -"maximum size of an instance. It is like trying to move a large number of " -"people from one place to another; there is only so many people you can put " -"on the largest bus, but you can use an unlimited number of buses or small " -"cars, which provide just the capacity you need - and no more." -msgstr "" -"Aplikasi awan sering menggunakan banyak instance kecil daripada beberapa " -"instance besar. Asalkan aplikasi cukup modular, Anda dapat dengan mudah " -"mendistribusikan micro-service sebanyak mungkin sesuai kebutuhan. " -"Arsitektur ini memungkinkan aplikasi tumbuh melewati batas yang diberlakukan " -"oleh ukuran maksimum sebuah instance. Ini seperti mencoba memindahkan " -"sejumlah besar orang dari satu tempat ke tempat lain; Hanya ada begitu " -"banyak orang yang bisa Anda pakai di bus terbesar, tapi Anda bisa " -"menggunakan jumlah bus atau mobil kecil yang tidak terbatas, yang hanya " -"menyediakan kapasitas yang Anda butuhkan - dan tidak lebih." - -msgid "" -"Cloud applications typically share several design principles. These " -"principles influenced the design of the Fractals application." -msgstr "" -"Aplikasi awan biasanya berbagi beberapa prinsip desain. Prinsip-prinsip ini " -"mempengaruhi disain aplikasi Fractals." - -msgid "" -"Cloud resources, such as running instances that you no longer use, can cost " -"money. To avoid unexpected expenses, destroy cloud resources." -msgstr "" -"Sumber daya awan, seperti instance yang tidak Anda gunakan lagi, bisa " -"menghabiskan biaya. Untuk menghindari biaya tak terduga, hancurkan sumber " -"daya awan." - -msgid "Complete code sample" -msgstr "Sampel kode lengkap" - -msgid "Configuration management" -msgstr "Pengelolaan konfigurasi" - -msgid "" -"Configuration management tools, such as Ansible, Chef, and Puppet, enable " -"you to describe exactly what to install and configure on an instance. Using " -"these descriptions, these tools implement the changes that are required to " -"get to the desired state." -msgstr "" -"Alat pengelolaan konfigurasi, seperti Ansible, Chef, and Puppet, " -"memungkinkan Anda untuk menjelaskan dengan tepat apa yang harus diinstal dan " -"dikonfigurasi pada sebuah instance. Dengan menggunakan deskripsi ini, alat " -"ini menerapkan perubahan yang diperlukan untuk mencapai keadaan yang " -"diinginkan." - -msgid "Configure the Fractals app to use Object Storage" -msgstr "Konfigurasikan aplikasi Fractal untuk menggunakan Object Storage" - -msgid "Confirm that the stack created two alarms:" -msgstr "Konfirmasikan bahwa stack itu membuat dua alarm:" - -msgid "Confirm that they were added:" -msgstr "Konfirmasikan bahwa mereka telah ditambahkan:" - -msgid "" -"Confirm that we have a public network by listing the networks our tenant has " -"access to. The public network does not have to be named public - it could be " -"'external', 'net04_ext' or something else - the important thing is it exists " -"and can be used to reach the Internet." -msgstr "" -"Konfirmasikan bahwa kami memiliki jaringan publik dengan mencantumkan " -"jaringan yang dapat diakses oleh penyewa kami. Jaringan publik tidak harus " -"diberi nama publik - bisa jadi 'external', 'net04_ext' atau yang lainnya - " -"yang terpenting ada dan bisa digunakan untuk menjangkau Internet." - -msgid "Connect to the API endpoint:" -msgstr "Hubungkan ke API endpoint:" - -msgid "Connecting to the Internet" -msgstr "Menghubungkan ke Internet" - -msgid "Contents" -msgstr "Isi" - -msgid "Create a network and subnet for the web server nodes." -msgstr "Buat jaringan dan subnet untuk node server web." - -msgid "" -"Create a network and subnet for the worker nodes. This is the private data " -"network." -msgstr "" -"Buat jaringan dan subnet untuk node pekerja. Ini adalah jaringan data " -"private." - -msgid "Create a router for the private data network." -msgstr "Buat router untuk jaringan data private." - -msgid "" -"Create a volume object by using the unique identifier (UUID) for the volume. " -"Then, use the server object from the previous code snippet to attach the " -"volume to it at :code:`/dev/vdb`:" -msgstr "" -"Buat objek volume dengan menggunakan unique identifier (UUID) untuk volume. " -"Kemudian, gunakan objek server dari cuplikan kode sebelumnya untuk " -"menempelkan volume ke :code:`/dev/vdb`:" - -msgid "" -"Create and delete compute resources. These resources are virtual machine " -"instances where the Fractals application runs." -msgstr "" -"Buat dan hapus sumber daya komputasi. Sumber daya ini adalah instance mesin " -"virtual tempat aplikasi Fractals berjalan." - -msgid "Create more API service requests" -msgstr "Buat lebih banyak permintaan layanan API" - -msgid "Create more tasks" -msgstr "Buat lebih banyak tugas" - -msgid "Create networks" -msgstr "Buat jaringan" - -msgid "Create the instance." -msgstr "Buat instance." - -msgid "" -"Currently, you cannot directly store generated images in OpenStack Object " -"Storage. Please revisit this section again in the future." -msgstr "" -"Saat ini, Anda tidak bisa langsung menyimpan image yang dihasilkan di " -"OpenStack Object Storage. Silakan kunjungi kembali bagian ini lagi di masa " -"mendatang." - -msgid "Customize networking for better performance and segregation." -msgstr "Sesuaikan jaringan untuk kinerja dan segregasi yang lebih baik." - -msgid "" -"Define a short function to locate unused or allocate floating IPs. This " -"saves a few lines of code and prevents you from reaching your floating IP " -"quota too quickly." -msgstr "" -"Tentukan fungsi singkat untuk menemukan yang tidak digunakan atau " -"mengalokasikan IP mengambang. Ini menghemat beberapa baris kode dan mencegah " -"Anda mencapai kuota IP mengambang Anda terlalu cepat." - -msgid "Delete containers" -msgstr "Hapus kontainer" - -msgid "Deploy the application to a new instance" -msgstr "Terapkan aplikasi ke instance baru" - -msgid "" -"Deploying application data and configuration to the instance can take some " -"time. Consider enjoying a cup of coffee while you wait. After the " -"application deploys, you can use your preferred browser to visit the awesome " -"graphic interface at the following link." -msgstr "" -"Menyebarkan data dan konfigurasi aplikasi ke instance bisa memakan waktu " -"lama. Pertimbangkan menikmati secangkir kopi sambil menunggu. Setelah " -"aplikasi menyebar, Anda dapat menggunakan browser pilihan Anda untuk " -"mengunjungi antarmuka grafis yang mempesona di link berikut." - -msgid "" -"Deploying applications in a cloud environment can be very different from " -"deploying them in a traditional IT environment. This guide teaches you how " -"to deploy applications on OpenStack and some best practices for cloud " -"application development." -msgstr "" -"Menerapkan aplikasi di lingkungan awan bisa sangat berbeda dengan " -"menerapkannya di lingkungan TI tradisional. Panduan ini mengajarkan Anda " -"cara menerapkan aplikasi pada OpenStack dan beberapa praktik terbaik untuk " -"pengembangan aplikasi awan." - -msgid "Description" -msgstr "Deskripsi" - -msgid "Destroy an instance" -msgstr "Hancurkan instance" - -msgid "" -"Do not worry if these concepts are not yet completely clear. In :doc:`/" -"introduction`, we explore these concepts in more detail." -msgstr "" -"Jangan khawatir jika konsep ini belum sepenuhnya jelas. Dalam :doc:`/" -"introduction`, kami mengeksplorasi konsep ini secara lebih rinci." - -msgid "Enable/start something" -msgstr "Enable/start something" - -msgid "" -"Ensure you have an :file:`openrc.sh` file, source it, and validate that your " -"trove client works:" -msgstr "" -"Pastikan Anda memiliki file :file:`openrc.sh`, sumber, dan memvalidasi bahwa " -"klien Anda bekerja:" - -msgid "" -"Ensure you have an openrc.sh file, source it, and then check that your " -"openstack client works: ::" -msgstr "" -"Pastikan Anda memiliki file openrc.sh, sumber, dan kemudian periksa apakah " -"klien openstack Anda bekerja: ::" - -msgid "" -"Even with a key in place, however, you must have the appropriate security " -"group rules in place to access your instance." -msgstr "" -"Bahkan dengan kunci di tempat, bagaimanapun, Anda harus memiliki peraturan " -"kelompok keamanan yang sesuai untuk mengakses instance Anda." - -msgid "Example" -msgstr "Contoh" - -msgid "Explore and apply advanced OpenStack cloud features." -msgstr "Jelajahi dan terapkan fitur awan OpenStack yang canggih." - -msgid "Extra features" -msgstr "Fitur tambahan" - -msgid "Extra security groups" -msgstr "Kelompok keamanan ekstra" - -msgid "Extras" -msgstr "Ekstra" - -msgid "Fail fast" -msgstr "Fail fast" - -msgid "Fault tolerance" -msgstr "Toleransi kesalahan" - -msgid "Fault tolerance is essential to the cloud-based application." -msgstr "Toleransi kesalahan sangat penting untuk aplikasi berbasis cloud." - -msgid "Final result" -msgstr "Hasil final" - -msgid "Finally, clean up by deleting the test object:" -msgstr "Akhirnya, bersihkan dengan cara menghapus objek test:" - -msgid "" -"Finally, start the stopped MySQL database service and validate that " -"everything works as expected." -msgstr "" -"Akhirnya, mulai menghentikan layanan database MySQL dan memvalidasi bahwa " -"semuanya berjalan seperti yang diharapkan." - -msgid "First check for an unused floating IP." -msgstr "Pertama periksa floating IP yang tidak terpakai." - -msgid "" -"First provide the appropriate identity, credentials and authorization URL " -"for your project. Then get an instance of the Nova API interface." -msgstr "" -"Pertama, berikan identitas, kredensial, dan otorisasi URL yang sesuai untuk " -"proyek Anda. Kemudian dapatkan sebuah instance dari antarmuka Nova API." - -msgid "First, learn how to connect to the Object Storage endpoint:" -msgstr "Pertama, pelajari cara menyambungkan ke Object Storage endpoint:" - -msgid "" -"First, tell the connection to get a specified image by using the ID of the " -"image that you picked in the previous section:" -msgstr "" -"Pertama, beritahu koneksi untuk mendapatkan image tertentu dengan " -"menggunakan ID image yang Anda pilih di bagian sebelumnya:" - -msgid "Flavors and images" -msgstr "Flavor dan image" - -msgid "" -"For a list of available SDKs, see `Software Development Kits `_." -msgstr "" -"Untuk daftar SDK yang tersedia, lihat `Software Development Kits `_." - -msgid "" -"For efficiency, most Object Storage installations treat large objects, :code:" -"`> 5GB`, differently than smaller objects." -msgstr "" -"Untuk efisiensi, sebagian besar instalasi Object Storage memperlakukan objek " -"besar, :code:`> 5GB`, berbeda dari objek yang lebih kecil." - -msgid "" -"For example, you might use the Orchestration API to create two compute " -"instances by creating a stack and by passing a template to the Orchestration " -"API. That template contains two resources with the :code:`type` attribute " -"set to :code:`OS::Nova::Server`." -msgstr "" -"Misalnya, Anda mungkin menggunakan Orchestration API untuk membuat dua " -"instance komputasi dengan membuat tumpukan dan dengan melewatkan template " -"ke Orchestration API. Template itu berisi dua sumber dengan atribut :code: " -"`type` yang disetel ke :code:`OS::Nova::Server`." - -msgid "For example:" -msgstr "Sebagai contoh:" - -msgid "" -"For information about supported features and how to work with an existing " -"database service installation, see `Database as a Service in OpenStack " -"`_." -msgstr "" -"Untuk informasi tentang fitur yang didukung dan cara bekerja dengan " -"instalasi layanan database yang ada, lihat `Database as a Service in " -"OpenStack `_." - -msgid "" -"For information about these and other calls, see `libcloud documentation " -"`_." -msgstr "" -"Untuk informasi tentang panggilan ini dan panggilan lainnya, lihat `libcloud " -"documentation `_." - -msgid "" -"For more information about hybrid clouds, see the `Hybrid Cloud chapter " -"`_ in the Architecture " -"Design Guide." -msgstr "" -"Untuk informasi lebih lanjut tentang awan hibrid, lihat `Hybrid Cloud " -"chapter `_ di " -"Architecture Design Guide." - -msgid "" -"For more information about multi-site clouds, see the `Multi-Site chapter " -"`_ in the " -"Architecture Design Guide." -msgstr "" -"Untuk informasi lebih lanjut tentang awan multi-site, lihat `Multi-Site " -"chapter `_ di " -"Architecture Design Guide." - -msgid "" -"For performance reasons, it makes sense to have a network for each tier, so " -"that traffic from one tier does not \"crowd out\" other types of traffic and " -"cause the application to fail. In addition, having separate networks makes " -"controlling access to parts of the application easier to manage, improving " -"the overall security of the application." -msgstr "" -"Untuk alasan kinerja, masuk akal untuk memiliki jaringan untuk setiap " -"tingkat, sehingga lalu lintas dari satu tingkat tidak \"mengacaukan\" jenis " -"lalu lintas lainnya dan menyebabkan aplikasi gagal. Selain itu, memiliki " -"jaringan yang terpisah membuat akses pengendali ke bagian aplikasi lebih " -"mudah dikelola, meningkatkan keamanan keseluruhan aplikasi." - -msgid "" -"For this example, we take a floating IP pool from the 'public' network, " -"which is your external network." -msgstr "" -"Untuk contoh ini, kita mengambil kolam floating IP dari jaringan 'public', " -"yang merupakan jaringan eksternal Anda." - -msgid "Fractals application architecture" -msgstr "Arsitektur aplikasi fraktal" - -msgid "" -"From here, go to :doc:`/scaling_out` to learn how to further scale your " -"application. Or, try one of these steps in the tutorial:" -msgstr "" -"Dari sini, buka :doc:`/scaling_out` untuk mempelajari cara meningkatkan " -"skala aplikasi Anda. Atau, cobalah salah satu langkah berikut dalam " -"tutorialnya:" - -msgid "Generate load" -msgstr "Membangkitkan muatan" - -msgid "Get more information about the stack:" -msgstr "Dapatkan informasi lebih lanjut tentang stack:" - -msgid "Getting started" -msgstr "Mulai" - -msgid "Go" -msgstr "Go" - -msgid "Go ahead and create two instances." -msgstr "Silakan membuat dua instance." - -msgid "" -"Go ahead and delete the existing instances and security groups that you " -"created in previous sections. Remember, when instances in the cloud are no " -"longer working, remove them and re-create something new." -msgstr "" -"Lanjutkan dan hapus instance dan kelompok keamanan yang ada yang Anda buat " -"di bagian sebelumnya. Ingat, saat kejadian di awan tidak lagi berfungsi, " -"lepaskan mereka dan ciptakan kembali sesuatu yang baru." - -msgid "" -"Go ahead and test the fault tolerance. Start deleting workers and API " -"instances. As long as you have one of each, your application is fine. " -"However, be aware of one weak point. The database contains the fractals and " -"fractal metadata. If you lose that instance, the application stops. Future " -"sections will explain how to address this weak point." -msgstr "" -"Silakan menguji toleransi kesalahan. Mulai menghapus pekerja dan instance " -"API. Selama Anda memilikinya, aplikasi Anda baik-baik saja. Namun, " -"perhatikan satu titik lemah. Database berisi fraktal dan metadata fraktal. " -"Jika Anda kehilangan instance itu, aplikasi akan berhenti. Bagian " -"selanjutnya akan menjelaskan bagaimana mengatasi titik lemah ini." - -msgid "" -"Go to :doc:`/durability` to learn how to use Object Storage to solve this " -"problem in an elegant way. Or, you can proceed to one of these sections:" -msgstr "" -"Lanjut ke :doc:`/durability` untuk belajar bagaimana menggunakan Object " -"Storage untuk mengatasi masalah ini dengan cara yang elegan. Atau, Anda bisa " -"melanjutkan ke salah satu bagian berikut:" - -msgid "Going crazy" -msgstr "Going crazy" - -msgid "HOT templating language" -msgstr "HOT templating language" - -msgid "High availability" -msgstr "High availability" - -msgid "" -"How do you deploy your application? For example, do you pull the latest code " -"from a source control repository? Do you make packaged releases that update " -"infrequently? Do you perform haphazard tests in a development environment " -"and deploy only after major changes?" -msgstr "" -"Bagaimana Anda menerapankan aplikasi Anda? Misalnya, apakah Anda menarik " -"kode terbaru dari repositori kontrol sumber? Apakah Anda membuat rilis paket " -"yang jarang diperbarui? Apakah Anda melakukan tes serampangan di lingkungan " -"pengembangan dan hanya menggunakan perubahan besar?" - -msgid "How the Fractals application interacts with OpenStack" -msgstr "Bagaimana aplikasi Fractals berinteraksi dengan OpenStack" - -msgid "How you interact with OpenStack" -msgstr "Bagaimana Anda berinteraksi dengan OpenStack" - -msgid "If a key pair of the given name is not found then one is generated." -msgstr "" -"Jika pasangan kunci dari nama yang diberikan tidak ditemukan maka satu " -"dihasilkan." - -msgid "" -"If an application is meant to automatically scale up and down to meet " -"demand, it is not feasible have any manual steps in the process of deploying " -"any component of the application. Automation also decreases the time to " -"recovery for your application in the event of component failures, increasing " -"fault tolerance and resilience." -msgstr "" -"Jika sebuah aplikasi dimaksudkan untuk secara otomatis naik turun untuk " -"memenuhi permintaan, maka tidak mungkin ada langkah manual dalam proses " -"penggelaran komponen aplikasi apapun. Otomasi juga mengurangi waktu untuk " -"pemulihan aplikasi Anda jika terjadi kegagalan komponen, meningkatkan " -"toleransi dan ketahanan kesalahan." - -msgid "" -"If either alarm reports the :code:`insufficient data` state, the default " -"sampling period of the stack is probably too low for your cloud; ask your " -"support team for assistance. You can set the period through the :code:" -"`period` parameter of the stack to match your clouds requirements." -msgstr "" -"Jika salah satu alarm melaporkan status :code:`insufficient data`, periode " -"sampling default stack mungkin terlalu rendah untuk awan Anda; Mintalah " -"bantuan tim pendukung Anda. Anda dapat mengatur periode melalui parameter :" -"code:`period` stack agar sesuai dengan persyaratan awan Anda." - -msgid "" -"If one application instance is compromised, all instances with the same " -"image and configuration will likely suffer the same vulnerability. The " -"safest path is to use configuration management to rebuild all instances." -msgstr "" -"Jika satu instance aplikasi dikompromikan, semua instance dengan image dan " -"konfigurasi yang sama kemungkinan akan mengalami kerentanan yang sama. Jalan " -"yang paling aman adalah menggunakan manajemen konfigurasi untuk membangun " -"kembali semua instance." - -msgid "" -"If one is assigned, users can use this address to access the instance on " -"some OpenStack clouds." -msgstr "" -"Jika IP private diberikan, pengguna dapat menggunakan alamat ini untuk " -"mengakses instance pada beberapa awan OpenStack." - -msgid "If one is assigned, users can use this address to access the instance." -msgstr "" -"Jika IP publik diberikan, pengguna dapat menggunakan alamat ini untuk " -"mengakses instance tersebut." - -msgid "" -"If the image that you want is not available in your cloud, you can usually " -"upload one depending on the policy settings of your cloud. For information " -"about how to upload images, see `obtaining images `_." -msgstr "" -"Jika image yang Anda inginkan tidak tersedia di awan Anda, biasanya Anda " -"dapat mengunggahnya berdasarkan setelan kebijakan awan Anda. Untuk informasi " -"tentang cara mengunggah image, lihat `obtaining images `_." - -msgid "" -"If you are an advanced user, think about how you might remove the database " -"from the architecture and replace it with Object Storage metadata, and then " -"contribute these steps to :doc:`craziness`." -msgstr "" -"Jika Anda adalah pengguna tingkat lanjut, pikirkan bagaimana Anda bisa " -"menghapus database dari arsitektur dan menggantinya dengan metadata Object " -"Storag, dan kemudian berkontribusi langkah-langkah ini ke :doc:`craziness`." - -msgid "" -"If you are familiar with OpenStack but have not created a cloud application " -"in general or an OpenStack application in particular, this section teaches " -"you how to program with OpenStack components." -msgstr "" -"Jika Anda sudah familiar dengan OpenStack namun belum membuat aplikasi cloud " -"secara umum atau aplikasi OpenStack pada khususnya, bagian ini mengajarkan " -"Anda bagaimana memprogram dengan komponen OpenStack." - -msgid "" -"If you check the load on the :code:`app-controller` API service instance, " -"you see that the instance is not doing well. On your single CPU flavor " -"instance, a load average greater than 1 means that the server is at capacity." -msgstr "" -"Jika Anda memeriksa beban pada instance layanan API :code:`app-" -"controller` , Anda melihat instance tidak berjalan dengan baik. Pada " -"instance flavor CPU tunggal Anda, rata-rata beban lebih besar dari 1 berarti " -"server berkapasitas." - -msgid "" -"If you check the load on the worker, you can see that the instance is not " -"doing well. On the single CPU flavor instance, a load average greater than 1 " -"means that the server is at capacity." -msgstr "" -"Jika Anda memeriksa muatan pekerja, Anda bisa melihat instance tidak " -"berjalan dengan baik. Pada instance flavor CPU tunggal, rata-rata muatan " -"lebih besar dari 1 berarti server berada pada kapasitas." - -msgid "" -"If you deploy your application on a regular basis, you can resolve outages " -"and make security updates without manual intervention. If an outage occurs, " -"you can provision more resources in another region. If you must patch " -"security holes, you can provision additional compute nodes that are built " -"with the updated software. Then, you can terminate vulnerable nodes and " -"automatically fail-over traffic to the new instances." -msgstr "" -"Jika Anda menerapkan aplikasi secara teratur, Anda dapat mengatasi pemadaman " -"listrik dan melakukan pembaruan keamanan tanpa intervensi manual. Jika " -"terjadi pemadaman, Anda dapat menyediakan lebih banyak sumber daya di " -"wilayah lain. Jika Anda harus menambal lubang keamanan, Anda dapat " -"menyediakan node komputasi tambahan yang dibangun dengan perangkat lunak " -"yang diperbarui. Kemudian, Anda dapat menghentikan nodus yang rentan dan " -"lalu lintas gagal (fail-over) ke instance baru secara otomatis." - -msgid "" -"If you do not have a working application, follow the steps in :doc:" -"`introduction` to create one." -msgstr "" -"Jika Anda tidak memiliki aplikasi yang bekerja, ikuti langkah-langkah di :" -"doc:`introduction` untuk membuatnya." - -msgid "" -"If you do not know Maven then the `Maven home site `_ is a good place to learn more." -msgstr "" -"Jika Anda tidak tahu Maven maka `Maven home site `_ adalah tempat yang baik untuk belajar lebih banyak." - -msgid "" -"If you do not use floating IP addresses, substitute another IP address, as " -"appropriate." -msgstr "" -"Jika Anda tidak menggunakan alamat IP mengambang, ganti alamat IP lain, jika " -"sesuai." - -msgid "" -"If you do use a public cloud `known by shade `_, you can avoid specifying :" -"code:`auth_url:` and instead specify :code:`profile: $PROVIDER_NAME` in the " -"clouds.yml file." -msgstr "" -"Jika Anda menggunakan cloud publik `known by shade ` _, Anda dapat " -"menghindari menentukan: code: `auth_url:` dan sebagai gantinya sebutkan :" -"code: `profil: $ PROVIDER_NAME` dalam file clouds.yml." - -msgid "" -"If you had a load balancer, you could distribute this load between the two " -"different API services. You have several options. The :doc:`networking` " -"section shows you one option." -msgstr "" -"Jika Anda memiliki penyeimbang beban, Anda dapat mendistribusikan beban ini " -"di antara dua layanan API yang berbeda. Anda memiliki beberapa pilihan. " -"Bagian :doc:`networking` menunjukkan satu pilihan." - -msgid "" -"If you have no free floating IPs that have been allocated for your project, " -"first select a network which offer allocation of floating IPs. In this " -"example we use network which is called :code:`public`." -msgstr "" -"Jika Anda tidak memiliki floating IP bebas yang telah dialokasikan untuk " -"proyek Anda, pertama pilih jaringan yang menawarkan alokasi floating IP. " -"Dalam contoh ini kita menggunakan jaringan yang disebut :code:`public`." - -msgid "" -"If you have no free floating IPs that have been previously allocated for " -"your project, first select a floating IP pool offered by your provider. In " -"this example, we have selected the first one and assume that it has " -"available IP addresses." -msgstr "" -"Jika Anda tidak memiliki floating IP bebas yang telah dialokasikan " -"sebelumnya untuk proyek Anda, pertama pilih kolam floating IP yang " -"ditawarkan oleh provider Anda. Dalam contoh ini, kami telah memilih yang " -"pertama dan menganggapnya memiliki alamat IP yang tersedia." - -msgid "" -"If you have no free floating IPs that have been previously allocated for " -"your project, then select a floating IP pool offered by your provider. In " -"this example, we have selected the first one and assume that it has " -"available IP addresses." -msgstr "" -"Jika Anda tidak memiliki floating IP bebas yang telah dialokasikan " -"sebelumnya untuk proyek Anda, pilih kolam floating IP yang ditawarkan oleh " -"provider Anda. Dalam contoh ini, kami telah memilih yang pertama dan " -"menganggapnya memiliki alamat IP yang tersedia." - -msgid "If you list existing instances:" -msgstr "Jika Anda mendaftar instance yang ada:" - -msgid "If you list the instances again, the instance disappears." -msgstr "Jika Anda mendaftar instance lagi, instance menghilang." - -msgid "" -"If you receive the :code:`libcloud.common.types.InvalidCredsError: 'Invalid " -"credentials with the provider'` exception when you run one of these API " -"calls, double-check your credentials." -msgstr "" -"Jika Anda menerima pengecualian :code:`libcloud.common.types." -"InvalidCredsError: 'Invalid credentials with the provider'` saat menjalankan " -"salah satu panggilan API ini, periksa kembali kredensial Anda." - -msgid "" -"If you receive the exception :code:`openstack.exceptions.HttpException: " -"HttpException: 401 Client Error: Unauthorized,` while trying to run one of " -"the following API calls please double-check your credentials." -msgstr "" -"Jika Anda menerima pengecualian :code:`openstack.exceptions.HttpException: " -"HttpException: 401 Client Error: Unauthorized,` saat mencoba menjalankan " -"salah satu panggilan API berikut, periksa kembali kredensial Anda." - -msgid "" -"If you see an IOError, you may need to change ``~/.ssh/`` to ``/home/" -"{USERNAME}/.ssh/``, using an absolute path." -msgstr "" -"Jika Anda melihat IOError, Anda mungkin perlu mengubahnya ``~/.ssh/`` ke ``/" -"home/{USERNAME}/.ssh/``, menggunakan jalur absolut." - -msgid "" -"If you think about how you traditionally make what you store durable, you " -"quickly conclude that keeping multiple copies of your objects on separate " -"systems is a good way strategy. However, keeping track of those multiple " -"copies is difficult, and building that into an app requires complicated " -"logic." -msgstr "" -"Jika Anda memikirkan bagaimana Anda secara tradisional membuat apa yang Anda " -"simpan dengan tahan lama, Anda dapat dengan cepat menyimpulkan bahwa " -"menyimpan banyak salinan objek Anda pada sistem yang terpisah adalah " -"strategi strategi yang bagus. Namun, mencatat banyak salinan itu sulit " -"dilakukan, dan membangunnya ke dalam sebuah aplikasi membutuhkan logika yang " -"rumit." - -msgid "" -"If you work with large objects, use the :code:`RegionScopedBlobStoreContext` " -"class family instead of the ones used so far." -msgstr "" -"Jika Anda bekerja dengan objek besar, gunakan keluarga kelas :code:" -"`RegionScopedBlobStoreContext` dan bukan yang digunakan sejauh ini." - -msgid "" -"If you work with large objects, use the :code:`ex_multipart_upload_object` " -"call instead of the simpler :code:`upload_object` call. The call splits the " -"large object into chunks and creates a manifest so that the chunks can be " -"recombined on download. Change the :code:`chunk_size` parameter, in bytes, " -"to a value that your cloud can accept." -msgstr "" -"Jika Anda bekerja dengan objek besar, gunakan panggilan :code:" -"`ex_multipart_upload_object` daripada panggilan lebih sederhana :code:" -"`upload_object`. Panggilan membagi objek besar menjadi potongan dan " -"menciptakan manifes sehingga potongan dapat digabungkan kembali pada " -"unduhan. Ubah parameter :code:`chunk_size` , dalam satuan byte, ke nilai " -"yang bisa diterima awan Anda." - -msgid "" -"If your provider does not support regions, try a blank string ('') for the " -"`region_name`." -msgstr "" -"Jika penyedia Anda tidak mendukung region (daerah), cobalah string kosong " -"('') untuk `region_name`." - -msgid "" -"In a new Terminal window, SSH into the 'api' API instance. Use the key pair " -"name that you passed in as a parameter." -msgstr "" -"Di jendela Terminal yang baru, SSH masuk ke instance API 'api'. Gunakan nama " -"pasangan kunci yang Anda disampaikan sebagai parameter." - -msgid "" -"In addition to configuring backups, review your policies about what you back " -"up and how long to retain each backed up item." -msgstr "" -"Selain mengonfigurasi cadang, tinjaulah kebijakan Anda tentang apa yang Anda " -"cadangkan dan berapa lama untuk menyimpan setiap item dicadangkan." - -msgid "" -"In addition to this kind of monitoring, you should consider availability " -"monitoring. Although your application might not care about a failed worker, " -"it should care about a failed database server." -msgstr "" -"Selain pemantauan semacam ini, Anda harus mempertimbangkan pemantauan " -"ketersediaan. Meskipun aplikasi Anda mungkin tidak peduli dengan pekerja " -"yang gagal, hal itu harus peduli dengan server database yang gagal." - -msgid "" -"In cloud programming, it is very different. Rather than large, expensive " -"servers, you have virtual machines that are disposable; if something goes " -"wrong, you shut the server down and spin up a new one. There is still " -"operations staff, but rather than nursing individual servers back to health, " -"their job is to monitor the health of the overall system." -msgstr "" -"Dalam pemrograman awan, sangat berbeda. Daripada server besar dan mahal, " -"Anda memiliki mesin virtual yang bisa dipakai; Jika ada yang tidak beres, " -"Anda mematikan server dan memutar yang baru. Masih ada staf operasi, tapi " -"bukannya mengelola server individual kembali ke kesehatan, tugas mereka " -"adalah memantau kesehatan keseluruhan sistem." - -msgid "" -"In cloud programming, there is a well-known analogy known as \"cattle vs pets" -"\". If you have not heard it before, it goes like this:" -msgstr "" -"Dalam pemrograman awan, ada analogi terkenal yang dikenal sebagai \"cattle " -"vs pets\". Jika Anda belum pernah mendengarnya, itu seperti ini:" - -msgid "" -"In earlier sections, the Fractal application used an installation script " -"into which the metadata API passed parameters to bootstrap the cluster. " -"`Etcd `_ is \"a distributed, consistent key-" -"value store for shared configuration and service discovery\" that you can " -"use to store configurations. You can write updated versions of the Fractal " -"worker component to connect to Etcd or use `Confd `_ to poll for changes from Etcd and write changes to " -"a configuration file on the local file system, which the Fractal worker can " -"use for configuration." -msgstr "" -"Pada bagian sebelumnya, aplikasi Fractal menggunakan skrip instalasi dimana " -"metadata API melewati parameter untuk melakukan bootstrap cluster. `Etcd " -"` _ adalah \"a distributed, consistent key-" -"value store for shared configuration and service discovery\" yang dapat Anda " -"gunakan untuk menyimpan konfigurasi. Anda dapat menulis versi terbaru " -"komponen Fractal worker untuk terhubung ke Etcd atau menggunakan `Confd " -"` _ untuk membuat jajak pendapat " -"atas perubahan dari Etcd dan tulis perubahan pada file konfigurasi pada " -"sistem file lokal, yang dapat digunakan oleh Fractal worker untuk " -"konfigurasi." - -msgid "" -"In openstacksdk parameter :code:`ex_userdata` is called :code:`user_data` " -"and parameter :code:`ex_keyname` is called :code:`key_name`." -msgstr "" -"Dalam parameter openstacksdk :code:`ex_userdata` is called :code:`user_data` " -"dan parameter :code:`ex_keyname` disebut :code:`key_name`." - -msgid "" -"In previous chapters, all nodes that comprise the fractal application were " -"attached to the same network." -msgstr "" -"Pada bab sebelumnya, semua node yang terdiri dari aplikasi fraktal " -"dilekatkan pada jaringan yang sama." - -msgid "" -"In previous sections, you used your SDK to programmatically interact with " -"OpenStack. In this section, you use the 'heat' command-line client to access " -"the Orchestration API directly through template files." -msgstr "" -"Di bagian sebelumnya, Anda menggunakan SDK untuk berinteraksi secara " -"pemrograman dengan OpenStack. Pada bagian ini, Anda menggunakan klien " -"command-line 'heat' untuk mengakses Orchestration API secara langsung " -"melalui file template." - -msgid "" -"In the Terminal window where you run ceilometer, run :code:" -"`ceilometer_sample_query` to see the samples." -msgstr "" -"Di jendela Terminal tempat Anda menjalankan ceilometer, jalankan :code:" -"`ceilometer_sample_query` untuk melihat sampelnya." - -msgid "" -"In the following example, set :code:`pub_key_file` to the location of your " -"public SSH key file." -msgstr "" -"Pada contoh berikut, mengatur :code:`pub_key_file` ke lokasi file kunci SSH " -"publik Anda." - -msgid "In the outputs section of the stack, you can run these web API calls:" -msgstr "" -"Di bagian keluaran stack, Anda dapat menjalankan panggilan API web ini:" - -msgid "" -"In the previous steps, you split out several services and expanded capacity. " -"To see the new features of the Fractals application, SSH to one of the app " -"instances and create a few fractals." -msgstr "" -"Pada langkah sebelumnya, Anda membagi beberapa layanan dan kapasitas yang " -"diperluas. Untuk melihat fitur baru aplikasi Fractal, SSH ke salah satu " -"instance aplikasi dan membuat beberapa fraktal." - -msgid "" -"In theory, you could use a simple script to monitor the load on your workers " -"and API services and trigger the creation of instances, which you already " -"know how to do. Congratulations! You are ready to create scalable cloud " -"applications." -msgstr "" -"Secara teori, Anda bisa menggunakan skrip sederhana untuk memantau beban " -"pada pekerja dan layanan API Anda dan memicu terciptanya instance, yang " -"sudah Anda ketahui bagaimana melakukannya. Selamat! Anda siap membuat " -"aplikasi cloud scalable." - -msgid "" -"In this case, we are presenting a shell script as the `userdata `_. " -"When :code:`create_node` creates the instance, :code:`cloud-init` executes " -"the shell script in the :code:`userdata` variable." -msgstr "" -"Dalam hal ini, kami menyajikan sebuah skrip shell sebagai `userdata `_. " -"Ketika :code:`create_node` Menciptakan instance, :code:`cloud-init` " -"Mengeksekusi skrip shell di variable :code:`userdata`." - -msgid "" -"In this network layout, we assume that the OpenStack cloud in which you have " -"been building your application has a public network and tenant router that " -"was previously created by your cloud provider or by yourself, following the " -"instructions in the appendix." -msgstr "" -"Dalam tata letak jaringan ini, kami berasumsi bahwa awan OpenStack tempat " -"Anda membangun aplikasi Anda memiliki jaringan publik dan tenant router " -"(router penyewa) yang sebelumnya dibuat oleh penyedia awan Anda atau oleh " -"Anda sendiri, mengikuti petunjuk di lampiran." - -msgid "" -"In this template, the alarms use metadata that is attached to each worker " -"instance. The metadata is in the :code:`metering.stack=stack_id` format." -msgstr "" -"Dalam template ini, alarm menggunakan metadata yang dilampirkan pada setiap " -"instance pekerja. Metadata ada di format :code:`metering.stack=stack_id`." - -msgid "" -"In this tutorial, we have downloaded the latest version of our application " -"from source and installed it on a standard image. Our magic installation " -"script also updates the standard image to have the latest dependencies that " -"you need to run the application." -msgstr "" -"Dalam tutorial ini, kami telah mendownload versi terbaru dari aplikasi kami " -"dari sumber dan memasangnya pada image standar. Script instalasi magic kami " -"juga memperbarui image standar untuk memiliki dependensi terbaru yang Anda " -"butuhkan untuk menjalankan aplikasi." - -msgid "" -"In this tutorial, you interact with your OpenStack cloud through the SDK " -"that you chose in \"Choose your OpenStack SDK.\" This guide assumes that you " -"know how to run code snippets in your language of choice." -msgstr "" -"Dalam tutorial ini, Anda berinteraksi dengan awan OpenStack Anda melalui SDK " -"yang Anda pilih di \"Choose your OpenStack SDK.\" Panduan ini mengasumsikan " -"bahwa Anda tahu cara menjalankan code snippet (cuplikan kode) dalam bahasa " -"pilihan Anda." - -msgid "" -"In traditional data centers, network segments are dedicated to specific " -"types of network traffic." -msgstr "" -"Di pusat data tradisional, segmen jaringan didedikasikan untuk jenis lalu " -"lintas jaringan tertentu." - -msgid "In your SSH session, confirm that no fractals were generated:" -msgstr "" -"Dalam sesi SSH Anda, konfirmasikan bahwa tidak ada fractal yang dihasilkan:" - -msgid "" -"Initially, the focus is on scaling the workers because they consume the most " -"resources." -msgstr "" -"Awalnya, fokusnya adalah pada penskalaan workers karena mereka mengkonsumsi " -"sumber daya paling banyak." - -msgid "Install a service" -msgstr "Instal layanan" - -msgid "" -"Install the 'heat' command-line client by following this guide: https://docs." -"openstack.org/cli-reference/common/" -"cli_install_openstack_command_line_clients.html#install-the-clients" -msgstr "" -"Instal klien command-line 'heat' dengan mengikuti panduan ini: https://docs." -"openstack.org/cli-reference/common/" -"cli_install_openstack_command_line_clients.html#install-the-clients" - -msgid "" -"Internet connectivity from your cloud instance is required to download the " -"application." -msgstr "" -"Konektivitas internet dari instance awan Anda diperlukan untuk mendownload " -"aplikasi." - -msgid "Introduction to Floating IPs" -msgstr "Pengantar Floating IP (IP Mengambang)" - -msgid "Introduction to cloud-init" -msgstr "Perkenalan pada cloud-init" - -msgid "Introduction to key pairs" -msgstr "Pengantar key pair (pasangan kunci)" - -msgid "Introduction to security groups" -msgstr "Pengantar kelompok keamanan" - -msgid "Introduction to tenant networking" -msgstr "Pengantar jaringan tenant (penyewa)" - -msgid "Introduction to the fractals application architecture" -msgstr "Pengantar arsitektur aplikasi fraktal" - -msgid "" -"It is easy to split out services into multiple instances. We will create a " -"controller instance called :code:`app-controller`, which hosts the API, " -"database, and messaging services. We will also create a worker instance " -"called :code:`app-worker-1`, which just generates fractals." -msgstr "" -"Mudah untuk membagi layanan menjadi beberapa instance. Kita akan membuat " -"instance controller yang disebut :code:`app-controller`, yang menghosting " -"layanan API, database, dan pesan. Kami juga akan membuat instance pekerja " -"yang disebut :code:`app-worker-1`, yang hanya menghasilkan fraktal." - -msgid "It is not possible to restore deleted objects. Be careful." -msgstr "Tidak mungkin mengembalikan objek yang dihapus. Hati-hati." - -msgid "Java" -msgstr "Java" - -msgid "" -"Jclouds does not currently support OpenStack Orchestration. See this `bug " -"report `_." -msgstr "" -"Jclouds saat ini tidak mendukung OpenStack Orchestration. Lihat ini `bug " -"report `_." - -msgid "" -"Just as you back up information on a non-cloud server, you must back up non-" -"reproducible information, such as information on a database server, file " -"server, or in application log files. Just because something is 'in the " -"cloud' does not mean that the underlying hardware or systems cannot fail." -msgstr "" -"Sama seperti Anda membuat cadangan informasi pada server non-cloud, Anda " -"harus mencadangkan informasi yang tidak dapat direproduksi, seperti " -"informasi tentang server database, file server, atau file log aplikasi. " -"Hanya karena ada sesuatu 'in the cloud', itu tidak berarti bahwa perangkat " -"keras atau sistem yang mendasarinya tidak dapat gagal." - -msgid "Language" -msgstr "Bahasa" - -msgid "" -"Large file uploads that use the :code:`openstack-swift` provider are " -"supported in only jclouds V2, currently in beta. Also, the default chunk " -"size is 64 Mb. Consider changing this as homework." -msgstr "" -"Upload file besar yang menggunakan :code:`openstack-swift` provider hanya " -"didukung oleh jclouds V2, saat ini dalam versi beta. Juga, ukuran chunk " -"default adalah 64 Mb. Pertimbangkan untuk mengubah ini sebagai pekerjaan " -"rumah." - -msgid "Large objects" -msgstr "Objek besar" - -msgid "" -"Later on, you will use a Block Storage volume to provide persistent storage " -"for the database server for the Fractal application. But first, learn how to " -"create and attach a Block Storage device." -msgstr "" -"Nantinya, Anda akan menggunakan volume Block Storage untuk menyediakan " -"penyimpanan persisten ke server database untuk aplikasi Fractal. Tapi " -"pertama, pelajari cara membuat dan mengikat perangkat Block Storage." - -msgid "Launch an instance" -msgstr "Luncurkan sebuah instance" - -msgid "Launch the stack with auto-scaling workers:" -msgstr "Luncurkan stack dengan pekerja auto-scaling:" - -msgid "" -"Leave your shell open to use it for another instance deployment in this " -"section." -msgstr "" -"Biarkan shell Anda terbuka untuk menggunakannya pengerahan instance lain di " -"bagian ini." - -msgid "" -"Libcloud 0.16 and 0.17 are afflicted with a bug that means authentication to " -"a swift endpoint can fail with `a Python exception `_. If you encounter this, you can upgrade your " -"libcloud version, or apply a simple `2-line patch `_." -msgstr "" -"Libcloud 0,16 dan 0,17 menderita bug yang berarti otentikasi ke swift " -"endpoin bisa gagal `a Python exception `_. Jika Anda menjumpai ini, Anda bisa mengupgrade versi " -"libcloud Anda, atau aplikasikan yang sederhana `2-line patch `_." - -msgid "Libcloud does not support the OpenStack Networking API." -msgstr "Libcloud tidak mendukung OpenStack Networking API." - -msgid "" -"Libcloud uses a different connector for Object Storage to all other " -"OpenStack services, so a conn object from previous sections will not work " -"here and we have to create a new one named :code:`swift`." -msgstr "" -"Libcloud menggunakan konektor yang berbeda untuk Object Storage ke semua " -"layanan OpenStack lainnya, jadi sebuah objek sambung dari bagian sebelumnya " -"tidak akan bekerja di sini dan kita harus membuat yang baru bernama :code:" -"`swift`." - -msgid "" -"Like many cloud applications, the Fractals application has a `RESTful API " -"`_. You can " -"connect to it directly and generate fractals, or you can integrate it as a " -"component of a larger application. Any time a standard interface such as an " -"API is available, automated testing becomes much more feasible, increasing " -"software quality." -msgstr "" -"Seperti banyak aplikasi cloud, aplikasi Fractals memiliki `RESTful API " -"`_. Anda dapat " -"menghubungkannya secara langsung dan menghasilkan fraktal, atau Anda dapat " -"mengintegrasikannya sebagai komponen aplikasi yang lebih besar. Setiap saat " -"antarmuka standar seperti API tersedia, pengujian otomatis menjadi jauh " -"lebih layak, meningkatkan kualitas perangkat lunak." - -msgid "" -"List all available floating IPs for this project and select the first free " -"one. Allocate a new floating IP if none is available." -msgstr "" -"Buat daftar semua floating IP yang ada untuk proyek ini dan pilih yang " -"pertama bebas. Alokasikan floating IP baru jika tidak ada yang tersedia." - -msgid "" -"List objects in your :code:`fractals` container to see if the upload was " -"successful. Then, download the file to verify that the md5sum is the same:" -msgstr "" -"Daftar objek di kontainer Anda :code:`fractals` untuk melihat apakah upload " -"berhasil dilakukan. Kemudian, download file untuk memverifikasi bahwa md5sum " -"adalah sama:" - -msgid "Load balancing" -msgstr "Penyeimbang beban (load balancing)" - -msgid "Load the API: Create a lot of API service requests" -msgstr "Muat API: Buat banyak permintaan layanan API" - -msgid "" -"Load the worker: Create a lot of tasks to max out the CPU of existing worker " -"instances" -msgstr "" -"Muatkan pekerja: Buat banyak tugas untuk memaksimalkan CPU dari instance " -"pekerja yang ada" - -msgid "Log in to the server to run the following steps." -msgstr "Log in ke server untuk menjalankan langkah-langkah berikut." - -msgid "" -"Login to the worker instance, :code:`app-worker-1`, with SSH, using the " -"previous added SSH key pair \"demokey\". Start by getting the IP address of " -"the worker:" -msgstr "" -"Masuk ke instance pekerja, :code:`app-worker-1`, dengan SSH, gunakan " -"pasangan kunci SSH yang sebelumnya ditambahkan\"demokey \". Mulailah dengan " -"mendapatkan alamat IP pekerja:" - -msgid "Login with SSH and use the Fractal app" -msgstr "Login dengan SSH dan gunakan aplikasi Fractal" - -msgid "Look at which ports are available:" -msgstr "Lihatlah port mana yang tersedia:" - -msgid "" -"Make cloud-related architecture decisions such as turning functions into " -"micro-services and modularizing them." -msgstr "" -"Buat keputusan arsitektur cloud-related seperti mengubah fraction menjadi " -"layanan micro-service dan memodulasinya." - -msgid "Make it durable" -msgstr "Make it durable" - -msgid "Make it possible to add new resources to your application." -msgstr "Memungkinkan untuk menambahkan sumber daya baru ke aplikasi Anda." - -msgid "" -"Many of the network concepts that are discussed in this section are already " -"present in the diagram above. A tenant router provides routing and external " -"access for the worker nodes, and floating IP addresses are associated with " -"each node in the Fractal application cluster to facilitate external access." -msgstr "" -"Banyak konsep jaringan yang dibahas di bagian ini sudah ada pada diagram di " -"atas. Router penyewa menyediakan routing dan akses eksternal untuk node " -"pekerja, dan alamat IP mengambang (floating) dikaitkan dengan setiap node di " -"cluster aplikasi Fractal untuk memudahkan akses eksternal." - -msgid "" -"Maven will download and install any dependencies required for compilation, " -"then execute the Java compiler. All files in the :code:`java` subdirectory " -"will be compiled." -msgstr "" -"Maven akan mendownload dan menginstal dependensi apapun yang diperlukan " -"untuk kompilasi, kemudian jalankan compiler Java. Semua file di " -"subdirektori :code:`java` akan dikompilasi." - -msgid "" -"Maven will download and install any further dependencies required and then " -"run the chosen class." -msgstr "" -"Maven akan mendownload dan menginstal dependensi lebih lanjut yang " -"diperlukan dan kemudian menjalankan kelas yang dipilih." - -msgid "" -"Message queues are used to facilitate communication between the Fractal " -"application services. The Fractal application uses a `work queue `_ (or task queue) to " -"distribute tasks to the worker services." -msgstr "" -"Pesan antrian digunakan untuk memudahkan komunikasi antara layanan aplikasi " -"Fraktal. Aplikasi Fraktal menggunakan `work queue `_ (atau task queue) untuk " -"mendistribusikan task (tugas) ke layanan pekerja." - -msgid "" -"Message queues work in a way similar to a queue (or a line, for those of us " -"on the other side of the ocean) in a bank being served by multiple clerks. " -"The message queue in our application provides a feed of work requests that " -"can be taken one-at-a-time by worker services, whether there is a single " -"worker service or hundreds of them." -msgstr "" -"Pesan antrian bekerja dengan cara yang mirip dengan antrean (atau berbaris, " -"bagi kita di sisi lain lautan) di bank yang dilayani oleh beberapa pegawai. " -"Antrian pesan dalam aplikasi kami memberikan umpan permintaan kerja yang " -"dapat dilakukan satu per satu oleh pekerja, apakah ada satu layanan pekerja " -"ataupun ratusan di antaranya." - -msgid "Modularity and micro-services" -msgstr "Modularitas dan micro-services" - -msgid "Monitoring" -msgstr "Mengamati" - -msgid "" -"Monitoring is essential for 'scalable' cloud applications. You must know how " -"many requests are coming in and the impact that these requests have on " -"various services. You must have enough information to determine whether to " -"start another worker or API service as you did in :doc:`/scaling_out`." -msgstr "" -"Pemantauan sangat penting untuk aplikasi awan 'scalable'. Anda harus tahu " -"berapa banyak permintaan yang masuk dan dampak dari permintaan ini terhadap " -"berbagai layanan. Anda harus memiliki cukup informasi untuk menentukan " -"apakah akan memulai layanan pekerja (worker) atau API lain seperti yang Anda " -"lakukan di :doc:`/scaling_out`." - -msgid "" -"Most cloud providers make a public network accessible to you. We will attach " -"a router to this public network to grant Internet access to our instances. " -"After also attaching this router to our internal networks, we will allocate " -"floating IPs from the public network for instances which need to be accessed " -"from the Internet." -msgstr "" -"Sebagian besar penyedia layanan cloud membuat jaringan publik dapat diakses " -"oleh Anda. Kami akan memasang router ke jaringan publik ini untuk memberikan " -"akses Internet ke instance kami. Setelah memasang router ini ke jaringan " -"internal kami, kami akan mengalokasikan IP floating dari jaringan publik " -"untuk instance yang perlu diakses dari Internet." - -msgid "" -"Most cloud providers provision all network objects that are required to boot " -"an instance. To determine whether these objects were created for you, access " -"the Network Topology section of the OpenStack dashboard." -msgstr "" -"Sebagian besar penyedia layanan awan menyediakan semua objek jaringan yang " -"diperlukan untuk melakukan booting sebuah instance. Untuk menentukan apakah " -"objek ini dibuat untuk Anda, akses bagian Network Topology pada dasbor " -"OpenStack." - -msgid "" -"Most instances require access to the Internet. The instances in your " -"Fractals app are no exception! Add routers to pass traffic between the " -"various networks that you use." -msgstr "" -"Sebagian besar instance memerlukan akses ke Internet. Instance di aplikasi " -"Fraktal Anda tidak terkecuali! Tambahkan router untuk melewati lalu lintas " -"antara berbagai jaringan yang Anda gunakan." - -msgid "Multiple clouds" -msgstr "Multiple clouds" - -msgid "Name" -msgstr "Nama" - -msgid "" -"Network access. By default, OpenStack filters all traffic. You must create a " -"security group and apply it to your instance. The security group allows HTTP " -"and SSH access. We will go into more detail in :doc:`/introduction`." -msgstr "" -"Akses jaringan. Secara default, OpenStack menyaring semua lalu lintas. Anda " -"harus membuat grup keamanan dan menerapkannya pada instance Anda. Grup " -"keamanan mengizinkan akses HTTP dan SSH. Kami akan membahas lebih rinci :doc:" -"`/introduction`." - -msgid "Networking" -msgstr "Jaringan" - -msgid "Networking segmentation" -msgstr "Segmentasi jaringan" - -msgid "Neutron LbaaS API" -msgstr "Neutron LbaaS API" - -msgid "Next steps" -msgstr "Langkah selanjutnya" - -msgid "" -"Next, back up all existing fractals from the database to the swift " -"container. A simple loop takes care of that:" -msgstr "" -"Selanjutnya, cadangkan semua fraktal yang ada dari database ke swift " -"container. Sebuah loop sederhana menangani hal itu:" - -msgid "Next, create a network and subnet for the API servers." -msgstr "Selanjutnya, buat jaringan dan subnet untuk server API." - -msgid "Next, create a network and subnet for the workers." -msgstr "Selanjutnya, buat jaringan dan subnet untuk para pekerja." - -msgid "" -"Next, create additional floating IPs. Specify the fixed IP addresses they " -"should point to and the ports that they should use:" -msgstr "" -"Selanjutnya, buat floating IP tambahan. Tentukan alamat IP tetap yang harus " -"mereka tunjuk dan port yang harus mereka gunakan:" - -msgid "Next, start a second instance, which will be the worker instance:" -msgstr "Selanjutnya, mulai instance kedua, yang akan menjadi instance pekerja:" - -msgid "Next, tell the script which flavor you want to use:" -msgstr "Selanjutnya, beritahu script yang flavor ingin Anda gunakan:" - -msgid "" -"Note that the worker instance is part of an :code:`OS::Heat::" -"AutoScalingGroup`." -msgstr "" -"Perhatikan bahwa instance pekerja adalah bagian dari :code:`OS::Heat::" -"AutoScalingGroup`." - -msgid "" -"Note that this time, when you create a security group, you include a rule " -"that applies to only instances that are part of the worker group." -msgstr "" -"Perhatikan bahwa saat ini, saat Anda membuat grup keamanan, Anda menyertakan " -"aturan yang hanya berlaku untuk instance yang merupakan bagian dari grup " -"pekerja." - -msgid "" -"Note that we will be showing the commands in a more idiomatic Java way: as " -"methods on a class." -msgstr "" -"Perhatikan bahwa kita akan menunjukkan perintah dengan Java way: yang lebih " -"idiomatik: sebagai metode di kelas." - -msgid "" -"Notice that you have added this instance to the worker_group, so it can " -"access the controller." -msgstr "" -"Perhatikan bahwa Anda telah menambahkan instance ini ke worker_group, " -"sehingga bisa mengakses controller." - -msgid "" -"Now call the Fractal application's command line interface (:code:`faafo`) to " -"request a few new fractals. The following command requests a few fractals " -"with random parameters:" -msgstr "" -"Sekarang panggil antarmuka command line aplikasi Fraktal (:code:`faafo`) " -"untuk meminta beberapa fraktal baru. Perintah berikut meminta beberapa " -"fraktal dengan parameter acak:" - -msgid "" -"Now create a virtual IP that will be used to direct traffic between the " -"various members of the pool:" -msgstr "" -"Sekarang buat IP virtual yang akan digunakan untuk mengarahkan lalu lintas " -"antar berbagai anggota pool:" - -msgid "" -"Now if you make a request for a new fractal, you connect to the controller " -"instance, :code:`app-controller`, but the work will actually be performed by " -"a separate worker instance - :code:`app-worker-1`." -msgstr "" -"Sekarang jika Anda membuat permintaan untuk fraktal baru, Anda terhubung ke " -"instance pengontrol, :code:`app-controller`, tapi pekerjaan sebenarnya akan " -"dilakukan oleh instance pekerja yang terpisah - :code:`app-worker-1`." - -msgid "" -"Now log into the controller instance, :code:`app-controller`, also with SSH, " -"using the previously added SSH key pair \"demokey\"." -msgstr "" -"Sekarang masuk ke instance controller, :code:`app-controller`, juga dengan " -"SSH, gunakan pasangan kunci SSH yang sebelumnya ditambahkan\"demokey \"." - -msgid "Now prepare the empty block device." -msgstr "Sekarang siapkan perangkat blok kosong." - -msgid "" -"Now request an address from this network to be allocated to your project." -msgstr "" -"Sekarang minta alamat dari jaringan ini untuk dialokasikan ke proyek Anda." - -msgid "" -"Now request that an address from this pool be allocated to your project." -msgstr "" -"Sekarang minta agar alamat dari kolam ini dialokasikan untuk proyek Anda." - -msgid "" -"Now that you have an unused floating IP address allocated to your project, " -"attach it to an instance." -msgstr "" -"Sekarang Anda memiliki alamat floating IP yang tidak terpakai yang " -"dialokasikan untuk proyek Anda, kaitkan ke sebuah instance." - -msgid "" -"Now that you have got the networks created, go ahead and create two Floating " -"IPs, for web servers. Ensure that you replace 'public' with the name of the " -"public/external network offered by your cloud provider." -msgstr "" -"Sekarang setelah Anda mendapatkan jaringan yang dibuat, lanjutkan dan buat " -"dua Floating IP, untuk server web. Pastikan Anda mengganti 'public' dengan " -"nama jaringan public/external yang ditawarkan oleh penyedia awan Anda." - -msgid "" -"Now that you have prepared the networking infrastructure, you can go ahead " -"and boot an instance on it. Ensure you use appropriate flavor and image " -"values for your cloud - see :doc:`getting_started` if you have not already." -msgstr "" -"Sekarang setelah Anda mempersiapkan infrastruktur jaringan, Anda bisa terus " -"maju dan melakukan booting sebuah instance di dalamnya. Pastikan Anda " -"menggunakan nilai flavor dan image yang sesuai untuk awan Anda - lihat :doc: " -"`getting_started` jika Anda belum melakukannya." - -msgid "" -"Now that you know how to create and delete instances, you can deploy the " -"sample application. The instance that you create for the application is " -"similar to the first instance that you created, but this time, we introduce " -"a few extra concepts." -msgstr "" -"Sekarang setelah Anda tahu cara membuat dan menghapus instance, Anda dapat " -"menerapkan contoh aplikasi tersebut. Instance yang Anda buat untuk aplikasi " -"ini mirip dengan instance pertama yang Anda buat, tapi kali ini, kami " -"memperkenalkan beberapa konsep tambahan." - -msgid "Now you can SSH into the instance:" -msgstr "Sekarang Anda bisa SSH ke instance:" - -msgid "Now, attach your router to the worker, API, and web server subnets." -msgstr "Sekarang, pasang router Anda ke subnet pekerja, API, dan web server." - -msgid "" -"Now, create a health monitor that will ensure that members of the load " -"balancer pool are active and able to respond to requests. If a member in the " -"pool dies or is unresponsive, the member is removed from the pool so that " -"client requests are routed to another active member." -msgstr "" -"Sekarang, buatlah monitor kesehatan yang akan memastikan bahwa anggota load " -"balancer pool aktif dan mampu merespons permintaan. Jika anggota di pool " -"mati atau tidak responsif, anggota tersebut dikeluarkan dari pool sehingga " -"permintaan klien diarahkan ke anggota aktif lainnya." - -msgid "Now, create a network and subnet for the web servers." -msgstr "Sekarang, buat jaringan dan subnet untuk server web." - -msgid "Now, look at the big picture." -msgstr "Sekarang, lihatlah gambaran besarnya." - -msgid "Now, no more objects are available in the :code:`fractals` container." -msgstr "" -"Sekarang, tidak ada lagi benda yang tersedia di container :code:`fractals``." - -msgid "" -"Now, wait until all the fractals are generated and the instances have idled " -"for some time." -msgstr "" -"Sekarang, tunggu sampai semua fractal dihasilkan dan instance telah hilang " -"selama beberapa waktu." - -msgid "Now, you can boot and configure the instance." -msgstr "Sekarang, Anda bisa boot dan mengkonfigurasi instance." - -msgid "Now, you can launch the instance." -msgstr "Sekarang, Anda bisa meluncurkan instance." - -msgid "Obtain the following information from your cloud provider:" -msgstr "Dapatkan informasi berikut dari penyedia awan Anda:" - -msgid "" -"Of course there is also a web interface which offers a more human friendly " -"way of accessing the API to view the created fractal images, and a simple " -"command line interface." -msgstr "" -"Tentu saja ada juga antarmuka web yang menawarkan cara yang lebih ramah " -"untuk mengakses API untuk melihat image fraktal yang dibuat, dan antarmuka " -"command line yang sederhana." - -msgid "" -"Of course, creating a monitoring system for a single application might not " -"make sense. To learn how to use the OpenStack Orchestration monitoring and " -"auto-scaling capabilities to automate these steps, see :doc:`orchestration`." -msgstr "" -"Tentu saja, membuat sistem pemantauan untuk satu aplikasi mungkin tidak " -"masuk akal. Untuk mempelajari cara menggunakan pemantauan OpenStack " -"Orchestration dan kemampuan penskalaan otomatis untuk mengotomatisasi " -"langkah-langkah ini, lihat :doc:`orchestration`." - -msgid "" -"Of course, having access to additional resources is only part of the game " -"plan; while you can manually add or delete resources, you get more value and " -"more responsiveness if the application automatically requests additional " -"resources when it needs them." -msgstr "" -"Tentu saja, memiliki akses ke sumber daya tambahan hanyalah bagian dari " -"rencana permainan; Sementara Anda dapat menambahkan atau menghapus sumber " -"daya secara manual, Anda mendapatkan nilai lebih dan lebih responsif jika " -"aplikasi meminta secara otomatis sumber daya tambahan saat dibutuhkan." - -msgid "Official Python-based library for OpenStack." -msgstr "Perpustakaan berbasis Python yang resmi untuk OpenStack." - -msgid "" -"Once you have configured permissions, you must know where to access the " -"application." -msgstr "" -"Setelah Anda mengkonfigurasi izin, Anda harus tahu di mana mengakses " -"aplikasi." - -msgid "Once you have created a rule or group, you can also delete it:" -msgstr "Setelah membuat aturan atau grup, Anda juga dapat menghapusnya:" - -msgid "" -"Once you have logged in, check to see whether the worker service process is " -"running as expected. You can find the logs of the worker service in the " -"directory :code:`/var/log/supervisor/`." -msgstr "" -"Setelah Anda masuk (logged in), periksa untuk melihat apakah proses layanan " -"pekerja berjalan seperti yang diharapkan. Anda dapat menemukan log dari " -"layanan pekerja di direktori :code:`/var/log/supervisor/`." - -msgid "" -"One of the latest trends in scalable cloud application deployment is " -"`continuous integration `_ and `continuous deployment `_ (CI/CD)." -msgstr "" -"Salah satu tren terbaru penerapan aplikasi cloud scalable ini `continuous " -"integration `_ dan " -"`continuous deployment `_ " -"(CI/CD)." - -msgid "" -"Open :code:`top` to monitor the CPU usage of the :code:`faafo-worker` " -"process." -msgstr "" -"Buka :code:`top` untuk memantau penggunaan CPU dari proses :code:`faafo-" -"worker`." - -msgid "" -"OpenStack Object Storage automatically replicates each object at least twice " -"before returning 'write success' to your API call. A good strategy is to " -"keep three copies of objects, by default, at all times, replicating them " -"across the system in case of hardware failure, maintenance, network outage, " -"or another kind of breakage. This strategy is very convenient for app " -"creation. You can just dump objects into object storage and not worry about " -"the additional work that it takes to keep them safe." -msgstr "" -"OpenStack Object Storage secara otomatis mereplikasi setiap objek setidaknya " -"dua kali sebelum mengembalikan 'write success' ke panggilan API Anda. " -"Strategi yang bagus adalah menyimpan tiga salinan objek, secara default, " -"setiap saat, mereplikasi di seluruh sistem jika terjadi kegagalan perangkat " -"keras, perawatan, pemadaman jaringan, atau jenis kerusakan lainnya. Strategi " -"ini sangat cocok untuk pembuatan aplikasi. Anda bisa membuang barang (dump " -"object) ke dalam penyimpanan objek dan tidak khawatir dengan pekerjaan " -"tambahan yang diperlukan agar mereka tetap aman." - -msgid "OpenStack SDK" -msgstr "OpenStack SDK" - -msgid "OpenStack SDK for Microsoft .NET" -msgstr "OpenStack SDK untuk Microsoft .NET" - -msgid "OpenStack SDKs" -msgstr "OpenStack SDKs" - -msgid "" -"OpenStack provides a couple of tools that make it easy to back up data. If " -"your provider runs OpenStack Object Storage, you can use its API calls and " -"CLI tools to work with archive files." -msgstr "" -"OpenStack menyediakan beberapa tool yang memudahkan backup data. Jika " -"penyedia Anda menjalankan OpenStack Object Storage, Anda dapat menggunakan " -"API call dan CLI tool untuk bekerja dengan file arsip." - -msgid "" -"OpenStack supports 'regions', which are geographically-separated " -"installations that are connected to a single service catalog. This section " -"explains how to expand the Fractal application to use multiple regions for " -"high availability." -msgstr "" -"OpenStack mendukung 'regions', yang merupakan instalasi yang dipisahkan " -"secara geografis yang terhubung ke katalog layanan tunggal. Bagian ini " -"menjelaskan bagaimana memperluas aplikasi Fractal untuk menggunakan beberapa " -"daerah untuk ketersediaan tinggi (high availability)." - -msgid "Or, try one of these tutorial steps:" -msgstr "Atau, cobalah salah satu langkah tutorial berikut:" - -msgid "Orchestration" -msgstr "Orchestration" - -msgid "" -"Other features, such as creating volume snapshots, are useful for backups:" -msgstr "Fitur lainnya, seperti membuat snapshot volume, berguna untuk backup:" - -msgid "" -"Other versions of this guide show you how to use the other SDKs and " -"languages to complete these tasks. If you are a developer for another " -"toolkit that you would like this guide to include, feel free to submit code " -"snippets. For more information, contact `OpenStack Documentation team " -"`_ members." -msgstr "" -"Versi lain dari panduan ini menunjukkan cara menggunakan SDK dan bahasa " -"lainnya untuk menyelesaikan tugas ini. Jika Anda adalah pengembang untuk " -"toolkit lain yang ingin disertakan dalam panduan ini, jangan ragu untuk " -"mengirimkan cuplikan kode. Untuk informasi lebih lanjut, hubungi anggota " -"`OpenStack Documentation team `_." - -msgid "" -"Otherwise, continue reading to learn how to work with, and move the Fractal " -"application database server to use, block storage." -msgstr "" -"Jika tidak, lanjutkan membaca untuk belajar bagaimana bekerja dengan, dan " -"memindahkan server database aplikasi Fractal untuk digunakan, blokir " -"penyimpanan." - -msgid "" -"Our code samples use `Java 8 `_." -msgstr "" -"Sampel kode kami digunakan `Java 8 `_." - -msgid "PHP" -msgstr "PHP" - -msgid "" -"PHP-OpenCloud supports the OpenStack Networking API, but this section has " -"not been completed." -msgstr "" -"PHP-OpenCloud mendukung OpenStack Networking API, namun bagian ini belum " -"selesai." - -msgid "" -"PHP-opencloud supports OpenStack Orchestration :D:D:D but this section is " -"not written yet." -msgstr "" -"PHP-opencloud mendukung OpenStack Orchestration :D:D:D tapi bagian ini belum " -"ditulis." - -msgid "Parameter" -msgstr "Parameter" - -msgid "" -"Perhaps you can `contribute `_?" -msgstr "" -"Mungkin kamu bisa `contribute `_?" - -msgid "Phoenix servers" -msgstr "Server Phoenix" - -msgid "" -"Pkgcloud supports OpenStack Orchestration :D:D:D but this section is `not " -"written yet `_" -msgstr "" -"Pkgcloud mendukung OpenStack Orchestration :D:D:D tapi bagian ini `not " -"written yet `_" - -msgid "" -"Pkgcloud supports the OpenStack Networking API, but this section has not " -"been completed." -msgstr "" -"Pkgcloud mendukung OpenStack Networking API, namun bagian ini belum selesai." - -msgid "" -"Place the above pom.xml into the root directory of your project. Then create " -"the nested subdirectory tree :code:`src` -> :code:`main` -> :code:`java`. " -"Place the Java code samples that you copy from this book into the folder " -"named \":code:`java`\"." -msgstr "" -"Tempatkan pom.xml di atas ke dalam direktori root proyek Anda. Kemudian buat " -"pohon subdirektori nested :code:`src` -> :code:`main` -> :code:`java`. " -"Tempatkan contoh kode Java yang Anda salin dari buku ini ke dalam folder " -"bernama \":code:`java`\"." - -msgid "Place the images in the :code:`fractals` container:" -msgstr "Tempatkan image di kontainer :code:`fractals`:" - -msgid "" -"Previously, you manually created the database, which is useful for a single " -"database that you rarely update. However, the OpenStack :code:`trove` " -"component provides Database as a Service (DBaaS)." -msgstr "" -"Sebelumnya, Anda secara manual membuat database, yang berguna untuk database " -"tunggal yang jarang Anda update. Namun, komponen OpenStack :code:`trove` " -"menyediakan Database sebagai Layanan (DBaaS)." - -msgid "" -"Prior to this section, the network layout for the Fractal application would " -"be similar to the following diagram:" -msgstr "" -"Sebelum bagian ini, tata letak jaringan untuk aplikasi Fraktal akan serupa " -"dengan diagram berikut:" - -msgid "Programmatic interfaces (APIs)" -msgstr "Programmatic interfaces (APIs)" - -msgid "Python" -msgstr "Python" - -msgid "Regions and geographic diversity" -msgstr "Kawasan dan keanekaragaman geografis" - -msgid "Remove the existing app" -msgstr "Hapus aplikasi yang ada" - -msgid "" -"Removing the egress rule created by OpenStack will cause your instance " -"networking to break." -msgstr "" -"Menghapus aturan egress yang dibuat oleh OpenStack akan menyebabkan jaringan " -"instance Anda terputus." - -msgid "" -"Replace :code:`IP_API_1` and :code:`IP_API_2` with the corresponding " -"floating IPs. Replace FRACTAL_UUID with the UUID of an existing fractal." -msgstr "" -"Ganti :code:`IP_API_1` dan :code:`IP_API_2` dengan IP mengambang yang " -"sesuai. Ganti FRACTAL_UUID dengan UUID dari fraktal yang ada." - -msgid "Replace :code:`IP_API_1` with the IP address of the API instance." -msgstr "Ganti :code:`IP_API_1` dengan alamat IP dari instance API." - -msgid "" -"Replace :code:`IP_API_1` with the IP address of the first API instance and " -"USERNAME with the appropriate user name." -msgstr "" -"Ganti :code:`IP_API_1` dengan alamat IP dari instance API pertama dan " -"USERNAME dengan nama pengguna yang sesuai." - -msgid "" -"Replace :code:`IP_CONTROLLER` with the IP address of the controller instance " -"and USERNAME to the appropriate user name." -msgstr "" -"Ganti :code:`IP_CONTROLLER` dengan alamat IP dari instance controller dan " -"USERNAME ke nama pengguna yang sesuai." - -msgid "" -"Replace :code:`IP_CONTROLLER` with the IP address of the controller instance " -"and USERNAME with the appropriate user name." -msgstr "" -"Ganti :code:`IP_CONTROLLER` dengan alamat IP dari instance controller dan " -"USERNAME dengan nama pengguna yang sesuai." - -msgid "" -"Replace :code:`IP_CONTROLLER` with the IP address of the controller instance." -msgstr "Ganti :code:`IP_CONTROLLER` dengan alamat IP dari instance controller." - -msgid "" -"Replace :code:`IP_DATABASE` with the IP address of the database instance and " -"USERNAME to the appropriate user name." -msgstr "" -"Ganti :code:`IP_DATABASE` dengan alamat IP dari instance database dan " -"USERNAME ke nama pengguna yang sesuai." - -msgid "" -"Replace :code:`IP_WORKER_1` with the IP address of the worker instance and " -"USERNAME to the appropriate user name." -msgstr "" -"Menggantikan :code:`IP_WORKER_1` Dengan alamat IP dari instance pekerja dan " -"USERNAME ke nama pengguna yang sesuai." - -msgid "" -"Replace :code:`IP_WORKER` with the IP address of the worker instance and " -"USERNAME with the appropriate user name." -msgstr "" -"Ganti :code:`IP_WORKER` dengan alamat IP dari instance pekerja dan USERNAME " -"dengan nama pengguna yang sesuai." - -msgid "Ruby" -msgstr "Ruby" - -msgid "" -"Run the :code:`ceilometer_statistics_query`: command to see the derived " -"statistics." -msgstr "" -"Jalankan perintah :code:`ceilometer_statistics_query`: untuk melihat " -"statistik turunan." - -msgid "" -"Run the :code:`nova list` command to confirm that the :code:`OS::Heat::" -"AutoScalingGroup` has created more instances:" -msgstr "" -"Jalankan perintah :code:`nova list` untuk memastikan bahwa :code:`OS::Heat::" -"AutoScalingGroup` telah menciptakan lebih banyak instance:" - -msgid "" -"Run the :code:`nova list` command to confirm that the :code:`OS::Heat::" -"AutoScalingGroup` removed the unneeded instances:" -msgstr "" -"Jalankan perintah :code:`nova list` untuk memastikan bahwa :code:`OS::Heat::" -"AutoScalingGroup` menghapus instance yang tidak dibutuhkan:" - -msgid "" -"Run the :code:`nova list` command. This template created three instances:" -msgstr "" -"Jalankan perintah :code:`nova list`. Template ini membuat tiga instance:" - -msgid "Run the script to start the deployment." -msgstr "Jalankan skrip untuk memulai pengerahan." - -msgid "" -"SDKs do not generally support the service yet, but you can use the 'trove' " -"command-line client to work with it instead." -msgstr "" -"SDK pada umumnya tidak mendukung layanan ini, namun Anda bisa menggunakan " -"'trove' command-line client untuk bekerja dengannya." - -msgid "Scalability" -msgstr "Skalabilitas" - -msgid "Scale available resources up and down." -msgstr "Skala sumber daya yang tersedia naik dan turun." - -msgid "Scale the API service" -msgstr "Skala layanan API" - -msgid "Scale the workers" -msgstr "Skala pekerja" - -msgid "Scaling out" -msgstr "Scaling out" - -msgid "Security" -msgstr "Keamanan" - -msgid "" -"Security groups are sets of network access rules that are applied to an " -"instance's networking. By default, only egress (outbound) traffic is " -"allowed. You must explicitly enable ingress (inbound) network access by " -"creating a security group rule." -msgstr "" -"Kelompok keamanan adalah kumpulan aturan akses jaringan yang diterapkan pada " -"jaringan instance. Secara default, hanya lalu lintas jalan keluar (outbound) " -"yang diperbolehkan. Anda harus secara eksplisit mengaktifkan akses jaringan " -"masuk (inbound) dengan membuat aturan kelompok keamanan." - -msgid "" -"Security is important when it comes to your instances; you can not have just " -"anyone accessing them. To enable logging into an instance, you must provide " -"the public key of an SSH key pair during instance creation. In section one, " -"you created and uploaded a key pair to OpenStack, and cloud-init installed " -"it for the user account." -msgstr "" -"Keamanan penting bila menyangkut instance Anda; Anda tidak bisa memiliki " -"siapa pun yang mengaksesnya. Untuk mengaktifkan masuk ke sebuah instance, " -"Anda harus menyediakan kunci publik dari pasangan kunci SSH selama pembuatan " -"instance. Pada bagian pertama, Anda membuat dan mengunggah pasangan kunci ke " -"OpenStack, dan cloud-init memasangnya untuk akun pengguna." - -msgid "" -"See `configure shade `_, to configure your cloud using a profile." -msgstr "" -"Lihat `configure shade `_, untuk mengkonfigurasi cloud Anda menggunakan profil." - -msgid "See the state of the alarms set up by the template:" -msgstr "Lihat keadaan alarm yang diatur oleh template:" - -msgid "" -"Set the image and size variables to appropriate values for your cloud. We " -"will use these variables in later sections." -msgstr "" -"Tetapkan variabel image dan ukuran ke nilai yang sesuai untuk awan Anda. " -"Kami akan menggunakan variabel-variabel ini di bagian selanjutnya." - -msgid "Shade" -msgstr "Shade" - -msgid "" -"Shade's create_object function has a \"use_slo\" parameter (that defaults to " -"true) which will break your object into smaller objects for upload and " -"rejoin them if needed." -msgstr "" -"Fungsi shade's create_object memiliki parameter \"use_slo\" (yang default " -"true) yang akan memecah objek Anda menjadi objek yang lebih kecil untuk " -"diunggah dan bergabung kembali dengannya jika diperlukan." - -msgid "" -"Similar to the UNIX programming model, an object, such as a document or an " -"image, is a \"bag of bytes\" that contains data. You use containers to group " -"objects. You can place many objects inside a container, and your account can " -"have many containers." -msgstr "" -"Mirip dengan model pemrograman UNIX, sebuah objek, seperti dokumen atau " -"image, adalah \"bag of bytes\" yang berisi data. Anda menggunakan kontainer " -"untuk mengelompokkan objek. Anda dapat menempatkan banyak benda di dalam " -"kontainer, dan akun Anda dapat memiliki banyak kontainer." - -msgid "" -"So what exactly was that request doing at the end of the previous section? " -"Let us look at it again. In this subsection, we are just explaining what you " -"have already done in the previous section; you do not need to run these " -"commands again." -msgstr "" -"Jadi apa sebenarnya permintaan itu di akhir bagian sebelumnya? Mari kita " -"lihat lagi. Dalam subbagian ini, kami hanya menjelaskan apa yang telah Anda " -"lakukan di bagian sebelumnya; Anda tidak perlu menjalankan perintah ini lagi." - -msgid "" -"So, for example, the file named :code:`GettingStarted.java` from the end of " -"this chapter would be located as follows:" -msgstr "" -"Jadi, misalnya, file yang bernama :code:`GettingStarted.java` dari akhir bab " -"ini akan ditempatkan sebagai berikut:" - -msgid "Specify a network during instance build" -msgstr "Tentukan jaringan selama pembangunan instance" - -msgid "" -"Specify an external gateway for your router to tell OpenStack which network " -"to use for Internet access." -msgstr "" -"Tentukan gateway eksternal untuk router Anda untuk memberitahu OpenStack " -"yang jaringannya akan digunakan untuk akses Internet." - -msgid "Specify the flavor ID that you would like to use." -msgstr "Tentukan ID flavor yang ingin Anda gunakan." - -msgid "" -"Spend some time playing with the stack and the Fractal app to see how it " -"works." -msgstr "" -"Luangkan waktu untuk bermain dengan stack dan aplikasi Fractal untuk melihat " -"cara kerjanya." - -msgid "Split the database and message queue" -msgstr "Memisahkan database dan message queue" - -msgid "Splitting services across multiple instances" -msgstr "Memisahkan layanan di beberapa instance" - -msgid "" -"Start by creating a security group for the all-in-one instance and adding " -"the appropriate rules, such as HTTP (TCP port 80) and SSH (TCP port 22):" -msgstr "" -"Mulailah dengan membuat grup keamanan untuk instance all-in-one dan " -"menambahkan aturan yang sesuai, seperti HTTP (port TCP 80) dan SSH (port TCP " -"22):" - -msgid "Start by looking at what is already in place." -msgstr "Mulailah dengan melihat apa yang sudah ada." - -msgid "" -"Stop the running MySQL database service and move the database files from :" -"file:`/var/lib/mysql` to the new volume, which is temporarily mounted at :" -"file:`/mnt/database`." -msgstr "" -"Hentikan layanan database MySQL yang berjalan dan pindahkan file database " -"dari :file:`/var/lib/mysql` ke volume baru, yang sementara dipasang di :" -"file:`/mnt/database`." - -msgid "" -"Swift metadata keys are prepended with \"x-object-meta-\" so when you get " -"the object with get_object(), in order to get the value of the metadata your " -"key will be \"x-object-meta-foo\"." -msgstr "" -"Swift metadata keys ditambahkan dengan \"x-object-meta-\" juga saat Anda " -"mendapatkan objek dengan get_object (), untuk mendapatkan nilai metadata, " -"key Anda akan menjadi \"x-object-meta-foo\"." - -msgid "" -"Sync the file systems and mount the block device that contains the database " -"files to :file:`/var/lib/mysql`." -msgstr "" -"Sinkronkan sistem file dan mount perangkat blok yang berisi file database " -"ke :file:`/var/lib/mysql`." - -msgid "" -"That brings us to where we ended up at the end of :doc:`/getting_started`. " -"But where do we go from here?" -msgstr "" -"Itu membawa kita ke tempat kita berakhir di akhir :doc:`/getting_started`. " -"Tapi kemana kita pergi dari sini?" - -msgid "" -"That example is simplistic, of course, but the flexibility of the resource " -"object enables the creation of templates that contain all the required cloud " -"infrastructure to run an application, such as load balancers, block storage " -"volumes, compute instances, networking topology, and security policies." -msgstr "" -"Contohnya sederhana, tentu saja, tapi fleksibilitas dari objek sumber daya " -"memungkinkan pembuatan template yang berisi semua infrastruktur awan yang " -"dibutuhkan untuk menjalankan aplikasi, seperti load balancer, block storage " -"volume, compute instance, networking topology, and security policy." - -msgid "" -"That, as it happens, is the new reality of programming. Applications and " -"systems used to be created on large, expensive servers, cared for by " -"operations staff dedicated to keeping them healthy. If something went wrong " -"with one of those servers, the staff's job was to do whatever it took to " -"make it right again and save the server and the application." -msgstr "" -"Itu, seperti yang terjadi, adalah realitas baru pemrograman. Aplikasi dan " -"sistem yang digunakan untuk dibuat di server besar dan mahal, dirawat oleh " -"staf operasi yang berdedikasi untuk menjaga kesehatan mereka. Jika ada yang " -"tidak beres dengan salah satu server tersebut, tugas staf adalah melakukan " -"apa pun untuk memperbaikinya lagi dan menyimpan server dan aplikasinya." - -msgid "" -"The :code:`OS::Heat::AutoScalingGroup` removes instances in creation order. " -"So the worker instance that was created first is the first instance to be " -"removed." -msgstr "" -"The :code:`OS::Heat::AutoScalingGroup` menghapus instance dalam urutan " -"pembuatan. Jadi instance pekerja yang dibuat pertama adalah instance pertama " -"yang harus dihapus." - -msgid "" -"The :doc:`/introduction` section describes how to build in a modular " -"fashion, create an API, and other aspects of the application architecture. " -"Now you will see why those strategies are so important. By creating a " -"modular application with decoupled services, you can identify components " -"that cause application performance bottlenecks and scale them out. Just as " -"importantly, you can also remove resources when they are no longer " -"necessary. It is very difficult to overstate the cost savings that this " -"feature can bring, as compared to traditional infrastructure." -msgstr "" -"Bagian :doc:`/introduction` menjelaskan bagaimana membangun secara modular, " -"membuat API, dan aspek arsitektur aplikasi lainnya. Sekarang Anda akan " -"melihat mengapa strategi tersebut sangat penting. Dengan membuat aplikasi " -"modular dengan layanan decoupled, Anda dapat mengidentifikasi komponen yang " -"menyebabkan kemacetan kinerja aplikasi dan memperkecilnya. Sama pentingnya, " -"Anda juga dapat menghapus sumber daya saat tidak diperlukan lagi. Sangat " -"sulit untuk melebih-lebihkan penghematan biaya yang bisa diperoleh fitur " -"ini, dibandingkan dengan infrastruktur tradisional." - -msgid "" -"The CPU utilization across workers increases as workers start to create the " -"fractals." -msgstr "" -"Pemanfaatan CPU di seluruh pekerja meningkat saat para pekerja mulai " -"menciptakan fractal." - -msgid "" -"The Fractals app currently uses the local file system on the instance to " -"store the images that it generates. For a number of reasons, this approach " -"is not scalable or durable." -msgstr "" -"Aplikasi Fractal saat ini menggunakan sistem file lokal pada instance untuk " -"menyimpan image yang dihasilkannya. Untuk sejumlah alasan, pendekatan ini " -"tidak terukur atau awet." - -msgid "" -"The Fractals application was designed with the principles of the previous " -"subsection in mind. You will note that in :doc:`getting_started`, we " -"deployed the application in an all-in-one style, on a single virtual " -"machine. This is not a good practice, but because the application uses micro-" -"services to decouple logical application functions, we can change this " -"easily." -msgstr "" -"Aplikasi Fractals dirancang dengan prinsip-prinsip dari subbagian " -"sebelumnya. Anda akan mencatat itu di :doc:`getting_started`, kami " -"menerapkan aplikasi dengan gaya all-in-one, pada satu mesin virtual. Ini " -"bukan praktik yang baik, tapi karena aplikasinya menggunakan layanan mikro " -"untuk memisahkan fungsi aplikasi logis, kita bisa mengubahnya dengan mudah." - -msgid "The Object Storage API is organized around objects and containers." -msgstr "Object Storage API diatur di sekitar objek dan kontainer." - -msgid "" -"The Object Storage service manages many of the tasks normally managed by the " -"application owner. The Object Storage service provides a scalable and " -"durable API that you can use for the fractals app, eliminating the need to " -"be aware of the low level details of how objects are stored and replicated, " -"and how to grow the storage pool. Object Storage handles replication for " -"you. It stores multiple copies of each object. You can use the Object " -"Storage API to return an object, on demand." -msgstr "" -"Layanan Object Storage mengelola banyak tugas yang biasanya dikelola oleh " -"pemilik aplikasi. Layanan Object Storage menyediakan API terukur dan tahan " -"lama yang dapat Anda gunakan untuk aplikasi fraktal, sehingga perlu " -"diperhatikan rincian tingkat rendah tentang bagaimana objek disimpan dan " -"direplikasi, dan bagaimana cara menumbuhkan storage pool. Object Storage " -"menangani replikasi untuk Anda. Ini menyimpan banyak salinan dari setiap " -"objek. Anda dapat menggunakan Object Storage API untuk mengembalikan objek, " -"berdasarkan permintaan." - -msgid "" -"The OpenStack Networking API provides support for creating loadbalancers, " -"which can be used to scale the Fractal app web service. In the following " -"example, we create two compute instances via the Compute API, then " -"instantiate a load balancer that will use a virtual IP (VIP) for accessing " -"the web service offered by the two compute nodes. The end result will be the " -"following network topology:" -msgstr "" -"OpenStack Networking API memberikan dukungan untuk membuat loadbalancer, " -"yang dapat digunakan untuk mengukur layanan web aplikasi Fraktal. Pada " -"contoh berikut, kita membuat dua instance komputasi melalui Compute API, " -"lalu instantiate penyeimbang beban yang akan menggunakan virtual IP (VIP) " -"untuk mengakses layanan web yang ditawarkan oleh dua node komputasi. Hasil " -"akhirnya adalah topologi jaringan berikut:" - -msgid "" -"The OpenStack Orchestration API uses the stacks, resources, and templates " -"constructs." -msgstr "" -" OpenStack Orchestration API menggunakan tumpukan, sumber daya, dan " -"konstruksi template." - -msgid "The OpenStack SDK does not currently support OpenStack Orchestration." -msgstr "OpenStack SDK saat ini tidak mendukung OpenStack Orchestration." - -msgid "" -"The Orchestration service is not deployed by default in every cloud. If " -"these commands do not work, it means the Orchestration API is not available; " -"ask your support team for assistance." -msgstr "" -"Layanan Orchestration tidak dikerahkan secara default di setiap awan. Jika " -"perintah ini tidak berhasil, berarti Orchestration API tidak tersedia; " -"mintalah bantuan tim pendukung Anda." - -msgid "" -"The Orchestration service provides a template-based way to describe a cloud " -"application, then coordinates running the needed OpenStack API calls to run " -"cloud applications. The templates enable you to create most OpenStack " -"resource types, such as instances, networking information, volumes, security " -"groups, and even users. It also provides more advanced functionality, such " -"as instance high availability, instance auto-scaling, and nested stacks." -msgstr "" -"Layanan Orchestration menyediakan cara berbasis template untuk " -"mendeskripsikan aplikasi cloud, lalu mengkoordinasikan menjalankan API " -"OpenStack yang dibutuhkan untuk menjalankan aplikasi cloud. Template " -"memungkinkan Anda membuat sebagian besar jenis sumber OpenStack, seperti " -"instance, informasi jaringan, volume, grup keamanan, dan bahkan pengguna. " -"Ini juga menyediakan fungsionalitas yang lebih maju, seperti ketersediaan " -"tinggi instance, instance auto-scaling, dan tumpukan bersarang." - -msgid "" -"The Telemetry service is not deployed by default in every cloud. If the " -"ceilometer commands do not work, this example does not work; ask your " -"support team for assistance." -msgstr "" -"Layanan Telemetry tidak digunakan secara default di setiap awan. Jika " -"perintah ceilometer tidak bekerja, contoh ini tidak bekerja; Mintalah " -"bantuan tim pendukung Anda." - -msgid "" -"The Telemetry service uses meters to measure a given aspect of a resources " -"usage. The meter that we are interested in is the :code:`cpu_util` meter." -msgstr "" -"Layanan Telemetry menggunakan meter untuk mengukur aspek tertentu dari " -"penggunaan sumber daya. Meteran yang kami minati adalah :code:`cpu_util` " -"meter." - -msgid "" -"The `RabbitMQ getting started tutorial `_ provides a great introduction to message queues." -msgstr "" -"The `RabbitMQ getting started tutorial `_ memberikan pengenalan yang bagus untuk pesan antrian." - -msgid "" -"The `generated_by` field shows the worker that created the fractal. Because " -"multiple worker instances share the work, fractals are generated more " -"quickly and users might not even notice when a worker fails." -msgstr "" -"Field `generated_by` menunjukkan pekerja yang menciptakan fraktal. Karena " -"beberapa instance pekerja berbagi pekerjaan, fraktal dihasilkan lebih cepat " -"dan pengguna mungkin tidak menyadarinya saat pekerja gagal." - -msgid "" -"The `hello_faafo `_ Hot template demonstrates how to create a " -"compute instance that builds and runs the Fractal application as an all-in-" -"one installation." -msgstr "" -"The `hello_faafo `_ Template panas (hot template) menunjukkan " -"cara membuat instance komputasi yang membangun dan menjalankan aplikasi " -"Fractal sebagai instalasi all-in-one." - -msgid "" -"The `outputs` property shows the URL through which you can access the " -"Fractal application. You can SSH into the instance." -msgstr "" -"Properti `outputs` menunjukkan URL tempat Anda dapat mengakses aplikasi " -"Fractal. Anda bisa SSH ke instance." - -msgid "The actual auth URL is:" -msgstr "URL auth sebenarnya adalah:" - -msgid "The alarms have the form:" -msgstr "Alarm memiliki bentuk:" - -msgid "" -"The application stores the generated fractal images directly in the database " -"used by the API service instance. Storing image files in a database is not " -"good practice. We are doing it here as an example only as an easy way to " -"enable multiple instances to have access to the data. For best practice, we " -"recommend storing objects in Object Storage, which is covered in :doc:" -"`durability`." -msgstr "" -"Aplikasi menyimpan image fraktal yang dihasilkan secara langsung di database " -"yang digunakan oleh instance layanan API. Penyimpanan file image dalam " -"database bukanlah praktik yang baik. Kami melakukannya di sini sebagai " -"contoh hanya sebagai cara mudah untuk mengaktifkan beberapa instance agar " -"memiliki akses ke data. Untuk praktik terbaik, kami merekomendasikan " -"menyimpan objek di Object Storage, yang tercakup dalam :doc:`durability`." - -msgid "" -"The auto-scaling stack sets up an API instance, a services instance, and an " -"auto-scaling group with a single worker instance. It also sets up ceilometer " -"alarms that add worker instances to the auto-scaling group when it is under " -"load, and removes instances when the group is idling. To do this, the alarms " -"post to URLs." -msgstr "" -"Stack penskalaan otomatis membentuk instance API, instance layanan, dan grup " -"skala otomatis dengan instance pekerja tunggal. Ini juga memasang alarm " -"ceilometer yang menambahkan instance pekerja ke grup skala otomatis saat " -"berada di bawah beban, dan menghapus instance saat grup sedang menganggur. " -"Untuk melakukan ini, pos alarm ke URL." - -msgid "" -"The client object accesses the Compute v2.0 service and type v2.1, so that " -"version is in this tutorial." -msgstr "" -"Objek klien mengakses layanan Compute v2.0 dan ketik v2.1, sehingga versinya " -"ada dalam tutorial ini." - -msgid "The connection URL for the database (not used here)." -msgstr "URL koneksi untuk database (tidak digunakan disini)." - -msgid "The endpoint URL of the API service." -msgstr "URL endpoint dari layanan API." - -msgid "" -"The example code uses the awesome `Requests library `_. Before you try to run the previous script, make " -"sure that it is installed on your system." -msgstr "" -"Kode contoh menggunakan yang mengagumkan `Requests library `_. Sebelum Anda mencoba menjalankan skrip " -"sebelumnya, pastikan itu terinstal di sistem Anda." - -msgid "" -"The example template depends on the ceilometer project, which is part of the " -"`Telemetry service `_." -msgstr "" -"Contoh template tergantung pada proyek ceilometer, yang merupakan bagian " -"dari `Telemetry service `_." - -msgid "" -"The first step is to start the controller instance. The instance has the API " -"service, the database, and the messaging service, as you can see from the " -"parameters passed to the installation script." -msgstr "" -"Langkah pertama adalah memulai instance controller. Instance memiliki " -"layanan API, database, dan layanan pesan, seperti yang dapat Anda lihat dari " -"parameter yang dikirimkan ke skrip instalasi." - -msgid "The flavor" -msgstr "Flavor" - -msgid "" -"The following file contains all of the code from this section of the " -"tutorial. This comprehensive code sample lets you view and run the code as a " -"single file." -msgstr "" -"File berikut berisi semua kode dari bagian tutorial ini. Sampel kode " -"komprehensif ini memungkinkan Anda melihat dan menjalankan kode sebagai satu " -"file." - -msgid "" -"The following file contains all of the code from this section of the " -"tutorial. This comprehensive code sample lets you view and run the code as a " -"single script." -msgstr "" -"File berikut berisi semua kode dari bagian tutorial ini. Sampel kode " -"komprehensif ini memungkinkan Anda melihat dan menjalankan kode sebagai satu " -"skrip." - -msgid "" -"The following instance creation example assumes that you have a single-" -"tenant network. If you receive the 'Exception: 400 Bad Request Multiple " -"possible networks found, use a Network ID to be more specific' error, you " -"have multiple-tenant networks. You must add a `networks` parameter to the " -"call that creates the server. See :doc:`/appendix` for details." -msgstr "" -"Contoh pembuatan instance berikut mengasumsikan bahwa Anda memiliki jaringan " -"single-tenant. Jika Anda menerima kesalahan'Exception: 400 Bad Request " -"Multiple possible networks found, use a Network ID to be more specific', " -"Anda memiliki beberapa jaringan multiple-tenant. Anda harus menambahkan " -"parameter `networks` ke panggilan yang membuat server. Lihat :doc:`/" -"appendix` untuk rinciannya." - -msgid "The following operations are destructive and result in data loss." -msgstr "Operasi berikut merusak dan mengakibatkan kehilangan data." - -msgid "" -"The fractal application we are building contains these types of network " -"traffic:" -msgstr "" -"Aplikasi fraktal yang kami bangun berisi jenis lalu lintas jaringan ini:" - -msgid "" -"The fractals are now available from any of the app-api hosts. To verify, " -"visit http://IP_API_1/fractal/FRACTAL_UUID and http://IP_API_2/fractal/" -"FRACTAL_UUID. You now have multiple redundant web services. If one fails, " -"you can use the others." -msgstr "" -"Fraktal sekarang tersedia dari host app-api manapun. Untuk memverifikasi, " -"kunjungi http://IP_API_1/fractal/FRACTAL_UUID dan http://IP_API_2/fractal/" -"FRACTAL_UUID. Anda sekarang memiliki banyak layanan web berlebihan. Jika " -"gagal, Anda bisa menggunakan yang lain." - -msgid "The magic revisited" -msgstr "Magic revisited" - -msgid "" -"The message queue can take a while to notice that worker instances have died." -msgstr "" -"Antrian pesan bisa memakan waktu lama untuk memperhatikan bahwa instance " -"pekerja telah meninggal." - -msgid "" -"The most common way for OpenStack clouds to allocate Internet rout-able IP " -"addresses to instances, however, is through the use of floating IPs. A " -"floating IP is an address that exists as an entity unto itself, and can be " -"associated to a specific instance network interface. When a floating IP " -"address is associated to an instance network interface, OpenStack re-directs " -"traffic bound for that address to the address of the instance's internal " -"network interface address. Your cloud provider will generally offer pools of " -"floating IPs for your use." -msgstr "" -"Cara yang paling umum untuk awan OpenStack untuk mengalokasikan alamat IP " -"Internet rout-able ke instance, bagaimanapun, adalah melalui penggunaan " -"floating IP. Floating IP adalah alamat yang ada sebagai entitas tersendiri, " -"dan dapat dikaitkan dengan antarmuka jaringan instance yang spesifik. Bila " -"alamat floating IP dikaitkan dengan antarmuka jaringan instance, OpenStack " -"re-directs traffic yang terikat alamat tersebut ke alamat alamat antarmuka " -"jaringan internal instance. Provider awan Anda umumnya akan menawarkan kolam " -"floating IP untuk Anda gunakan." - -msgid "The new instance appears." -msgstr "Instance baru muncul." - -msgid "" -"The next logical step is to upload an object. Find a photo of a goat online, " -"name it :code:`goat.jpg`, and upload it to your :code:`fractals` container:" -msgstr "" -"Langkah logis berikutnya adalah mengunggah sebuah objek. Temukan foto " -"kambing secara online, beri nama :code:`goat.jpg`, dan unggah ke kontainer " -"Anda :code:`fractals`:" - -msgid "" -"The outputs section of the stack contains two ceilometer command-line " -"queries:" -msgstr "Bagian output dari stack berisi dua ceilometer command-line queries:" - -msgid "The parameter :code:`Size` is in gigabytes." -msgstr "Parameter :code:`Size` ada di gigabyte." - -msgid "The parameter :code:`size` is in gigabytes." -msgstr "Parameter :code:`size` ada di gigabyte." - -msgid "The prefix is `metering.` For example, `metering.some_name`." -msgstr "Awalannya adalah `metering.` Misalnya, `metering.some_name`." - -msgid "" -"The previous section uses two virtual machines - one 'control' service and " -"one 'worker'. The speed at which your application can generate fractals " -"depends on the number of workers. With just one worker, you can produce only " -"one fractal at a time. Before long, you will need more resources." -msgstr "" -"Bagian sebelumnya menggunakan dua mesin virtual - satu layanan 'control' " -"dan satu 'worker'. Kecepatan di mana aplikasi Anda dapat menghasilkan " -"fraktal bergantung pada jumlah pekerja. Dengan hanya satu pekerja, Anda " -"hanya bisa menghasilkan satu fraktal sekaligus. Tidak lama lagi, Anda akan " -"membutuhkan lebih banyak sumber daya." - -msgid "" -"The rest of this tutorial will not reference the all-in-one instance you " -"created in section one. Take a moment to delete this instance." -msgstr "" -"Sisa tutorial ini tidak akan mereferensikan all-in-one instance yang Anda " -"buat di bagian pertama. Luangkan waktu untuk menghapus instance ini." - -msgid "The samples and the statistics are listed in opposite time order!" -msgstr "Sampel dan statistiknya tercantum dalam urutan waktu yang berlawanan!" - -msgid "The second application is an OpenStack application that enables you to:" -msgstr "Aplikasi kedua adalah aplikasi OpenStack yang memungkinkan Anda untuk:" - -msgid "The shade framework can select and assign a free floating IP quickly" -msgstr "" -"Shade framework (kerangka teduh) dapat memilih dan menetapkan floating IP " -"(IP apung) bebas dengan cepat" - -msgid "" -"The sheer number of requests means that some requests for fractals might not " -"make it to the message queue for processing. To ensure that you can cope " -"with demand, you must also scale out the API capability of the Fractals " -"application." -msgstr "" -"Jumlah permintaan sebenarnya berarti beberapa permintaan fraktal mungkin " -"tidak sampai ke antrian pesan untuk diproses. Untuk memastikan bahwa Anda " -"dapat mengatasi permintaan, Anda juga harus meningkatkan kemampuan API dari " -"aplikasi Fractals." - -msgid "The stack automatically creates a Nova instance, as follows:" -msgstr "" -"Stack tersebut secara otomatis menciptakan instance Nova, sebagai berikut:" - -msgid "" -"The stack reports an initial :code:`CREATE_IN_PROGRESS` status. When all " -"software is installed, the status changes to :code:`CREATE_COMPLETE`." -msgstr "" -"Stack tersebut melaporkan status :code:`CREATE_IN_PROGRESS` awal. Saat semua " -"perangkat lunak diinstal, status berubah menjadi :code:`CREATE_COMPLETE`." - -msgid "" -"The stack we will be building uses the firing of alarms to control the " -"addition or removal of worker instances." -msgstr "" -"Stack yang akan kita bangun menggunakan penyalaan alarm untuk mengendalikan " -"penambahan atau pemindahan instance pekerja." - -msgid "The transport URL of the messaging service." -msgstr "URL transport dari layanan pesan." - -msgid "The unique identifier (UUID) of the image" -msgstr "Unique identifier (UUID) dari image" - -msgid "The value of a meter is regularly sampled and saved with a timestamp." -msgstr "" -"Nilai meter secara teratur diambil sampelnya dan disimpan dengan timestamp." - -msgid "" -"The worker service consumes messages from the work queue and then processes " -"them to create the corresponding fractal image file." -msgstr "" -"Layanan pekerja mengkonsumsi pesan dari antrian kerja dan kemudian " -"memprosesnya untuk membuat file image fraktal yang sesuai." - -msgid "" -"The world is running out of IPv4 addresses. If you get the \"No more IP " -"addresses available on network\" error, contact your cloud administrator. " -"You may also want to ask about IPv6 :)" -msgstr "" -"Dunia kehabisan alamat IPv4. Jika Anda mengalami kesalahan \"No more IP " -"addresses available on network\", hubungi administrator awan Anda. Anda " -"mungkin juga ingin bertanya tentang IPv6 :)" - -msgid "Then attach it to the instance:" -msgstr "Kemudian pasang ke instance:" - -msgid "Then request an IP number be allocated from the pool." -msgstr "Kemudian meminta nomor IP dialokasikan dari kolam." - -msgid "Then, create a pair of large fractals:" -msgstr "Kemudian, buat sepasang fractal besar:" - -msgid "" -"There are also multiple storage back ends (to store the generated fractal " -"images) and a database component (to store the state of tasks), but we will " -"talk about those in :doc:`/durability` and :doc:`/block_storage` " -"respectively." -msgstr "" -"Ada juga beberapa storage back end (untuk menyimpan image fraktal yang " -"dihasilkan) dan komponen basis data (untuk menyimpan keadaan tugas), namun " -"kami akan membicarakan hal-hal tersebut di :doc:`/durability` dan :doc:`/" -"block_storage` masing-masing." - -msgid "" -"There are definite advantages to this architecture. It is easy to get a \"new" -"\" server, without any of the issues that inevitably arise when a server has " -"been up and running for months, or even years." -msgstr "" -"Ada keuntungan pasti arsitektur ini. Sangat mudah untuk mendapatkan server " -"\"new\", tanpa masalah yang pasti muncul saat server telah berjalan dan " -"berjalan selama berbulan-bulan, atau bahkan bertahun-tahun." - -msgid "" -"There are more commands available; find out more details about them with :" -"code:`faafo get --help`, :code:`faafo list --help`, and :code:`faafo delete " -"--help`." -msgstr "" -"Ada lebih banyak perintah yang tersedia; cari tahu lebih banyak tentang " -"mereka :code:`faafo get --help`, :code:`faafo list --help`, dan :code:`faafo " -"delete --help`." - -msgid "" -"These demonstrate how the Ceilometer alarms add and remove instances. To use " -"them:" -msgstr "" -"Ini menunjukkan bagaimana alarm Ceilometer menambahkan dan menghapus contoh. " -"Untuk menggunakannya:" - -msgid "These queries provide a view into the behavior of the stack." -msgstr "Query ini memberikan pandangan tentang perilaku stack." - -msgid "" -"These saved samples are aggregated to produce a statistic. The statistic " -"that we are interested in is **avg**: the average of the samples over a " -"given period." -msgstr "" -"Sampel yang disimpan ini dikumpulkan untuk menghasilkan statistik. Statistik " -"yang kami minati adalah **avg**: rata-rata sampel selama periode tertentu." - -msgid "" -"These services are client-facing, so unlike the workers they do not use a " -"message queue to distribute tasks. Instead, you must introduce some kind of " -"load balancing mechanism to share incoming requests between the different " -"API services." -msgstr "" -"Layanan ini bersifat klien, sangat tidak seperti para pekerja mereka tidak " -"menggunakan antrian pesan untuk mendistribusikan tugas. Sebagai gantinya, " -"Anda harus memperkenalkan semacam mekanisme load balancing untuk berbagi " -"permintaan yang masuk antara berbagai layanan API." - -msgid "" -"These tools vastly reduce the effort it takes to work with large numbers of " -"servers, and also improve the ability to recreate, update, move, and " -"distribute applications." -msgstr "" -"Alat ini sangat mengurangi upaya yang diperlukan untuk bekerja dengan " -"sejumlah besar server, dan juga meningkatkan kemampuan untuk membuat ulang " -"(recreate), memperbarui, memindahkan, dan mendistribusikan aplikasi." - -msgid "" -"This OpenStack Database service is not installed in many clouds right now, " -"but if your cloud supports it, it can make your life a lot easier when " -"working with databases." -msgstr "" -"Layanan OpenStack Database ini tidak terinstal di banyak awan saat ini, " -"namun jika awan Anda mendukungnya, ini bisa membuat hidup Anda jauh lebih " -"mudah saat bekerja dengan database." - -msgid "This adds a \"foo\" key to the metadata that has a value of \"bar\"." -msgstr "Ini menambahkan \"foo\" key ke metadata yang memiliki nilai \"bar\"." - -msgid "" -"This chapter explains the importance of durability and scalability for your " -"cloud-based applications. In most cases, really achieving these qualities " -"means automating tasks such as scaling and other operational tasks." -msgstr "" -"Bab ini menjelaskan pentingnya daya tahan dan skalabilitas untuk aplikasi " -"berbasis awan Anda. Dalam kebanyakan kasus, benar-benar mencapai kualitas " -"ini berarti mengotomatisasi tugas seperti penskalaan dan tugas operasional " -"lainnya." - -msgid "" -"This chapter introduces the Networking API. This will enable us to build " -"networking topologies that separate public traffic accessing the application " -"from traffic between the API and the worker components. We also introduce " -"load balancing for resilience, and create a secure back-end network for " -"communication between the database, web server, file storage, and worker " -"components." -msgstr "" -"Bab ini memperkenalkan Networking API. Ini akan memungkinkan kita untuk " -"membangun topologi jaringan yang memisahkan lalu lintas umum yang mengakses " -"aplikasi dari lalu lintas antara komponen API dan pekerja. Kami juga " -"memperkenalkan load balancing untuk ketahanan, dan menciptakan jaringan back-" -"end yang aman untuk komunikasi antara database, server web, penyimpanan " -"file, dan komponen pekerja." - -msgid "This code returns output like this:" -msgstr "Kode ini menghasilkan output seperti ini:" - -msgid "This code returns the floating IP address:" -msgstr "Kode ini mengembalikan floating IP address:" - -msgid "" -"This command returns a very long list of meters. Once a meter is created, it " -"is never thrown away!" -msgstr "" -"Perintah ini mengembalikan daftar meter yang sangat panjang. Sekali satu " -"meter dibuat, tidak pernah dibuang!" - -msgid "This document has not yet been completed for the .NET SDK." -msgstr "Dokumen ini belum selesai untuk .NET SDK." - -msgid "This document has not yet been completed for the fog SDK." -msgstr "Dokumen ini belum selesai untuk fog SDK." - -msgid "This document has not yet been completed for the php-opencloud SDK." -msgstr "Dokumen ini belum selesai untuk php-opencloud SDK." - -msgid "" -"This file contains all the code from this tutorial section. This class lets " -"you view and run the code." -msgstr "" -"File ini berisi semua kode dari bagian tutorial ini. Kelas ini memungkinkan " -"Anda melihat dan menjalankan kode." - -msgid "" -"This file contains all the code from this tutorial section. This " -"comprehensive code sample lets you view and run the code as a single script." -msgstr "" -"File ini berisi semua kode dari bagian tutorial ini. Sampel kode " -"komprehensif ini memungkinkan Anda melihat dan menjalankan kode sebagai satu " -"skrip." - -msgid "This gets an IP address that you can assign to your instance:" -msgstr "" -"Ini mendapatkan alamat IP yang dapat Anda tetapkan untuk instance Anda:" - -msgid "" -"This guide is for experienced software developers who want to deploy " -"applications to OpenStack clouds." -msgstr "" -"Panduan ini untuk pengembang perangkat lunak berpengalaman yang ingin " -"mengerahkan aplikasi ke awan OpenStack." - -msgid "" -"This is a `useful pattern `_ for many cloud applications that have long lists of requests coming " -"in and a pool of resources from which to service them. This also means that " -"a worker may crash and the tasks will be processed by other workers." -msgstr "" -"Ini adalah sebuah `useful pattern `_ untuk banyak aplikasi awan yang memiliki daftar panjang " -"permintaan masuk dan kumpulan sumber daya untuk melayani mereka. Ini juga " -"berarti bahwa seorang pekerja mungkin mogok dan tugas akan diproses oleh " -"pekerja lain." - -msgid "" -"This option also uses a bit stream to upload the file, iterating bit by bit " -"over the file and passing those bits to Object Storage as they come. " -"Compared to loading the entire file in memory and then sending it, this " -"method is more efficient, especially for larger files." -msgstr "" -"Opsi ini juga menggunakan sedikit aliran untuk meng-upload file, iterasi " -"sedikit demi sedikit di atas file dan melewati bit by bit tersebut ke Object " -"Storage saat mereka datang. Dibandingkan dengan memuat keseluruhan file " -"dalam memori dan kemudian mengirimkannya, metode ini lebih efisien, terutama " -"untuk file yang lebih besar." - -msgid "" -"This process was obviously a very manual one. Figuring out that we needed " -"more workers and then starting new ones required some effort. Ideally the " -"system would do this itself. If you build your application to detect these " -"situations, you can have it automatically request and remove resources, " -"which saves you the effort of doing this work yourself. Instead, the " -"OpenStack Orchestration service can monitor load and start instances, as " -"appropriate. To find out how to set that up, see :doc:`orchestration`." -msgstr "" -"Proses ini jelas sangat manual. Mencari tahu bahwa kami membutuhkan lebih " -"banyak pekerja dan kemudian memulai pekerjaan baru membutuhkan beberapa " -"usaha. Idealnya sistem akan melakukan ini sendiri. Jika Anda membangun " -"aplikasi Anda untuk mendeteksi situasi ini, Anda dapat memilikinya secara " -"otomatis meminta dan menghapus sumber daya, yang menghemat usaha melakukan " -"pekerjaan ini sendiri. Sebagai gantinya, layanan OpenStack Orchestration " -"dapat memantau beban dan menghidupkan instance, jika sesuai. Untuk " -"mengetahui cara mengaturnya, lihat :doc:`orchestration`." - -msgid "" -"This section assumes that your cloud provider has implemented the OpenStack " -"Networking API (neutron). Users of clouds which have implemented legacy " -"networking (nova-network) will have access to networking via the Compute " -"API. Log in to the Horizon dashboard and navigate to :guilabel:`Project-" -">Access & Security->API Access`. If you see a service endpoint for the " -"Network API, your cloud is most likely running the Networking API. If you " -"are still in doubt, ask your cloud provider for more information." -msgstr "" -"Bagian ini mengasumsikan bahwa penyedia awan Anda telah menerapkan OpenStack " -"Networking API (neutron). Pengguna awan yang telah menerapkan jaringan " -"legacy (lawas) (nova-network) akan memiliki akses ke jaringan melalui " -"Compute API. Masuk ke dashboard Horizon dan arahkan ke: guilabel: `Project-> " -"Access & Security-> API Access`. Jika Anda melihat titik akhir layanan untuk " -"API Jaringan, awan Anda kemungkinan besar menjalankan API Jaringan. Jika " -"Anda masih ragu, mintalah informasi tentang penyedia awan Anda." - -msgid "" -"This section continues to illustrate the separation of services onto " -"multiple instances and highlights some of the choices that we have made that " -"facilitate scalability in the application architecture." -msgstr "" -"Bagian ini terus menggambarkan pemisahan layanan ke beberapa instance dan " -"menyoroti beberapa pilihan yang telah kita buat yang memfasilitasi " -"skalabilitas dalam arsitektur aplikasi." - -msgid "This section explores options for expanding the sample application." -msgstr "Bagian ini membahas opsi untuk memperluas aplikasi sampel." - -msgid "This section has not yet been completed for the .NET SDK" -msgstr "Bagian ini belum selesai untuk .NET SDK" - -msgid "This section has not yet been completed for the .NET SDK." -msgstr "Bagian ini belum selesai untuk .NET SDK." - -msgid "This section has not yet been completed for the OpenStack SDK." -msgstr "Bagian ini belum selesai untuk OpenStack SDK." - -msgid "This section has not yet been completed for the PHP-OpenCloud SDK." -msgstr "Bagian ini belum selesai untuk PHP-OpenCloud SDK." - -msgid "This section has not yet been completed for the fog SDK." -msgstr "Bagian ini belum selesai untuk fog SDK." - -msgid "This section has not yet been completed for the pkgcloud SDK." -msgstr "Bagian ini belum selesai untuk pkgcloud SDK." - -msgid "" -"This section introduces block storage, also known as volume storage, which " -"provides access to persistent storage devices. You interact with block " -"storage by attaching volumes to running instances just as you might attach a " -"USB drive to a physical server. You can detach volumes from one instance and " -"reattach them to another instance and the data remains intact. The OpenStack " -"Block Storage (cinder) project implements block storage." -msgstr "" -"Bagian ini memperkenalkan penyimpanan blok, juga dikenal sebagai penyimpanan " -"volume, yang menyediakan akses ke perangkat penyimpanan persisten. Anda " -"berinteraksi dengan penyimpanan blok dengan menyematkan volume untuk " -"menjalankan instance seperti Anda mungkin memasang drive USB ke server " -"fisik. Anda dapat melepaskan volume dari satu instance dan memasangnya " -"kembali ke instance lain dan datanya tetap utuh. Proyek OpenStack Block " -"Storage (cinder) menerapkan penyimpanan blok." - -msgid "This section introduces object storage." -msgstr "Bagian ini memperkenalkan penyimpanan objek." - -msgid "" -"This section introduces some operational concepts and tasks to developers " -"who have not written cloud applications before." -msgstr "" -"Bagian ini memperkenalkan beberapa konsep dan tugas operasional kepada " -"pengembang yang belum pernah menulis aplikasi cloud sebelumnya." - -msgid "" -"This section introduces the `HOT templating language `_, and takes you through some " -"common OpenStack Orchestration calls." -msgstr "" -"Bagian ini memperkenalkan `HOT templating language `_, dan membawa Anda melalui " -"beberapa panggilan OpenStack Orchestration yang umum." - -msgid "" -"This section introduces the application architecture and explains how it was " -"designed to take advantage of cloud features in general and OpenStack in " -"particular. It also describes some commands in the previous section." -msgstr "" -"Bagian ini memperkenalkan arsitektur aplikasi dan menjelaskan bagaimana hal " -"itu dirancang untuk memanfaatkan fitur awan secara umum dan OpenStack pada " -"khususnya. Ini juga menjelaskan beberapa perintah di bagian sebelumnya." - -msgid "" -"This section is based on the Neutron LBaaS API version 1.0 https://docs." -"openstack.org/admin-guide/networking_adv-features.html#basic-load-balancer-" -"as-a-service-operations" -msgstr "" -"Bagian ini didasarkan pada Neutron LBaaS API version 1.0 https://docs." -"openstack.org/admin-guide/networking_adv-features.html#basic-load-balancer-" -"as-a-service-operations" - -msgid "This section is incomplete. Please help us finish it!" -msgstr "Bagian ini tidak lengkap. Tolong bantu kami menyelesaikannya" - -msgid "" -"This tutorial shows two applications. The first application is a simple " -"fractal generator that uses mathematical equations to generate beautiful " -"`fractal images `_. We show you this " -"application in its entirety so that you can compare it to a second, more " -"robust, application." -msgstr "" -"Tutorial ini menunjukkan dua aplikasi. Aplikasi pertama adalah generator " -"fraktal sederhana yang menggunakan persamaan matematis untuk menghasilkan " -"keindahan `fractal images `_. Kami " -"menunjukkan aplikasi ini secara keseluruhan sehingga Anda bisa " -"membandingkannya dengan aplikasi kedua yang lebih kuat." - -msgid "" -"Though you might have configured Object Storage to store images, the Fractal " -"application needs a database to track the location of, and parameters that " -"were used to create, images in Object Storage. This database server cannot " -"fail." -msgstr "" -"Meskipun Anda mungkin telah mengkonfigurasi Object Storage untuk menyimpan " -"image, aplikasi Fractal memerlukan database untuk melacak lokasi, dan " -"parameter yang digunakan untuk membuat, image di Object Storage. Server " -"database ini tidak bisa gagal." - -msgid "" -"To begin to store objects, we must first make a container. Call yours :code:" -"`fractals`:" -msgstr "" -"Untuk mulai menyimpan objek, pertama kita harus membuat kontainer. " -"Teleponmu :code:`fractals`:" - -msgid "" -"To better understand how the template works, use this guide to install the " -"'ceilometer' command-line client:" -msgstr "" -"Untuk lebih memahami bagaimana template bekerja, gunakan panduan ini untuk " -"menginstal 'ceilometer' command-line client:" - -msgid "" -"To configure shade using a profile, use your credentials above to specify " -"the cloud provider name, username, password, project name, and region name " -"in the file :file:`~/.config/openstack/clouds.yml`." -msgstr "" -"Untuk mengkonfigurasi shade (naungan) menggunakan profil, gunakan kredensial " -"Anda di atas untuk menentukan nama provider awan, nama pengguna, kata sandi, " -"nama proyek, dan nama wilayah dalam file :file:`~/.config/openstack/clouds." -"yml`." - -msgid "To create a floating IP address to use with your instance:" -msgstr "" -"Untuk membuat alamat IP mengambang untuk digunakan dengan instance Anda:" - -msgid "" -"To delete a container, you must first remove all objects from the container. " -"Otherwise, the delete operation fails:" -msgstr "" -"Untuk menghapus sebuah kontainer, pertama-tama Anda harus menghapus semua " -"objek dari kontainer. Jika tidak, operasi penghapusan akan gagal:" - -msgid "To detach and delete a volume:" -msgstr "Untuk melepaskan dan menghapus volume:" - -msgid "To determine whether a public IP address is assigned to your instance:" -msgstr "Untuk menentukan apakah alamat IP publik diberikan pada instance Anda:" - -msgid "To increase the overall capacity, add three workers:" -msgstr "Untuk meningkatkan kapasitas keseluruhan, tambahkan tiga pekerja:" - -msgid "" -"To install the 'trove' command-line client, see `Install the OpenStack " -"command-line clients `_." -msgstr "" -"Untuk menginstal 'trove' command-line client, lihat `Install the OpenStack " -"command-line clients `_." - -msgid "" -"To install the OpenStack .NET SDK, use the NeGet Package Manager that is " -"included with Visual Studio and Xamarin Studio. You simply add a package " -"named 'openstack.net' and the NeGet Package Manager automatically installs " -"the necessary dependencies." -msgstr "" -"Untuk menginstal OpenStack .NET SDK, gunakan NeGet Package Manager yang " -"disertakan dengan Visual Studio dan Xamarin Studio. Anda cukup menambahkan " -"sebuah paket bernama 'openstack.net' dan NeGet Package Manager secara " -"otomatis menginstal dependensi yang diperlukan." - -msgid "To interact with the cloud, you must also have" -msgstr "Untuk berinteraksi dengan awan, Anda juga harus memiliki" - -msgid "" -"To launch an instance, you choose a flavor and an image. The flavor " -"represents the size of the instance, including the number of CPUs and amount " -"of RAM and disk space. An image is a prepared OS installation from which you " -"clone your instance. When you boot instances in a public cloud, larger " -"flavors can be more expensive than smaller ones in terms of resources and " -"monetary cost." -msgstr "" -"Untuk meluncurkan sebuah instance, Anda memilih flavor dan image. Flavor " -"mewakili ukuran instance, termasuk jumlah CPU dan jumlah RAM dan ruang " -"disk. Image adalah instalasi OS yang disiapkan dari mana Anda mengkloning " -"instance Anda. Saat Anda melakukan booting di awan publik, flavor yang lebih " -"besar bisa lebih mahal daripada yang lebih kecil dari segi sumber daya dan " -"biaya moneter." - -msgid "" -"To learn about auto-scaling with the Orchestration API, read these articles:" -msgstr "" -"Untuk mempelajari tentang penskalaan otomatis dengan Orchestration API, baca " -"artikel ini:" - -msgid "" -"To learn about the template syntax for OpenStack Orchestration, how to " -"create basic templates, and their inputs and outputs, see `Heat " -"Orchestration Template (HOT) Guide `_." -msgstr "" -"Untuk mempelajari tentang sintaks template untuk OpenStack Orchestration, " -"bagaimana membuat template dasar, dan masukan dan keluarannya, lihat `Heat " -"Orchestration Template (HOT) Guide `_." - -msgid "" -"To list the images that are available in your cloud, run some API calls:" -msgstr "" -"Untuk daftar image yang tersedia di awan Anda, jalankan beberapa panggilan " -"API:" - -msgid "To recap:" -msgstr "Untuk rekap:" - -msgid "" -"To run your application, you must launch an instance. This instance serves " -"as a virtual machine." -msgstr "" -"Untuk menjalankan aplikasi Anda, Anda harus meluncurkan sebuah instance. " -"Contoh ini berfungsi sebagai mesin virtual." - -msgid "To see if the volume creation was successful, list all volumes:" -msgstr "" -"Untuk melihat apakah pembuatan volume berhasil, cantumkan semua volume:" - -msgid "" -"To see the application running, you must know where to look for it. By " -"default, your instance has outbound network access. To make your instance " -"reachable from the Internet, you need an IP address. By default in some " -"cases, your instance is provisioned with a publicly rout-able IP address. In " -"this case, you see an IP address listed under `public_ips` or `private_ips` " -"when you list the instances. If not, you must create and attach a floating " -"IP address to your instance." -msgstr "" -"Untuk melihat aplikasi berjalan, Anda harus tahu di mana mencarinya. Secara " -"default, instance Anda memiliki akses jaringan keluar. Untuk membuat " -"instance Anda dapat dijangkau dari Internet, Anda memerlukan alamat IP. " -"Secara default dalam beberapa kasus, instance Anda tersedia dengan alamat IP " -"yang dapat digunakan secara publik. Dalam kasus ini, Anda melihat alamat IP " -"yang tercantum di bawah `public_ips` atau` private_ips` saat Anda " -"mencantumkan instance. Jika tidak, Anda harus membuat dan menghubungkan " -"alamat IP mengambang ke instance Anda." - -msgid "To see whether a private IP address is assigned to your instance:" -msgstr "Untuk melihat apakah alamat IP private diberikan ke instance Anda:" - -msgid "To see which security groups apply to an instance, you can:" -msgstr "" -"Untuk melihat grup keamanan mana yang berlaku untuk sebuah instance, Anda " -"dapat:" - -msgid "" -"To set up environment variables for your cloud in an :file:`openrc.sh` file, " -"see `Set environment variables using the OpenStack RC file `_." -msgstr "" -"Untuk mengatur variabel lingkungan untuk awan Anda dalam file :file:`openrc." -"sh``, lihat `Set environment variables using the OpenStack RC file `_." - -msgid "" -"To set up the necessary variables for your cloud in an 'openrc' file, use " -"this guide:" -msgstr "" -"Untuk mengatur variabel yang diperlukan untuk awan Anda dalam file 'openrc', " -"gunakan panduan ini:" - -msgid "" -"To show the details of a specific fractal use the subcommand :code:`show` of " -"the Faafo CLI." -msgstr "" -"Untuk menunjukkan rincian fraktal spesifik gunakan subcommand :code:`show` " -"dari Faafo CLI." - -msgid "" -"To test what happens when the Fractals application is under load, you can:" -msgstr "" -"Untuk menguji apa yang terjadi saat aplikasi Fractals di bawah muatan, Anda " -"dapat:" - -msgid "" -"To try it out, add the following code to a Python script (or use an " -"interactive Python shell) by calling :code:`python -i`." -msgstr "" -"Untuk mencobanya, tambahkan kode berikut ke skrip Python (atau gunakan shell " -"Python interaktif) dengan memanggil :code:`python -i`." - -msgid "To try it out, make a 1GB volume called 'test'." -msgstr "Untuk mencobanya, buatlah volume 1GB yang disebut 'test'." - -msgid "" -"To try it, add the following code to a Python script (or use an interactive " -"Python shell) by calling :code:`python -i`." -msgstr "" -"Untuk mencobanya, tambahkan kode berikut ke skrip Python (atau gunakan shell " -"Python interaktif) dengan memanggil :code:`python -i`." - -msgid "" -"To try it, use an interactive Node.js shell by calling :code:`node` or add " -"the following code to a script." -msgstr "" -"Untuk mencobanya, gunakan shell Node.js interaktif dengan memanggil :code:" -"`node` atau tambahkan kode berikut ke skrip." - -msgid "" -"To use Maven to compile a downloaded sample, with the command prompt located " -"in the same directory as the :code:`pom.xml` file, enter:" -msgstr "" -"Untuk menggunakan Maven untuk mengkompilasi sampel yang telah didownload, " -"dengan command prompt berada di direktori yang sama dengan file :code:`pom." -"xml`, masukkan:" - -msgid "" -"To use Maven to run each downloaded sample, with the command prompt located " -"in the same directory as the :code:`pom.xml` file, enter:" -msgstr "" -"Untuk menggunakan Maven untuk menjalankan setiap sampel yang diunduh, dengan " -"command prompt yang terdapat di direktori yang sama dengan file :code:`pom." -"xml`, masukkan:" - -msgid "" -"To use a floating IP, you must first allocate an IP to your project, then " -"associate it to your instance's network interface." -msgstr "" -"Untuk menggunakan floating IP, Anda harus mengalokasikan IP ke proyek Anda " -"terlebih dulu, kemudian mengaitkannya ke antarmuka jaringan instance Anda." - -msgid "" -"To use the OpenStack .NET SDK, add the following code in the required " -"namespace section." -msgstr "" -"Untuk menggunakan OpenStack .NET SDK, tambahkan kode berikut di bagian " -"namespace yang dibutuhkan." - -msgid "To verify that ceilometer is installed, list the known meters:" -msgstr "" -"Untuk memverifikasi ceilometer yang terpasang, daftar meter yang diketahui:" - -msgid "URL" -msgstr "URL" - -msgid "" -"Use :code:`ex_list_floating_ip_pools()` and select the first floating IP " -"address pool. Allocate this pool to your project and use it to get a " -"floating IP address." -msgstr "" -"Gunakan :code:`ex_list_floating_ip_pools()` dan pilih kolam floating IP " -"address pertama. Alokasikan kolam ini ke proyek Anda dan gunakan untuk " -"mendapatkan floating IP address." - -msgid "" -"Use :code:`getFloatingIps` to check for unused addresses. Select the first " -"available address. Otherwise, use :code:`allocateNewFloatingIp` to allocate " -"a floating IP to your project from the default address pool." -msgstr "" -"Gunakan :code:`getFloatingIps` untuk memeriksa alamat yang tidak terpakai. " -"Pilih alamat pertama yang tersedia. Jika tidak, gunakan :code:" -"`allocateNewFloatingIp` untuk mengalokasikan floating IP ke proyek Anda dari " -"kolam alamat default." - -msgid "Use Block Storage for the Fractal database server" -msgstr "Gunakan Block Storage untuk server database Fractal" - -msgid "Use Object Storage instead of a database" -msgstr "Gunakan Object Storage bukan database" - -msgid "Use Object Storage to store fractals" -msgstr "Gunakan Object Storage untuk menyimpan fractal" - -msgid "Use Object and Block storage for file and database persistence." -msgstr "" -"Gunakan penyimpanan Object dan Block untuk file dan database persistence." - -msgid "Use Orchestration services to automatically adjust to the environment." -msgstr "" -"Gunakan layanan Orchestration untuk menyesuaikan diri secara otomatis dengan " -"lingkungan." - -msgid "" -"Use SSH with the existing SSH keypair to log in to the :code:`app-" -"controller` controller instance." -msgstr "" -"Gunakan SSH dengan keypair SSH yang ada untuk login ke instance controller :" -"code:`app-controller`:" - -msgid "" -"Use a for loop to call the :code:`faafo` command-line interface to request a " -"random set of fractals 500 times:" -msgstr "" -"Gunakan for loop until memanggil antarmuka command-line :code:`faafo` " -"untuk meminta kumpulan fraktal acak sebanyak 500 kali:" - -msgid "Use conf.d and etc.d." -msgstr "Menggunakan conf.d and etc.d." - -msgid "Use environment variables to set your cloud credentials" -msgstr "Gunakan variabel lingkungan untuk menetapkan kredensial awan Anda" - -msgid "" -"Use network service client to select the first floating IP address pool. " -"Allocate this pool to your project and use it to get a floating IP address." -msgstr "" -"Gunakan klien layanan jaringan untuk memilih kolam floating IP address " -"pertama. Alokasikan kolam ini ke proyek Anda dan gunakan untuk mendapatkan " -"floating IP address." - -msgid "Use the :code:`faafo UUID` command to examine some of the fractals." -msgstr "Gunakan perintah :code:`faafo UUID` untuk memeriksa beberapa fraktal." - -msgid "Use the :code:`faafo create` command to generate fractals." -msgstr "Gunakan perintah :code:`faafo create` untuk menghasilkan fraktal." - -msgid "" -"Use the :code:`faafo list` command to watch the progress of fractal " -"generation." -msgstr "" -"Gunakan perintah :code:`faafo list` untuk melihat perkembangan generasi " -"fraktal." - -msgid "" -"Use the `Health Endpoint Monitoring Pattern ` to implement functional checks within your " -"application that external tools can access through exposed endpoints at " -"regular intervals." -msgstr "" -"Gunakan `Health Endpoint Monitoring Pattern ` untuk menerapkan pemeriksaan fungsional dalam " -"aplikasi Anda sehingga alat eksternal dapat mengakses melalui endpoint yang " -"terpapar secara berkala." - -msgid "" -"Use the image, flavor, key pair, and userdata to create an instance. After " -"you request the instance, wait for it to build." -msgstr "" -"Gunakan image, flavor, key pair, dan userdata untuk membuat sebuah instance. " -"Setelah Anda meminta instance, tunggulah untuk membangunnya." - -msgid "Use the stack ID to get more information about the stack:" -msgstr "" -"Gunakan stack ID untuk mendapatkan informasi lebih lanjut tentang stack:" - -msgid "" -"Use this guide to install the 'openstack' command-line client: https://docs." -"openstack.org/cli-reference/common/" -"cli_install_openstack_command_line_clients.html#install-the-clients" -msgstr "" -"Gunakan panduan ini untuk menginstal klien command-line 'openstack': https://" -"docs.openstack.org/cli-reference/common/" -"cli_install_openstack_command_line_clients.html#install-the-clients" - -msgid "" -"Use this guide to set up the necessary variables for your cloud in an " -"'openrc' file: https://docs.openstack.org/cli-reference/common/" -"cli_set_environment_variables_using_openstack_rc.html" -msgstr "" -"Gunakan panduan ini untuk menyiapkan variabel yang diperlukan untuk awan " -"Anda di file 'openrc': https://docs.openstack.org/cli-reference/common/" -"cli_set_environment_variables_using_openstack_rc.html" - -msgid "" -"Use your credentials above to specify the cloud provider name, username, " -"password, project_name and region_name in the file :file:`~/.config/" -"openstack/clouds.yml`." -msgstr "" -"Gunakan kredensial Anda di atas untuk menentukan nama penyedia awan, nama " -"pengguna, kata sandi, project_name dan region_name dalam file :file:`~/." -"config/openstack/clouds.yml`." - -msgid "Use your selected image and flavor to create an instance." -msgstr "Gunakan flavor dan image pilihan Anda untuk membuat sebuah instance." - -msgid "User data in openstacksdk must be encoded to Base64" -msgstr "Data pengguna di openstacksdk harus dikodekan ke Base64" - -msgid "User data in openstacksdk must be encoded to Base64." -msgstr "Data pengguna di openstacksdk harus dikodekan ke Base64." - -msgid "" -"Userdata. During instance creation, you can provide userdata to OpenStack to " -"configure instances after they boot. The cloud-init service applies the user " -"data to an instance. You must pre-install the cloud-init service on your " -"chosen image. We will go into more detail in :doc:`/introduction`." -msgstr "" -"Userdata (dara pengguna). Selama pembuatan instance, Anda dapat menyediakan " -"userdata ke OpenStack untuk mengonfigurasi instance setelah booting. Layanan " -"cloud-init menerapkan data pengguna ke sebuah instance. Anda harus melakukan " -"pra-instal layanan cloud-init pada image yang Anda pilih. Kami akan membahas " -"lebih rinci :doc:`/introduction`." - -msgid "Using Pacemaker to look at the API." -msgstr "Menggunakan Pacemaker untuk melihat API." - -msgid "Values" -msgstr "Values" - -msgid "Verify that the stack was successfully created:" -msgstr "Pastikan stack berhasil dibuat:" - -msgid "Verify that we have had an impact" -msgstr "Verifikasi bahwa kami memiliki dampak" - -msgid "Verify the nova instance was deleted when the stack was removed:" -msgstr "Verifikasi instance nova telah dihapus saat stack dihapus:" - -msgid "Wait for it to reach the :code:`CREATE_COMPLETE` status:" -msgstr "Tunggu sampai mencapai status :code:`CREATE_COMPLETE`:" - -msgid "" -"Watch :code:`top` on the worker instance. Right after calling :code:`faafo` " -"the :code:`faafo-worker` process should start consuming a lot of CPU cycles." -msgstr "" -"Perhatikan :code:`top` pada instance pekerja. Tepat setelah menelepon :code:" -"`faafo`, proses :code:`faafo-worker` harus mulai menghabiskan banyak " -"siklus CPU." - -msgid "" -"We are interested because the Telemetry service supports alarms: an alarm is " -"fired when our average statistic breaches a configured threshold. When the " -"alarm fires, an associated action is performed." -msgstr "" -"Kami tertarik karena layanan Telemetry mendukung alarm: alarm nyala saat " -"statistik rata-rata kami melanggar ambang batas yang dikonfigurasi. Saat " -"alarm menyala, tindakan yang terkait dilakukan." - -msgid "" -"We assume that you can already access an OpenStack cloud. You must have a " -"project, also known as a tenant, with a minimum quota of six instances. " -"Because the Fractals application runs in Ubuntu, Debian, Fedora-based, and " -"openSUSE-based distributions, you must create instances that use one of " -"these operating systems." -msgstr "" -"Kami berasumsi bahwa Anda sudah dapat mengakses awan OpenStack. Anda harus " -"memiliki sebuah proyek, juga dikenal sebagai tenant (penyewa), dengan kuota " -"minimal enam instance. Karena aplikasi Fractals berjalan di distribusi " -"berbasis Ubuntu, Debian, Fedora, dan openSUSE, Anda harus membuat instance " -"yang menggunakan salah satu dari sistem operasi ini." - -msgid "We cover networking in detail in :doc:`/networking`." -msgstr "Kami meliput networking secara rinci di :doc:`/networking`." - -msgid "" -"We explained image and flavor in :doc:`getting_started`, so in the following " -"sections, we will explain the other parameters in detail, including :code:" -"`ex_userdata` (cloud-init) and :code:`ex_keyname` (key pairs)." -msgstr "" -"Kami menjelaskan image and flavor di :doc: `getting_started`, jadi pada " -"bagian berikut, kami akan menjelaskan parameter lainnya secara rinci, " -"termasuk :code:`ex_userdata` (cloud-init) dan :code:`ex_keyname` (key pairs)." - -msgid "We have created a Maven POM file to help you get started." -msgstr "Kami telah membuat file POM Maven untuk membantu Anda memulai." - -msgid "" -"We have not quite figured out how to stop using a database, but the general " -"steps are:" -msgstr "" -"Kami belum tahu bagaimana cara menghentikan penggunaan database, tapi " -"langkah umumnya adalah:" - -msgid "" -"We have talked about separating functions into different micro-services, and " -"how that enables us to make use of the cloud architecture. Now let us see " -"that in action." -msgstr "" -"Kami telah berbicara tentang memisahkan fungsi menjadi layanan mikro yang " -"berbeda, dan bagaimana hal itu memungkinkan kami memanfaatkan arsitektur " -"awan. Sekarang mari kita lihat itu beraksi." - -msgid "What you need" -msgstr "Apa yang kau butuhkan" - -msgid "What you will learn" -msgstr "Apa yang akan kamu pelajari" - -msgid "" -"When an SSH public key is provided during instance creation, cloud-init " -"installs this key on a user account. (The user name varies between cloud " -"images.) See the `Obtaining Images `_ section of the image guide for guidance about which " -"user name you should use when SSHing. If you still have problems logging in, " -"ask your cloud provider to confirm the user name." -msgstr "" -"Bila kunci publik SSH diberikan selama pembuatan instance, awan init " -"memasang kunci ini di akun pengguna. (Nama pengguna bervariasi di antara " -"image awan.) Lihat `Obtaining Images `_ bagian dari panduan image untuk pedoman tentang nama " -"pengguna yang harus Anda gunakan saat SSHing. Jika Anda masih mengalami " -"masalah saat log in, mintalah provider awan untuk mengkonfirmasi nama " -"pengguna." - -msgid "" -"When the instance boots, the `ex_userdata` variable value instructs the " -"instance to deploy the Fractals application." -msgstr "" -"Ketika instance boot, nilai variabel `ex_userdata` menginstruksikan instance " -"untuk menerapkan aplikasi Fractals." - -msgid "" -"When you create an instance for the application, you want to give it a bit " -"more information than you supplied to the bare instance that you just " -"created and deleted. We will go into more detail in later sections, but for " -"now, simply create the following resources so that you can feed them to the " -"instance:" -msgstr "" -"Saat Anda membuat sebuah instance untuk aplikasi ini, Anda ingin memberikan " -"sedikit informasi lebih banyak daripada yang Anda berikan pada instance " -"kosong yang baru saja Anda buat dan hapus. Kami akan membahas lebih " -"terperinci di bagian selanjutnya, tapi untuk saat ini, cukup buat sumber " -"daya berikut sehingga Anda bisa memberi mereka instance:" - -msgid "" -"When you deal with pets, you name and care for them. If they get sick, you " -"nurse them back to health, which can be difficult and very time consuming. " -"When you deal with cattle, you attach a numbered tag to their ear. If they " -"get sick, you put them down and move on." -msgstr "" -"Bila Anda berurusan dengan hewan peliharaan, Anda menamai dan merawat " -"mereka. Jika mereka sakit, Anda merawat mereka kembali ke kesehatan, yang " -"bisa menyulitkan dan sangat menyita waktu. Saat Anda berurusan dengan " -"ternak, Anda memasang label bernomor di telinga mereka. Jika mereka sakit, " -"Anda menurunkannya dan melanjutkan perjalanan." - -msgid "" -"While this stack starts a single instance that builds and runs the Fractal " -"application as an all-in-one installation, you can make very complicated " -"templates that impact dozens of instances or that add and remove instances " -"on demand. Continue to the next section to learn more." -msgstr "" -"Sementara stack ini memulai satu instance yang membangun dan menjalankan " -"aplikasi Fractal sebagai instalasi all-in-one, Anda dapat membuat template " -"yang sangat rumit yang mempengaruhi lusinan instance atau menambahkan dan " -"menghapus instance sesuai permintaan. Lanjutkan ke bagian selanjutnya untuk " -"mempelajari lebih lanjut." - -msgid "Who should read this guide" -msgstr "Siapa yang harus membaca panduan ini?" - -msgid "" -"With multiple workers producing fractals as fast as they can, the system " -"must be able to receive the requests for fractals as quickly as possible. If " -"our application becomes popular, many thousands of users might connect to " -"our API to generate fractals." -msgstr "" -"Dengan beberapa pekerja yang memproduksi fraktal secepat mungkin, sistem " -"harus dapat menerima permintaan fraktal secepat mungkin. Jika aplikasi kita " -"menjadi populer, ribuan pengguna mungkin terhubung ke API untuk menghasilkan " -"fraktal." - -msgid "" -"With the OpenStack Networking API, the workflow for creating a network " -"topology that separates the public-facing Fractals app API from the worker " -"back end is as follows:" -msgstr "" -"Dengan OpenStack Networking API, workflow (jalur kerja) untuk membuat " -"topologi jaringan yang memisahkan API aplikasi Fractals yang dihadapi publik " -"(public-facing) dari worker back end adalah sebagai berikut:" - -msgid "" -"With the Orchestration API, the Fractal application can create an auto-" -"scaling group for all parts of the application, to dynamically provision " -"more compute resources during periods of heavy utilization, and also " -"terminate compute instances to scale down, as demand decreases." -msgstr "" -"Dengan Orchestration API, aplikasi Fractal dapat membuat grup skala otomatis " -"untuk semua bagian aplikasi, untuk secara dinamis menyediakan sumber daya " -"yang lebih banyak selama periode penggunaan yang berat, dan juga " -"menghentikan komputasi instance untuk diturunkan, karena permintaan menurun." - -msgid "" -"With the addition of the load balancer, the Fractal app's networking " -"topology now reflects the modular nature of the application itself." -msgstr "" -"Dengan penambahan penyeimbang beban, topologi jaringan aplikasi Fractal " -"sekarang mencerminkan sifat modular dari aplikasi itu sendiri." - -msgid "Work with stacks: Advanced" -msgstr "Bekerja dengan stacks: Tingkat lanjut" - -msgid "Work with stacks: Basics" -msgstr "Bekerja dengan stacks: Basics" - -msgid "Work with the CLI" -msgstr "Bekerja dengan CLI" - -msgid "Work with the OpenStack Database service" -msgstr "Bekerja dengan layanan OpenStack Database" - -msgid "" -"Wow! If you have made it through this section, you know more than the " -"authors of this guide know about working with OpenStack clouds." -msgstr "" -"Wow! Jika Anda berhasil melewati bagian ini, Anda tahu lebih banyak daripada " -"yang penulis panduan ini ketahui tentang bekerja dengan awan OpenStack." - -msgid "Writing your first OpenStack application" -msgstr "Menulis aplikasi OpenStack pertama Anda" - -msgid "" -"You also need a security group to permit access to the database server (for " -"MySQL, port 3306) from the network:" -msgstr "" -"Anda juga memerlukan grup keamanan untuk mengizinkan akses ke server " -"database (untuk MySQL, port 3306) dari jaringan:" - -msgid "" -"You are ready to create members for the load balancer pool, which reference " -"the floating IPs:" -msgstr "" -"Anda siap untuk membuat anggota untuk load balancer pool, yang merujuk pada " -"floating IP:" - -msgid "" -"You can aggregate samples and calculate statistics across all instances with " -"the `metering.some_name` metadata that has `some_value` by using a query of " -"the form:" -msgstr "" -"Anda dapat menggabungkan sampel dan menghitung statistik di semua instance " -"dengan metadata `metering.some_name` yang memiliki `some_value` dengan " -"menggunakan kueri formulir:" - -msgid "" -"You can also download the OpenStack RC file from the OpenStack Horizon " -"dashboard. Log in to the dashboard and click :guilabel:`Project->Access & " -"Security->API Access->Download OpenStack RC file`. If you use this method, " -"be aware that the \"auth URL\" does not include the path. For example, if " -"your :file:`openrc.sh` file shows:" -msgstr "" -"Anda juga bisa mendownload file RC OpenStack dari dashboard Horizon " -"OpenStack. Masuk ke dasbor dan klik :guilabel:`Project->Access & Security-" -">API Access->Download OpenStack RC file`. Jika Anda menggunakan metode ini, " -"perhatikan bahwa \"URL auth\" tidak termasuk jalurnya. Misalnya, jika file :" -"file:`openrc.sh` Anda menunjukkan:" - -msgid "You can also get information about available flavors:" -msgstr "Anda juga bisa mendapatkan informasi tentang flavor yang tersedia:" - -msgid "" -"You can also use the OpenStack API to create snapshots of running instances " -"and persistent volumes. For more information, see your SDK documentation." -msgstr "" -"Anda juga dapat menggunakan API OpenStack untuk membuat snapshot dari " -"instance yang berjalan dan volume yang ada. Untuk informasi lebih lanjut, " -"lihat dokumentasi SDK Anda." - -msgid "" -"You can complete advanced tasks such as uploading an object with metadata, " -"as shown in following example. For more information, see the documentation " -"for your SDK." -msgstr "" -"Anda dapat menyelesaikan tugas lanjutan seperti mengunggah objek dengan " -"metadata, seperti ditunjukkan pada contoh berikut. Untuk informasi lebih " -"lanjut, lihat dokumentasi untuk SDK Anda." - -msgid "" -"You can detach the volume and reattach it elsewhere, or use the following " -"steps to delete the volume." -msgstr "" -"Anda dapat melepaskan volume dan memasangnya kembali di tempat lain, atau " -"gunakan langkah-langkah berikut untuk menghapus volume." - -msgid "You can list available security groups with:" -msgstr "Anda dapat mencantumkan kelompok keamanan yang tersedia dengan:" - -msgid "You can then attach it to the instance:" -msgstr "Anda kemudian bisa lekatkan ke instance:" - -msgid "" -"You create stacks from templates, which contain resources. Resources are an " -"abstraction in the HOT (Heat Orchestration Template) template language, " -"which enables you to define different cloud resources by setting the :code:" -"`type` attribute." -msgstr "" -"Anda membuat tumpukan dari template, yang berisi sumber daya. Sumber daya " -"adalah abstraksi dalam bahasa template HOT (Heat Orchestration Template), " -"yang memungkinkan Anda menentukan sumber daya awan yang berbeda dengan " -"menetapkan atribut :kode: `type`." - -msgid "" -"You might have to run the :command:`openstack stack list` command a few " -"times before the stack creation is complete." -msgstr "" -"Anda mungkin harus menjalankan perintah :command:`openstack stack list` " -"beberapa kali sebelum pembuatan stack selesai." - -msgid "" -"You might want to use multiple clouds, such as a private cloud inside your " -"organization and a public cloud. This section attempts to do exactly that." -msgstr "" -"Anda mungkin ingin menggunakan beberapa awan, seperti awan pribadi di dalam " -"organisasi Anda dan awan publik. Bagian ini mencoba melakukan hal itu." - -msgid "You must pass in objects and not object names to the delete commands." -msgstr "Anda harus melewati objek dan bukan nama objek ke perintah hapus." - -msgid "" -"You need a server for the dedicated database. Use the image, flavor, and " -"keypair that you used in :doc:`/getting_started` to launch an :code:`app-" -"database` instance." -msgstr "" -"Anda memerlukan server untuk database dedicated. Gunakan image, flavor, dan " -"keypair yang Anda gunakan di :doc:`/getting_started` untuk meluncurkan " -"sebuah instance :code:`app-database`." - -msgid "You pass in these configuration settings as parameters:" -msgstr "Anda melewati pengaturan konfigurasi ini sebagai parameter:" - -msgid "You should be able to see them in the member list:" -msgstr "Anda harus bisa melihatnya di daftar anggota:" - -msgid "" -"You should be fairly confident about starting instances and distributing " -"services from an application among these instances." -msgstr "" -"Anda harus cukup percaya diri untuk memulai instance dan mendistribusikan " -"layanan dari aplikasi di antara instances ini." - -msgid "" -"You should now be able to see this container appear in a listing of all " -"containers in your account:" -msgstr "" -"Anda sekarang dapat melihat penampung ini muncul dalam daftar semua " -"kontainer di akun Anda:" - -msgid "" -"You should now be fairly confident working with Block Storage volumes. For " -"information about other calls, see the volume documentation for your SDK. " -"Or, try one of these tutorial steps:" -msgstr "" -"Anda sekarang harus cukup yakin bekerja dengan volume Block Storage. Untuk " -"informasi tentang panggilan lainnya, lihat dokumentasi volume untuk SDK " -"Anda. Atau, cobalah salah satu langkah tutorial berikut:" - -msgid "" -"You should now be fairly confident working with Object Storage. You can find " -"more information about the Object Storage SDK calls at:" -msgstr "" -"Anda sekarang harus cukup yakin bekerja dengan Object Storage. Anda dapat " -"menemukan lebih banyak informasi tentang Object Storage SDK di:" - -msgid "" -"You should now be fairly confident working with the Network API. To see " -"calls that we did not cover, see the volume documentation of your SDK, or " -"try one of these tutorial steps:" -msgstr "" -"Anda sekarang harus cukup yakin bekerja dengan Network API. Untuk melihat " -"panggilan yang tidak kami cover, lihat dokumentasi volume SDK Anda, atau " -"coba salah satu langkah tutorial berikut:" - -msgid "" -"You should now be fairly confident working with the Orchestration service. " -"To see the calls that we did not cover and more, see the volume " -"documentation of your SDK. Or, try one of these steps in the tutorial:" -msgstr "" -"Anda sekarang harus cukup yakin bekerja dengan layanan Orchestration. Untuk " -"melihat panggilan yang tidak kami tutup dan banyak lagi, lihat dokumentasi " -"volume SDK Anda. Atau, coba salah satu langkah berikut dalam tutorial:" - -msgid "" -"You should now have a basic understanding of the architecture of cloud-based " -"applications. In addition, you have had practice starting new instances, " -"automatically configuring them at boot, and even modularizing an application " -"so that you may use multiple instances to run it. These are the basic steps " -"for requesting and using compute resources in order to run your application " -"on an OpenStack cloud." -msgstr "" -"Anda sekarang harus memiliki pemahaman dasar tentang arsitektur aplikasi " -"berbasis cloud. Selain itu, Anda sudah berlatih memulai instance baru, " -"secara otomatis mengonfigurasikannya saat boot, dan bahkan memodulasi sebuah " -"aplikasi sehingga Anda dapat menggunakan beberapa instance untuk " -"menjalankannya. Ini adalah langkah dasar untuk meminta dan menggunakan " -"sumber daya untuk menjalankan aplikasi Anda di awan OpenStack." - -msgid "You should see output like this:" -msgstr "Anda harus melihat output seperti ini:" - -msgid "You should see output something like this:" -msgstr "Anda harus melihat output seperti ini:" - -msgid "You should see output something like:" -msgstr "Anda harus melihat output seperti:" - -msgid "You should see output such as:" -msgstr "Anda harus melihat output seperti:" - -msgid "" -"You will progressively ramp up to use up six instances, so make sure that " -"your cloud account has the appropriate quota." -msgstr "" -"Anda akan semakin banyak menggunakan sampai enam instance, jadi pastikan " -"akun awan Anda memiliki kuota yang sesuai." - -msgid "Your SDK might call an instance a 'node' or 'server'." -msgstr "SDK Anda mungkin memanggil instance 'node' atau 'server'." - -msgid "Your images and flavors will be different, of course." -msgstr "Flavor dan image Anda akan berbeda, tentu saja." - -msgid "Your ssh key name" -msgstr "Nama kunci ssh Anda" - -msgid "`Libcloud `_" -msgstr "`Libcloud `_" - -msgid "" -"`Micro-services `_ are an " -"important design pattern that helps achieve application modularity. " -"Separating logical application functions into independent services " -"simplifies maintenance and re-use. Decoupling components also makes it " -"easier to selectively scale individual components, as required. Further, " -"application modularity is a required feature of applications that scale out " -"well and are fault tolerant." -msgstr "" -"`Micro-services `_ adalah pola " -"desain penting yang membantu mencapai modularitas aplikasi. Memisahkan " -"fungsi aplikasi logis menjadi layanan independen menyederhanakan perawatan " -"dan penggunaan ulang. Komponen Decoupling juga mempermudah komponen skala " -"individu secara selektif, sesuai kebutuhan. Selanjutnya, modularitas " -"aplikasi adalah fitur aplikasi yang dibutuhkan yang dapat diukur dengan baik " -"dan fault tolerant." - -msgid "" -"`OpenStack Cloud SDK for Microsoft .NET 1.4.0.1 or later installed `_." -msgstr "" -"`OpenStack Cloud SDK for Microsoft .NET 1.4.0.1 or later installed `_." - -msgid "" -"`OpenStack Object Storage `_ (code-named swift) is open-source software that enables you to " -"create redundant, scalable data storage by using clusters of standardized " -"servers to store petabytes of accessible data. It is a long-term storage " -"system for large amounts of static data that you can retrieve, leverage, and " -"update. Unlike more traditional storage systems that you access through a " -"file system, you access Object Storage through an API." -msgstr "" -"`OpenStack Object Storage `_ (code-named swift) adalah perangkat lunak open-source yang " -"memungkinkan Anda membuat penyimpanan data yang berlebihan dan terukur " -"dengan menggunakan kumpulan server standar untuk menyimpan petabyte data " -"yang dapat diakses. Ini adalah sistem penyimpanan jangka panjang untuk " -"sejumlah besar data statis yang dapat Anda ambil, leverage, dan perbarui. " -"Tidak seperti sistem penyimpanan tradisional lainnya yang Anda akses melalui " -"sistem file, Anda mengakses Object Storage melalui API." - -msgid "" -"`Phoenix Servers `_, named " -"for the mythical bird that is consumed by fire and rises from the ashes to " -"live again, make it easy to start over with new instances." -msgstr "" -"`Phoenix Servers `_, " -"dinamakan untuk burung mitos yang dimakan oleh api dan bangkit dari abu " -"untuk hidup kembali, memudahkan untuk memulai kembali dengan kejadian baru." - -msgid "" -"`a recent version of gophercloud installed `_" -msgstr "" -"`a recent version of gophercloud installed `_" - -msgid "" -"`a recent version of php-opencloud installed `_." -msgstr "" -"`a recent version of php-opencloud installed `_." - -msgid "" -"`a recent version of shade installed `_." -msgstr "" -"`a recent version of shade installed `_." - -msgid "" -"`cloud-init `_ is a tool that " -"performs instance configuration tasks during the boot of a cloud instance, " -"and comes installed on most cloud images. :code:`ex_userdata`, which was " -"passed to :code:`create_node`, is the configuration data passed to cloud-" -"init." -msgstr "" -"`cloud-init `_ adalah alat " -"yang melakukan tugas konfigurasi instance saat boot instance awan, dan " -"dipasang pada sebagian besar image awan. :code:`ex_userdata`, yang " -"dilewatkan ke :code:`create_node`, adalah data konfigurasi yang dilewatkan " -"ke cloud-init." - -msgid "" -"`fog 1.19 or higher installed `_ and working with ruby gems 1.9." -msgstr "" -"`fog 1.19 or higher installed `_ and working with ruby gems 1.9." - -msgid "`fog `_" -msgstr "`fog `_" - -msgid "`gophercloud `_" -msgstr "`gophercloud `_" - -msgid "" -"`jClouds 1.8 or higher installed `_." -msgstr "" -"`jClouds 1.8 or higher installed `_." - -msgid "`jClouds `_" -msgstr "`jClouds `_" - -msgid "" -"`libcloud 0.15.1 or higher installed `_." -msgstr "" -"`libcloud 0.15.1 or higher installed `_." - -msgid "`php-opencloud `_" -msgstr "`php-opencloud `_" - -msgid "" -"`pkgcloud 1.2 or higher installed `_." -msgstr "" -"`pkgcloud 1.2 or higher installed `_." - -msgid "`pkgcloud `_" -msgstr "`pkgcloud `_" - -msgid "" -"a recent version of `OpenStackSDK `_ installed." -msgstr "" -"versi terbaru dari`OpenStackSDK `_ terinstal." - -msgid "amqp://guest:guest@localhost:5672/" -msgstr "amqp://guest:guest@localhost:5672/" - -msgid "auth URL" -msgstr "auth URL" - -msgid "cloud region" -msgstr "cloud region" - -msgid "conf.d, etc.d" -msgstr "conf.d, etc.d" - -msgid "" -"fog `does support OpenStack Orchestration `_." -msgstr "" -"fog `does support OpenStack Orchestration `_." - -msgid "" -"fog `supports `_ the OpenStack Networking API, but this section has not yet been " -"completed." -msgstr "" -"fog `supports `_ the OpenStack Networking API, namun bagian ini belum selesai." - -msgid "http://gophercloud.io/" -msgstr "http://gophercloud.io/" - -msgid "http://localhost/" -msgstr "http://localhost/" - -msgid "" -"http://php-opencloud.readthedocs.org/en/latest/getting-started-with-" -"openstack.html" -msgstr "" -"http://php-opencloud.readthedocs.org/en/latest/getting-started-with-" -"openstack.html" - -msgid "" -"https://docs.openstack.org/cli-reference/common/" -"cli_install_openstack_command_line_clients.html#install-the-clients" -msgstr "" -"https://docs.openstack.org/cli-reference/common/" -"cli_install_openstack_command_line_clients.html#install-the-clients" - -msgid "" -"https://docs.openstack.org/cli-reference/common/" -"cli_set_environment_variables_using_openstack_rc.html" -msgstr "" -"https://docs.openstack.org/cli-reference/common/" -"cli_set_environment_variables_using_openstack_rc.html" - -msgid "https://docs.openstack.org/infra/shade/" -msgstr "https://docs.openstack.org/infra/shade/" - -msgid "https://docs.openstack.org/openstacksdk/latest/" -msgstr "https://docs.openstack.org/openstacksdk/latest/" - -msgid "" -"https://github.com/fog/fog-openstack/blob/master/docs/getting_started.md" -msgstr "" -"https://github.com/fog/fog-openstack/blob/master/docs/getting_started.md" - -msgid "" -"https://github.com/fog/fog/blob/master/lib/fog/openstack/docs/storage.md" -msgstr "" -"https://github.com/fog/fog/blob/master/lib/fog/openstack/docs/storage.md" - -msgid "" -"https://github.com/pkgcloud/pkgcloud/tree/master/docs/providers/openstack" -msgstr "" -"https://github.com/pkgcloud/pkgcloud/tree/master/docs/providers/openstack" - -msgid "https://jclouds.apache.org/guides/openstack/" -msgstr "https://jclouds.apache.org/guides/openstack/" - -msgid "" -"https://libcloud.readthedocs.org/en/latest/compute/drivers/openstack.html" -msgstr "" -"https://libcloud.readthedocs.org/en/latest/compute/drivers/openstack.html" - -msgid "https://libcloud.readthedocs.org/en/latest/storage/api.html" -msgstr "https://libcloud.readthedocs.org/en/latest/storage/api.html" - -msgid "" -"https://superuser.openstack.org/articles/simple-auto-scaling-environment-" -"with-heat" -msgstr "" -"https://superuser.openstack.org/articles/simple-auto-scaling-environment-" -"with-heat" - -msgid "" -"https://superuser.openstack.org/articles/understanding-openstack-heat-auto-" -"scaling" -msgstr "" -"https://superuser.openstack.org/articles/understanding-openstack-heat-auto-" -"scaling" - -msgid "https://www.nuget.org/packages/openstack.net" -msgstr "https://www.nuget.org/packages/openstack.net" - -msgid "internal worker traffic" -msgstr "lalu lintas pekerja internal" - -msgid "" -"jClouds supports the OpenStack Networking API, but section has not yet been " -"completed. Please see `this `_ in the meantime." -msgstr "" -"jCloud mendukung OpenStack Networking API, namun bagian ini belum selesai. " -"Silahkan lihat `this `_ " -"sementara itu." - -msgid "libcloud does not currently support OpenStack Orchestration." -msgstr "libcloud saat ini tidak mendukung OpenStack Orchestration." - -msgid "" -"libcloud support added 0.14: https://developer.rackspace.com/blog/libcloud-0-" -"dot-14-released/" -msgstr "" -"libcloud support added 0.14: https://developer.rackspace.com/blog/libcloud-0-" -"dot-14-released/" - -msgid "node.js" -msgstr "node.js" - -msgid "password" -msgstr "password" - -msgid "project ID or name (projects are also known as tenants)" -msgstr "ID atau nama proyek (proyek juga dikenal sebagai tenant/penyewa)" - -msgid "public-facing web traffic" -msgstr "lalu lintas web public-facing" - -msgid "sqlite:////tmp/sqlite.db" -msgstr "sqlite:////tmp/sqlite.db" - -msgid "the .NET SDK does not currently support OpenStack Orchestration." -msgstr "the .NET SDK saat ini tidak mendukung OpenStack Orchestration." - -msgid "user name" -msgstr "user name" diff --git a/firstapp/source/locale/tr_TR/LC_MESSAGES/firstapp.po b/firstapp/source/locale/tr_TR/LC_MESSAGES/firstapp.po deleted file mode 100644 index 4a9b232fe..000000000 --- a/firstapp/source/locale/tr_TR/LC_MESSAGES/firstapp.po +++ /dev/null @@ -1,4277 +0,0 @@ -# Mücahit Büyükyılmaz , 2015. #zanata -# OpenStack Infra , 2015. #zanata -# işbaran akçayır , 2017. #zanata -msgid "" -msgstr "" -"Project-Id-Version: OpenStack First Application 2013.2.1.dev4245\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-04-23 14:55+0000\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2017-09-18 01:12+0000\n" -"Last-Translator: Copied by Zanata \n" -"Language: tr_TR\n" -"Plural-Forms: nplurals=2; plural=(n>1)\n" -"X-Generator: Zanata 4.3.3\n" -"Language-Team: Turkish (Turkey)\n" - -msgid "**GettingStarted.java:**" -msgstr "**GettingStarted.java:**" - -msgid "**Remove the stack**" -msgstr "**Yığını kaldır**" - -msgid "**Show information about the stack**" -msgstr "**Yığınla ilgili bilgi göster**" - -msgid "**Stack create**" -msgstr "**Yığın oluştur**" - -msgid "**pom.xml:**" -msgstr "**pom.xml:**" - -msgid ".NET Framework" -msgstr ".NET Çatısı" - -msgid ":code:`-d`" -msgstr ":code:`-d`" - -msgid ":code:`-e`" -msgstr ":code:`-e`" - -msgid ":code:`-i`" -msgstr ":code:`-i`" - -msgid ":code:`-m`" -msgstr ":code:`-m`" - -msgid ":code:`-r`" -msgstr ":code:`-r`" - -msgid "" -":code:`api` (enable and start the API service), :code:`worker` (enable and " -"start the worker service), and :code:`demo` (run the demo mode to request " -"random fractals)." -msgstr "" -":code:`api` (API servisini etkinleştir ve başlat), :code:`worker` (işçi " -"servisini etkinleştir ve başlat), ve :code:`demo` (Rasgele fraktallar " -"istemek için demo kipini çalıştır)." - -msgid "" -":code:`ceilometer_sample_query`: shows the samples used to build the " -"statistics." -msgstr "" -":code:`ceilometer_sample_query`: istatistikleri inşa etmek için kullanılan " -"örnekleri gösterir." - -msgid "" -":code:`ceilometer_statistics_query`: shows the statistics used to trigger " -"the alarms." -msgstr "" -":code:`ceilometer_statistics_query`: uyarıları tetiklemek için kullanılan " -"istatistikleri gösterir." - -msgid "" -":code:`detach_volume` and :code:`destroy_volume` take a volume object, not a " -"name." -msgstr "" -":code:`detach_volume` ve :code:`destroy_volume` birim nesnesi alır, isim " -"değil." - -msgid "" -":code:`ex_create_security_group_rule()` takes ranges of ports as input. This " -"is why ports 80 and 22 are passed twice." -msgstr "" -":code:`ex_create_security_group_rule()` bağlantı noktası aralıklarını girdi " -"olarak alır. Bu yüzden 80 ve 22 iki kere geçirilmiştir." - -msgid "" -":code:`messaging` (install RabbitMQ) and :code:`faafo` (install the Faafo " -"app)." -msgstr "" -":code:`messaging` (RabbitMQ kur) ve :code:`faafo` (Faafo uygulamasını kur)." - -msgid "" -":code:`scale__workers_up_url`: A post to this url will add worker instances." -msgstr "" -":code:`scale__workers_up_url`: Bu url'ye yapılan gönderi işçi sunucu " -"ekleyecektir." - -msgid "" -":code:`scale_workers_down_url`: A post to this url will remove worker " -"instances." -msgstr "" -":code:`scale_workers_down_url`: Bu url'ye yapılan gönderi işçi sunucuları " -"kaldıracaktır." - -msgid ":doc:`/advice`: Get advice about operations." -msgstr ":doc:`/advice`: İşlemler hakkında öneri alın." - -msgid "" -":doc:`/block_storage`: Migrate the database to block storage, or use the " -"database-as-a-service component." -msgstr "" -":doc:`/block_storage`: Veritabanını blok depolamaya göç ettirin, veya servis " -"olarak veritabanı bileşenini kullanın." - -msgid "" -":doc:`/craziness`: Learn some crazy things that you might not think to do ;)" -msgstr "" -":doc:`/craziness`: Yapmayı düşünmeyeceğiniz bazı çılgın şeyleri öğrenin ;)" - -msgid "" -":doc:`/durability`: Learn how to use Object Storage to make your application " -"durable." -msgstr "" -":doc:`/durability`: Uygulamanızı dayanıklı hale getirmek için Nesne " -"Depolamayı nasıl kullanacağınızı öğrenin." - -msgid "" -":doc:`/durability`: Learn how to use Object Storage to make your application " -"more durable." -msgstr "" -":doc:`/durability`: Uygulamanızı daha dayanıklı hale getirmek için Nesne " -"Depolamayı nasıl kullanacağınızı öğrenin." - -msgid ":doc:`/networking`: Learn about complex networking." -msgstr ":doc:`/networking`: Karmaşık ağları öğrenin." - -msgid ":doc:`/orchestration`: Automatically orchestrate your application." -msgstr ":doc:`/orchestration`: Uygulamanızı otomatik olarak düzenleyin." - -msgid ":doc:`/scaling_out`: Learn how to scale your application." -msgstr ":doc:`/scaling_out`: Uygulamanızı nasıl ölçekleyeceğinizi öğrenin." - -msgid "" -"A .NET-based library. Use it to write C++ or C# code for Microsoft " -"applications." -msgstr "" -".NET tabanlı bir kitaplık. Microsoft uygulamaları için C++ veya C# kodu " -"yazmak için kullanın." - -msgid "" -"A Java-based library that the Apache Foundation manages. Use it to work with " -"multiple cloud types." -msgstr "" -"Apache Vakfının yönettiği Java tabanlı bir kitaplık. Birden çok bulut " -"türüyle çalışmak için kullanın." - -msgid "A Node.js-based SDK. Use it work with multiple clouds." -msgstr "Node.js tabanlı bir SDK. Birden çok bulutla çalışmak için kullanın." - -msgid "" -"A PHP-based library. Use it to write PHP code that works with OpenStack " -"clouds." -msgstr "" -"PHP tabanlı bir kitaplık. OpenStack bulutlarıyla çalışan PHP kodu yazmak " -"için kullanın." - -msgid "" -"A Python-based library developed by OpenStack Infra team. Use it to operate " -"multiple OpenStack clouds." -msgstr "" -"OpenStack Infra takımı tarafından geliştirilen Python tabanlı bir kitaplık. " -"Birden çok OpenStack bulutlarını işletmek için kullanın." - -msgid "" -"A Python-based library that the Apache Foundation manages. Use it to work " -"with multiple cloud types." -msgstr "" -"Apache Vakfının yönettiği Python tabanlı kitaplık. Birden çok bulut türüyle " -"çalışmak için kullanın." - -msgid "A Ruby-based SDK. Use it to work with multiple clouds." -msgstr "Ruby tabanlı bir SDK. Birden çok bulutla çalışmak için kullanın." - -msgid "A floating IP helper function" -msgstr "Bir değişken IP yardımcı fonksiyonu" - -msgid "A general overview" -msgstr "Genel görünüm" - -msgid "" -"A go-based SDK. Use it to write Golang code that works with OpenStack clouds." -msgstr "" -"Go tabanlı bir SDK. OpenStack bulutlarıyla çalışan Golang kodu yazmak için " -"kullanın." - -msgid "" -"A key pair. To access your instance, you must import an SSH public key into " -"OpenStack to create a key pair. OpenStack installs this key pair on the new " -"instance. Typically, your public key is written to :code:`.ssh/id_rsa.pub`. " -"If you do not have an SSH public key file, follow `these instructions " -"`_ first. We will " -"cover these instructions in depth in :doc:`/introduction`." -msgstr "" -"Bir anahtar çifti. Sunucunuza erişmek için, OpenStack'e SSH açık anahtarını " -"aktararak anahtar çifti oluşturmalısınız. OpenStack bu anahtar çiftini yeni " -"sunucuya yükler. Genellikle açık anahtarınız :code:`.ssh/id_rsa.pub` " -"konumuna yazılır. SSH açık anahtarı dosyanız yoksa önce `şu yönergeleri " -"`_ takip edin. Bu " -"yönergeleri :doc:`/introduction` da daha derin işleyeceğiz." - -msgid "" -"A simple solution is to give half of your friends one address and half the " -"other, but that solution is not sustainable. Instead, you can use a `DNS " -"round robin `_ to do that " -"automatically. However, OpenStack networking can provide Load Balancing as a " -"Service, which :doc:`/networking` explains." -msgstr "" -"Basit bir çözüm arkadaşlarınızın yarısına bir adres, diğer yarısına başka " -"bir adres vermektir, ama bu çözüm devam ettirilebilir değildir. Bunun yerine " -"bunu otomatik olarak yapmak için `DNS round robin `_ kullanabilirsiniz. Ancak OpenStack ağı :doc:`/" -"networking` belgesinin açıkladığı şekilde Servis olarak Yük Dengeleme " -"sağlayabilir." - -msgid "" -"API load is a slightly different problem than the previous one regarding " -"capacity to work. We can simulate many requests to the API, as follows:" -msgstr "" -"API yükü daha önce bahsedilen çalışma kapasitesinden daha farklı bir " -"problemdir. API'lere şu şekilde birçok istek gönderme denemesi yapabiliriz:" - -msgid "API traffic" -msgstr "API trafiği" - -msgid "Access the application" -msgstr "Uygulamaya erişin" - -msgid "Add metadata to objects" -msgstr "Metaveri nesneleri ekleyin" - -msgid "Add the option Networks and send its id to attach the instance to:" -msgstr "Ağlar seçeneğini ekleyin ve kimliğini sunucuyu eklemek için gönderin:" - -msgid "" -"Add the parameter network and send its name or id to attach the instance to:" -msgstr "" -"Ağ parametresini ekleyin ve ismini veya kimliğini eklenecek sunucuya " -"gönderin:" - -msgid "" -"Adding this capacity enables you to deal with a higher number of requests " -"for fractals. As soon as these worker instances start, they begin checking " -"the message queue for requests, reducing the overall backlog like a new " -"register opening in the supermarket." -msgstr "" -"Bu kapasiteyi eklemek fraktallar için daha yüksek sayıda istekle başa " -"çıkabilmenizi sağlar. Bu işçi sunucular başladığı anda, istekler için ileti " -"kuyruğunu kontrol etmeye başlarlar, markette açılan yeni bir kasa gibi genel " -"birikmeyi azaltırlar." - -msgid "Advice for developers new to operations" -msgstr "İşlemlere yeni geliştiriciler için öneri" - -msgid "" -"After separating the Fractal worker nodes into their own networks, the next " -"logical step is to move the Fractal API service to a load balancer, so that " -"multiple API workers can handle requests. By using a load balancer, the API " -"service can be scaled out in a similar fashion to the worker nodes." -msgstr "" -"Fraktal işçi düğümlerini kendi ağlarına ayırdıktan sonra, sonraki mantıklı " -"adım Fraktal API servisini bir yük dengeleyiciye taşıyarak birden fazla API " -"işçisinin istekleri ele almasını sağlamaktır. Bir yük dengeleyici " -"kullanarak, API servisi işçi düğümleri gibi ölçeklenebilir." - -msgid "" -"After the instance is created, cloud-init downloads and runs a script " -"called :code:`install.sh`. This script installs the Fractals application. " -"Cloud-init can consume bash scripts and a number of different types of data. " -"You can even provide multiple types of data. You can find more information " -"about cloud-init in the `official documentation `_." -msgstr "" -"Sunucu oluşturulduktan sonra, cloud-init :code:`install.sh` adındaki bir " -"betiği indirir ve çalıştırır. Bu betik Fraktallar uygulamasını kurar. Cloud-" -"init bash betiklerini ve çeşitli farklı türde veriyi tüketebilir. Hatta " -"birden fazla türde veri de sağlayabilirsiniz. `Resmi belgelendirmede " -"`_ cloud-init'le ilgili daha " -"fazla bilgi bulabilirsiniz." - -msgid "Allocate floating ips and assign them to the web server nodes." -msgstr "Değişken ip'ler ayırın ve web sunucusu düğümlerine atayın." - -msgid "Allocate the floating IP address:" -msgstr "Değişken IP adresini ayırın:" - -msgid "" -"Allocating a floating IP address to an instance does not change the IP " -"address of the instance, it causes OpenStack to establish the network " -"translation rules to allow an *additional* IP address." -msgstr "" -"Bir değişken IP adresini sunucuya ayırmak sunucunun IP adresini değiştirmez, " -"OpenStack ağ dönüşüm kurallarını *ek* bir IP adresine izin verecek şekilde " -"kurmasına sebep olur." - -msgid "" -"An often-cited reason for designing applications by using cloud patterns is " -"the ability to **scale out**. That is: to add additional resources, as " -"required. Contrast this strategy to the previous one of increasing capacity " -"by scaling up the size of existing resources. To scale out, you must:" -msgstr "" -"Bulut kalıpları kullanarak uygulama tasarlamanın çoğu zaman gösterilen " -"sebeplerinden biri **dışa ölçeklemedir**. Bu kısaca gerektiğinde ek " -"kaynaklar ekleyebilmektir. Kapasite artırmak için mevcut kaynakların " -"boyutlarını artırma stratejisiyle karşılaştırın. Dışa ölçeklemek için:" - -msgid "And as before, the stack takes a few minutes to build!" -msgstr "Ve yine önceki gibi, yığın inşası birkaç dakika alır!" - -msgid "And confirm it is in place:" -msgstr "Ve yerinde olduğunu onaylayın:" - -msgid "" -"Another approach is to create a 'gold' image, which pre-installs your " -"application and its dependencies. A 'gold' image enables faster boot times " -"and more control over what is on the instance. However, if you use 'gold' " -"images, you must have a process in place to ensure that these images do not " -"fall behind on security updates." -msgstr "" -"Başka bir yaklaşım da uygulamanızı ve bağımlılıklarınızı önceden kuran bir " -"'altın' imaj oluşturmaktır. 'altın' imaj daha hızlı önyükleme süreleri ve " -"sunucu üzerinde ne olduğuyla ilgili daha iyi kontrol sağlar. Ancak 'altın' " -"imajlar kullanırsanız, bu imajların güvenlik güncellemelerinin gerisinde " -"kalmadığından emin olmak için bir sürece sahip olmalısınız." - -msgid "" -"Anyone with a programming background can easily read the code in this guide. " -"Although this guide focuses on a particular SDK, you can use other languages " -"and toolkits with the OpenStack cloud:" -msgstr "" -"Programlama geçmişine sahip herkes bu kılavuzdaki kodu kolaylıkla " -"okuyabilir. Bu kılavuz belirli bir SDK'ya odaklansa da, diğer dilleri ve " -"araç takımlarını OpenStack bulutuyla kullanabilirsiniz:" - -msgid "Appendix" -msgstr "Ek" - -msgid "Application deployment" -msgstr "Uygulama geliştirme" - -msgid "" -"Application developers and operators who use phoenix servers have access to " -"systems that are built from a known baseline, such as a specific operating " -"system version, and to tooling that automatically builds, installs, and " -"configures a system." -msgstr "" -"Phoenix sunucularını kullanan uygulama geliştiriciler ve işleticiler belirli " -"bir işletim sistemi sürümü, ve bir sistemi otomatik inşa eden, yükleyen ve " -"yapılandıran bir araca sahip bilinen bir tabandan inşa edilen sistemlere " -"erişirler." - -msgid "Architect your application to make use of additional resources." -msgstr "" -"Uygulamanızı ek kaynakların kullanımından faydalanacak şekilde " -"tasarlamalısınız." - -msgid "" -"Armed with a security group, image, and flavor size, you can add multiple " -"API services:" -msgstr "" -"Bir güvenlik grubu, imaj ve nitelik boyutuyla birden çok API servisi " -"ekleyebilirsiniz:" - -msgid "As before, pass in configuration settings as parameters." -msgstr "Önceki gibi, yapılandırma ayarlarını parametreler olarak verin." - -msgid "" -"As in traditional IT, cloud instances are accessed through IP addresses that " -"OpenStack assigns. How this is actually done depends on the networking setup " -"for your cloud. In some cases, you will simply get an Internet rout-able IP " -"address assigned directly to your instance." -msgstr "" -"Geleneksel IT'de olduğu gibi bulut sunucularına da OpenStack'in atadığı IP " -"adresleri üzerinden erişilir. Bunun nasıl yapılacağı bulutunuzun ağ " -"kurulumuna göre değişir. Bazı durumlarda, sunucunuza doğrudan atanmış " -"internet yönlendirilebilir bir IP adresi alırsınız." - -msgid "" -"As mentioned in :doc:`/introduction`, the generated fractal images are saved " -"on the local file system of the API service instances. Because you have " -"multiple API instances up and running, the fractal images are spread across " -"multiple API services, which causes a number of :code:`IOError: [Errno 2] No " -"such file or directory` exceptions when trying to download a fractal image " -"from an API service instance that does not have the fractal image on its " -"local file system." -msgstr "" -":doc:`/introduction` kısmında bahsedildiği gibi, üretilen fraktal imajları " -"API servisi sunucularının yerel dosya sistemlerinde kaydedilir. Çalışır " -"birden çok API sunucunuz olduğundan, fraktal imajlar birden çok API " -"servisleri arasında dağılmıştır, bu da yerel dosya sisteminde istenen " -"fraktal imajı barındırmayan API servisi sunucularından fraktal imajı " -"indirmeye çalışırken :code:`IOError: [Errno 2] Böyle bir dosya ya dizin yok` " -"istisnaları almanıza sebep olur." - -msgid "" -"As with classical infrastructure, failures of the underpinning cloud " -"infrastructure (hardware, networks, and software) are unavoidable. When you " -"design for the cloud, it is crucial that your application is designed for an " -"environment where failures can happen at any moment. This may sound like a " -"liability, but it is not; by designing your application with a high degree " -"of fault tolerance, you also make it resilient, and more adaptable, in the " -"face of change." -msgstr "" -"Klasik mimaride olduğu gibi, altta yatan bulut mimarisindeki (donanım, " -"ağlar, ve yazılım) arızalar kaçınılmazdır. Bulut için tasarım yaptığınızda, " -"uygulamanızın her an arızalarla karşılaşabilecek şekilde bu ortama göre " -"tasarlanması çok önemlidir. Bu kulağa bir yükümlülük gibi gelse de; " -"uygulamanızı yüksek derecede hata dayanıklılığına sahip şekilde tasarlamak " -"kendini çabuk toparlayan, değişikliklere daha kolay uyum sağlayan hale " -"getirecektir." - -msgid "" -"As you can see from the parameters passed to the installation script, you " -"define this instance as the worker instance. But, you also pass the address " -"of the API instance and the message queue so the worker can pick up " -"requests. The Fractals application installation script accepts several " -"parameters." -msgstr "" -"Kurulum betiğine geçirilen parametrelerden görebileceğiniz gibi, bu sunucuyu " -"işçi sunucu olarak tanımlarsınız. Bunun yanında API sunucusunun adresini ve " -"işçilerin istekleri alabilmesi için ileti kuyruğunun adresini verirsiniz. " -"Fraktallar uygulama kurulum betiği çeşitli parametreler alır." - -msgid "" -"As you change the topology of your applications, you must update or create " -"security groups. Here, you re-create the required security groups." -msgstr "" -"Uygulamalarınızın topolojilerini değiştirdikçe, güvenlik grupları " -"güncellemeli veya oluşturmalısınız. Burda gerekli güvenlik gruplarını tekrar " -"oluşturursunuz." - -msgid "Associate a floating IP for external connectivity" -msgstr "Harici bağlantı için bir değişken IP ilişkilendirin" - -msgid "" -"At the end of this section, you make some slight changes to the networking " -"topology by using the OpenStack Networking API to create the 10.0.1.0/24 " -"network to which the worker nodes attach. You use the 10.0.3.0/24 API " -"network to attach the Fractal API servers. Web server instances have their " -"own 10.0.2.0/24 network, which is accessible by fractal aficionados " -"worldwide, by allocating floating IPs from the public network." -msgstr "" -"Bu kısmın sonunda, OpenStack Ağ API'sini işçi düğümlerin eklendiği " -"10.0.1.0/24 ağını oluşturmak için için kullanarak ağ topolojisine ufak " -"değişiklikler yaparsınız. 10.0.3.0/24 API ağını Fraktal API sunucularını " -"eklemek için kullanırsınız. Web sunucularının kendi 10.0.2.0/24 ağları " -"vardır, bu ağ açık ağdan değişken IP adresleri ayrıldığından dünya çapında " -"fraktal meraklıları tarafından erişilebilirdir." - -msgid "Attach the floating IP address to the instance:" -msgstr "Değişken IP adresini sunucuya ekleyin:" - -msgid "Automation" -msgstr "Otomatikleştirme" - -msgid "" -"Back up the Fractals app images, which are currently stored inside the " -"database, on Object Storage." -msgstr "" -"Şu an veritabanında tutulan Fraktallar uygulama imajlarını Nesne Depolamaya " -"yedekleyin." - -msgid "Back up the Fractals from the database on the Object Storage" -msgstr "Fraktalları veritabanından Nesne Depolama üzerine yedekleyin" - -msgid "Backups" -msgstr "Yedekler" - -msgid "Basics" -msgstr "Temeller" - -msgid "" -"Because all service endpoints use the Identity Service for authentication " -"and authorization, place the following code in the 'void Main()' entry-point " -"function." -msgstr "" -"Tüm servis uç noktaları kimlik doğrulama ve yetkilendirme için Kimlik " -"Servisini kullandığından, aşağıdaki kodu 'void Main()' giriş fonksiyonuna " -"yerleştirin." - -msgid "" -"Because the SDKs do not fully support the OpenStack Networking API, this " -"section uses the command-line clients." -msgstr "" -"SDK'lar OpenStack Ağ API'sini tamamen desteklemediğinden, bu kısım komut " -"satırı istemcilerini kullanır." - -msgid "" -"Because the local file system is ephemeral storage, the fractal images are " -"lost along with the instance when the instance is terminated. Block-based " -"storage, which the :doc:`/block_storage` section discusses, avoids that " -"problem, but like local file systems, it requires administration to ensure " -"that it does not fill up, and immediate attention if disks fail." -msgstr "" -"Yerel dosya sistemi geçici depolama olduğundan, fraktal imajlar sunucu " -"sonlandırıldığından beraber kaybolurlar. :doc:`/block_storage` kısmında " -"tartışıldığı gibi blok tabanlı depolama bu problemi aşar, ama yerel dosya " -"sistemleri gibi dolmasını engellemek için bir yöneticiye ve diskler " -"arızalanırsa anında müdahaleye ihtiyaç duyarlar." - -msgid "" -"Because the tutorial reuses the :code:`conn` object, make sure that you " -"always have one handy." -msgstr "" -"Öğretici :code:`conn` nesnesini tekrar kullandığından, hep birini el altında " -"tuttuğunuzdan emin olun." - -msgid "Before proceeding, install the latest version of shade." -msgstr "Devam etmeden önce shade'in son sürümünü kurun." - -msgid "Before you continue, you must do one more thing." -msgstr "Devam etmeden önce bir şey daha yapmalısınız." - -msgid "" -"Before you run this class, confirm that you have configured it for your " -"cloud and the instance running the Fractals application." -msgstr "" -"Bu sınıfı çalıştırmadan önce bulutunuz ve Fraktal uygulamasını çalıştıran " -"sunucu için yapılandırdığınızdan emin olun." - -msgid "" -"Before you run this script, confirm that you have set your authentication " -"information, the flavor ID, and image ID." -msgstr "" -"Bu betiği çalıştırmadan önce, kimlik doğrulama bilgisini, nitelik ve imaj " -"kimliğini ayarladığınızdan emin olun." - -msgid "" -"Before you scale out your application services, like the API service or the " -"workers, you must add a central database and an :code:`app-services` " -"messaging instance. The database and messaging queue will be used to track " -"the state of fractals and to coordinate the communication between the " -"services." -msgstr "" -"API servisi veeya işçiler gibi uygulama servislerini dışa ölçeklemeden önce, " -"merkezi bir veritabanı ve bir :code:`app-services` ileti kuyruğu " -"eklemelisiniz. Veritabanı ve ileti kuyruğu fraktalların durumunu takip etmek " -"ve servisler arasında iletişimi düzenlemek için kullanılacaktır." - -msgid "Block Storage" -msgstr "Blok Depolama" - -msgid "Boot and configure an instance" -msgstr "Bir sunucu önyükleyin ve yapılandırın" - -msgid "Booting a worker" -msgstr "Bir işçinin önyüklenmesi" - -msgid "Bootstrap your network" -msgstr "Ağ önyüklemesi yapın" - -msgid "" -"By default, data in OpenStack instances is stored on 'ephemeral' disks. " -"These disks remain with the instance throughout its lifetime. When you " -"terminate the instance, that storage and all the data stored on it " -"disappears. Ephemeral storage is allocated to a single instance and cannot " -"be moved to another instance." -msgstr "" -"Öntanımlı olarak, OpenStack sunucularındaki veri 'geçici' disklerde tutulur. " -"Bu diskler sunucunun yaşam döngüsü boyunca sunucuyla kalır. Sunucuyu " -"sonlandırdığınızda, bu depolama ve üzerindeki veriler kaybolur. Geçici " -"depolama tek bir sunucu için ayrılır ve başka sunuculara taşınamaz." - -msgid "" -"CI/CD means that you always test your application and make frequent " -"deployments to production." -msgstr "" -"CI/CD her zaman uygulamanızı test etmeniz ve sık sık üretim ortamına dağıtım " -"yapmanız demektir." - -msgid "" -"Call the :code:`faafo` command-line interface to request the generation of " -"five large fractals." -msgstr "" -":code:`faafo` komut satırı arayüzünü çağırarak beş büyük fraktal üretimini " -"isteyin." - -msgid "" -"Change the API code, such as \"list fractals,\" to query Object Storage to " -"get the metadata." -msgstr "" -"API kodunu değiştirin, örneğin \"fraktalları listeleme\"yi metaveriyi almak " -"için Nesne Depolamayı sorgulayacak şekilde değiştirin." - -msgid "" -"Change the Fractal upload code to store metadata with the object in Object " -"Storage." -msgstr "" -"Fraktal yükleme kodunu değiştirerek metaveriyi nesneyle birlikte Nesne " -"Depolamada saklayacak şekilde değiştirin." - -msgid "" -"Check to see whether the API service process is running like expected. You " -"can find the logs for the API service in the directory :file:`/var/log/" -"supervisor/`." -msgstr "" -"API servis sürecinin beklenen şekilde çalışıp çalışmadığını kontrol edin. " -"API servisi için kayıtları :file:`/var/log/supervisor/` dizininde " -"bulabilirsiniz." - -msgid "" -"Choose an image and flavor for your instance. You need about 1GB RAM, 1 CPU, " -"and a 1GB disk. This example uses the Ubuntu image with a small flavor, " -"which is a safe choice. In subsequent tutorial sections in this guide, you " -"must change the image and flavor IDs to correspond to the image and flavor " -"that you choose." -msgstr "" -"Sunucunuz için bir imaj ve nitelik seçin. 1GB kadar RAM, 1 CPU ve 1GB diske " -"ihtiyacınız var. Bu örnek güvenli bir seçim olan, küçük nitelikte bir Ubuntu " -"imajını kullanır. Bu kılavuzdaki ilerleyen öğretici kısımlarda imaj ve " -"nitelik kimliklerini seçtiğiniz imaj ve niteliklere göre değiştirmeniz " -"gerekecek." - -msgid "Choose your OpenStack SDK" -msgstr "OpenStack SDK'nızı seçin" - -msgid "Cloud application architecture principles" -msgstr "Bulut uygulama mimarisi prensipleri" - -msgid "" -"Cloud applications often use many small instances rather than a few large " -"instances. Provided that an application is sufficiently modular, you can " -"easily distribute micro-services across as many instances as required. This " -"architecture enables an application to grow past the limit imposed by the " -"maximum size of an instance. It is like trying to move a large number of " -"people from one place to another; there is only so many people you can put " -"on the largest bus, but you can use an unlimited number of buses or small " -"cars, which provide just the capacity you need - and no more." -msgstr "" -"Bulut uygulamaları genellikle birkaç büyük sunucu yerine birçok küçük sunucu " -"kullanırlar. Bir uygulamanın yeterli miktarda modüler olması sağlanırsa, " -"kolaylıkla mikro servisleri istenilen sayıda sunucuya dağıtabilirsiniz. Bu " -"mimari bir uygulamanın sunucu sınırlarını aşabilecek noktaya büyüyebilmesini " -"sağlar. Bu çok sayıda insanı bir yerden bir yere taşımaya benzer; büyük bir " -"otobüse ancak belli miktarda insanı koyabilirsiniz, ama sınırsız sayıda " -"otobüs veya küçük arabalar kullanarak kapasiteyi ihtiyaç kadar ya da daha " -"fazla artırabilirsiniz." - -msgid "" -"Cloud applications typically share several design principles. These " -"principles influenced the design of the Fractals application." -msgstr "" -"Bulut uygulamaları genellikle birçok tasarım prensibini paylaşır. Bu " -"prensipler Fraktallar uygulamasının tasarımını etkilemiştir." - -msgid "" -"Cloud resources, such as running instances that you no longer use, can cost " -"money. To avoid unexpected expenses, destroy cloud resources." -msgstr "" -"Bulut kaynakları, örneğin artık kullanmadığınız çalışan sunucular, para " -"harcayabilir. İstenmeyen masraflardan kaçınmak için bulut kaynaklarını silin." - -msgid "Complete code sample" -msgstr "Tam kod örneği" - -msgid "Configuration management" -msgstr "Yapılandırma yönetimi" - -msgid "" -"Configuration management tools, such as Ansible, Chef, and Puppet, enable " -"you to describe exactly what to install and configure on an instance. Using " -"these descriptions, these tools implement the changes that are required to " -"get to the desired state." -msgstr "" -"Ansible, Chef ve Puppet gibi yapılandırma yönetim araçları bir sunucuda tam " -"olarak ne kurmak ve yapılandırmak istediğinizi tanımlamanızı sağlarlar. Bu " -"tanımları kullanarak, bu araçlar istenen duruma gelinmesi için gerekli " -"değişiklikleri uygularlar." - -msgid "Configure the Fractals app to use Object Storage" -msgstr "" -"Fraktallar uygulamasını Nesne Depolamayı kullanacak şekilde yapılandırın" - -msgid "Confirm that the stack created two alarms:" -msgstr "Yığının iki uyarı oluşturduğunu onaylayın:" - -msgid "Confirm that they were added:" -msgstr "Eklendiklerini onaylayın:" - -msgid "" -"Confirm that we have a public network by listing the networks our tenant has " -"access to. The public network does not have to be named public - it could be " -"'external', 'net04_ext' or something else - the important thing is it exists " -"and can be used to reach the Internet." -msgstr "" -"Kiracımızın erişimi olan ağları listeleyerek bir açık ağımız olduğunu " -"onaylayın. Açık ağ açık olarak adlandırılmamış olabilir- 'harici', " -"'net04_ext' veya başka bir şey olabilir- önemli olan mevcut olması ve " -"internet erişiminde kullanılabilir olmasıdır." - -msgid "Connect to the API endpoint:" -msgstr "API uç noktasına bağlanın:" - -msgid "Connecting to the Internet" -msgstr "İnternete bağlanmak" - -msgid "Contents" -msgstr "İçerikler" - -msgid "Create a network and subnet for the web server nodes." -msgstr "Web sunucu düğümleri için bir ağ ve alt ağ oluştur." - -msgid "" -"Create a network and subnet for the worker nodes. This is the private data " -"network." -msgstr "İşçi düğümler için bir ağ ve alt ağ oluşturun. Bu özel veri ağıdır." - -msgid "Create a router for the private data network." -msgstr "Özel veri ağı için bir yönlendirici oluşturun." - -msgid "" -"Create a volume object by using the unique identifier (UUID) for the volume. " -"Then, use the server object from the previous code snippet to attach the " -"volume to it at :code:`/dev/vdb`:" -msgstr "" -"Birimin benzersiz tanımlayıcısını (UUID) kullanarak bir birim nesnesi " -"oluşturun. Ardından, önceki kod parçasındaki sunucu nesnesini kullanarak " -"birimi :code:`/dev/vdb` konumuna ekleyin:" - -msgid "" -"Create and delete compute resources. These resources are virtual machine " -"instances where the Fractals application runs." -msgstr "" -"Hesaplama kaynaklarını oluşturun ve silin. Bu kaynaklar Fraktal uygulamanın " -"çalıştığı sanal makine sunucularıdır." - -msgid "Create more API service requests" -msgstr "Daha fazla API servis isteği oluşturun" - -msgid "Create more tasks" -msgstr "Daha fazla görev oluşturun" - -msgid "Create networks" -msgstr "Ağlar oluşturun" - -msgid "Create the instance." -msgstr "Sunucuyu oluşturun." - -msgid "" -"Currently, you cannot directly store generated images in OpenStack Object " -"Storage. Please revisit this section again in the future." -msgstr "" -"Şu an üretilen imajları doğrudan OpenStack Nesne Depolamaya kaydedemezsiniz. " -"Lütfen ilerde bu kısmı tekrar ziyaret edin." - -msgid "Customize networking for better performance and segregation." -msgstr "Daha iyi başarım ve ayrım için ağı özelleştirin." - -msgid "" -"Define a short function to locate unused or allocate floating IPs. This " -"saves a few lines of code and prevents you from reaching your floating IP " -"quota too quickly." -msgstr "" -"Kullanılmayanları bulmak için kısa bir fonksiyon tanımlayın veya değişken " -"IP'ler ayırın. Bu birkaç satır koddan kar etmenizi sağlar ve değişken IP " -"kotanızın çok çabuk dolmasını önler." - -msgid "Delete containers" -msgstr "Kapsayıcıları silin" - -msgid "Deploy the application to a new instance" -msgstr "Uygulamayı yeni bir sunucuya kurun" - -msgid "" -"Deploying application data and configuration to the instance can take some " -"time. Consider enjoying a cup of coffee while you wait. After the " -"application deploys, you can use your preferred browser to visit the awesome " -"graphic interface at the following link." -msgstr "" -"Uygulama verisinin ve yapılandırmanın sunucuya kurulumu biraz zaman " -"alabilir. Beklerken bir kahve keyfi yapmayı düşünebilirsiniz. Uygulama " -"kurulduktan sonra, tercih ettiğiniz tarayıcıyla aşağıdaki bağlantıdaki " -"muhteşem grafik arayüzü ziyaret edebilirsiniz." - -msgid "" -"Deploying applications in a cloud environment can be very different from " -"deploying them in a traditional IT environment. This guide teaches you how " -"to deploy applications on OpenStack and some best practices for cloud " -"application development." -msgstr "" -"Uygulamaları bulut ortamında kurmak geleneksel IT ortamında kurmaktan " -"oldukça farklıdır. Bu kılavuz uygulamaları OpenStack'de nasıl kuracağınızı " -"ve bulut uygulama geliştirme için bazı en iyi uygulamaları öğretir." - -msgid "Description" -msgstr "Açıklama" - -msgid "Destroy an instance" -msgstr "Bir sunucuyu silin" - -msgid "" -"Do not worry if these concepts are not yet completely clear. In :doc:`/" -"introduction`, we explore these concepts in more detail." -msgstr "" -"Bu kavramlar henüz tam oturmadıysa endişe etmeyin. :doc:`/introduction` " -"kısmında bu kavramları daha ayrıntılı işleyeceğiz." - -msgid "Enable/start something" -msgstr "Bir şeyleri etkinleştir/başlat" - -msgid "" -"Ensure you have an :file:`openrc.sh` file, source it, and validate that your " -"trove client works:" -msgstr "" -"Bir :file:`openrc.sh` dosyanız olduğundan emin olun, onu kaynak edin ve " -"trove istemcinizin çalıştığını onaylayın:" - -msgid "" -"Ensure you have an openrc.sh file, source it, and then check that your " -"openstack client works: ::" -msgstr "" -"Bir openrc.sh dosyanız olduğundan emin olun, onu kaynak edin ve openstack " -"istemcinizin çalıştığını kontrol edin: ::" - -msgid "" -"Even with a key in place, however, you must have the appropriate security " -"group rules in place to access your instance." -msgstr "" -"Bir anahtar olsa da, sunucunuza erişmek için uygun güvenlik grubu " -"kurallarına sahip olmalısınız." - -msgid "Example" -msgstr "Örnek" - -msgid "Explore and apply advanced OpenStack cloud features." -msgstr "Gelişmiş OpenStack bulut özelliklerini keşfedin ve uygulayın." - -msgid "Extra features" -msgstr "Ek özellikler" - -msgid "Extra security groups" -msgstr "Ek güvelik grupları" - -msgid "Extras" -msgstr "Ekler" - -msgid "Fail fast" -msgstr "Hızlıca başarısız" - -msgid "Fault tolerance" -msgstr "Arızaya dayanıklılık" - -msgid "Fault tolerance is essential to the cloud-based application." -msgstr "Arızaya dayanıklılık bulut tabanlı uygulama için şarttır." - -msgid "Final result" -msgstr "Sonuç" - -msgid "Finally, clean up by deleting the test object:" -msgstr "Son olarak deneme nesnesini silerek temizlik yapın:" - -msgid "" -"Finally, start the stopped MySQL database service and validate that " -"everything works as expected." -msgstr "" -"Son olarak, durdurulan MySQL veritabanı servisini başlatın ve herşeyin " -"beklenen şekilde çalıştığını doğrulayın." - -msgid "First check for an unused floating IP." -msgstr "Önce kullanılmamış bir değişken IP için kontrol edin." - -msgid "" -"First provide the appropriate identity, credentials and authorization URL " -"for your project. Then get an instance of the Nova API interface." -msgstr "" -"Önce projeniz için uygun kimliği, kimlik bilgilerini ve yetkilendirme " -"URL'sini sağlayın. Ardından Nova API arayüzü örneğini alın." - -msgid "First, learn how to connect to the Object Storage endpoint:" -msgstr "Önce, Nesne Depolama uç noktasına nasıl bağlanacağınızı öğrenin:" - -msgid "" -"First, tell the connection to get a specified image by using the ID of the " -"image that you picked in the previous section:" -msgstr "" -"Önce, bağlantıya önceki kısımda seçtiğiniz imajın kimliğini kullanarak " -"belirtilen imajı almasını söyleyin:" - -msgid "Flavors and images" -msgstr "Nitelikler ve imajlar" - -msgid "" -"For a list of available SDKs, see `Software Development Kits `_." -msgstr "" -"Kullanılabilir SDK listesi için, `Yazılım Geliştirme Araçlarına `_ göz atın." - -msgid "" -"For efficiency, most Object Storage installations treat large objects, :code:" -"`> 5GB`, differently than smaller objects." -msgstr "" -"Etkinlik için, çoğu Nesne Depolama kurulumları büyük nesnelere, örneğin :" -"code:`>5GB` küçük nesnelerden farklı davranırlar." - -msgid "" -"For example, you might use the Orchestration API to create two compute " -"instances by creating a stack and by passing a template to the Orchestration " -"API. That template contains two resources with the :code:`type` attribute " -"set to :code:`OS::Nova::Server`." -msgstr "" -"Örneğin bir yığın oluşturarak ve Orkestrasyon API'sine bir şablon geçirerek " -"Orkestrasyon API'sini kullanarak iki hesaplama sunucusu oluşturabilirsiniz. " -"Bu şablon :code:`type` özniteliği :code:`OS::Nova::Server` olarak ayarlanmış " -"iki kaynak içerir." - -msgid "For example:" -msgstr "Örneğin:" - -msgid "" -"For information about supported features and how to work with an existing " -"database service installation, see `Database as a Service in OpenStack " -"`_." -msgstr "" -"Desteklenen özellikler ve mevcut bir veritabanı servisi kurulumuyla nasıl " -"çalışacağınız hakkında bilgi için, `OpenStack'de Servis olarak Veritabanı " -"`_ kısmına bakınız." - -msgid "" -"For information about these and other calls, see `libcloud documentation " -"`_." -msgstr "" -"Bu ve diğer çağrılar hakkında bilgi için, `libcloud belgelendirmesine " -"`_ göz atın." - -msgid "" -"For more information about hybrid clouds, see the `Hybrid Cloud chapter " -"`_ in the Architecture " -"Design Guide." -msgstr "" -"Melez bulutlarla ilgili daha fazla bilgi için, Mimari Tasarım Kılavuzundaki " -"`Melez Bulut bölümüne `_ " -"göz atın." - -msgid "" -"For more information about multi-site clouds, see the `Multi-Site chapter " -"`_ in the " -"Architecture Design Guide." -msgstr "" -"Çoklu konum bulutlarıyla ilgili daha fazla bilgi için, Mimari Tasarım " -"Kılavuzundaki `Çoklu Konum bölümüne `_ göz atın." - -msgid "" -"For performance reasons, it makes sense to have a network for each tier, so " -"that traffic from one tier does not \"crowd out\" other types of traffic and " -"cause the application to fail. In addition, having separate networks makes " -"controlling access to parts of the application easier to manage, improving " -"the overall security of the application." -msgstr "" -"Başarım sebepleriyle, her aşama için bir ağa sahip olmak mantıklıdır, " -"böylecek bir aşamadaki trafik diğer türde trafiklerde \"kalabalık\" yaparak " -"uygulamanın başarısız olmasına sebep olmaz. Ek olarak farklı ağlara sahip " -"olmak uygulamanın parçalarına erişimi kontrol etmeyi yönetmesi kolay hale " -"getirir, uygulamanın genel güvenliğini artırır." - -msgid "" -"For this example, we take a floating IP pool from the 'public' network, " -"which is your external network." -msgstr "" -"Bu örnek için, harici ağınız olan 'public' ağından bir değişken IP havuzu " -"alıyoruz." - -msgid "Fractals application architecture" -msgstr "Fraktallar uygulama mimarisi" - -msgid "" -"From here, go to :doc:`/scaling_out` to learn how to further scale your " -"application. Or, try one of these steps in the tutorial:" -msgstr "" -"Burdan :doc:`/scaling_out` kısmına giderek uygulamanızı nasıl " -"ölçekleyeceğinizi öğrenin. Veya öğreticideki şu adımlardan birini deneyin:" - -msgid "Generate load" -msgstr "Yük üretin" - -msgid "Get more information about the stack:" -msgstr "Yığınla ilgili daha fazla bilgi al:" - -msgid "Getting started" -msgstr "Başlangıç" - -msgid "Go" -msgstr "Go" - -msgid "Go ahead and create two instances." -msgstr "Devam edin ve iki sunucu oluşturun." - -msgid "" -"Go ahead and delete the existing instances and security groups that you " -"created in previous sections. Remember, when instances in the cloud are no " -"longer working, remove them and re-create something new." -msgstr "" -"Önceki kısımlarda oluşturduğunuz mevcut sunucuları ve güvenlik gruplarını " -"silin. Unutmayın, buluttaki sunucular çalışmayı bıraktıklarında onları " -"kaldırmalı ve yeni bir şeyi tekrar oluşturmalısınız." - -msgid "" -"Go ahead and test the fault tolerance. Start deleting workers and API " -"instances. As long as you have one of each, your application is fine. " -"However, be aware of one weak point. The database contains the fractals and " -"fractal metadata. If you lose that instance, the application stops. Future " -"sections will explain how to address this weak point." -msgstr "" -"Şimdi devam edip hata dayanıklılığını deneyin. İşçileri ve API sunucularını " -"silmeye başlayın. İkisinden de birer tane olduğu sürece, uygulamanız " -"çalışır. Ancak bir zayıf noktayı unutmayın. Veritabanı fraktalları ve " -"fraktal metaverisini içerir. Bu sunucuyu kaybederseniz, uygulama durur. " -"İleri kısımlar bu zayıf noktayı nasıl ele alabileceğinizi açıklar." - -msgid "" -"Go to :doc:`/durability` to learn how to use Object Storage to solve this " -"problem in an elegant way. Or, you can proceed to one of these sections:" -msgstr "" -"Bu sorunu Nesne Depolamayı kullanarak zarif bir şekilde nasıl çözeceğinizi " -"öğrenmek için :doc:`/durability` kısmına gidin. Veya şu kısımlardan birine " -"devam edin:" - -msgid "Going crazy" -msgstr "Çılgınlaşmak" - -msgid "HOT templating language" -msgstr "HOT şablon dili" - -msgid "High availability" -msgstr "Yüksek kullanılırlık" - -msgid "" -"How do you deploy your application? For example, do you pull the latest code " -"from a source control repository? Do you make packaged releases that update " -"infrequently? Do you perform haphazard tests in a development environment " -"and deploy only after major changes?" -msgstr "" -"Uygulamanızı nasıl kuruyorsunuz? Örneğin son kodu kaynak kontrol deposundan " -"mı çekiyorsunuz? Paketli dağıtımlar yaparak arada bir güncelliyor musunuz? " -"Geliştirme ortamında gelişigüzel denemeler yaparak yalnızca büyük " -"değişikliklerden sonra mı dağıtıyorsunuz?" - -msgid "How the Fractals application interacts with OpenStack" -msgstr "Fraktallar uygulamasının OpenStack ile nasıl etkileşimde bulunacağı" - -msgid "How you interact with OpenStack" -msgstr "OpenStack ile nasıl etkileşimde bulunduğunuz" - -msgid "If a key pair of the given name is not found then one is generated." -msgstr "Verilen isimde bir anahtar çifti bulunmazsa bir tane üretilir." - -msgid "" -"If an application is meant to automatically scale up and down to meet " -"demand, it is not feasible have any manual steps in the process of deploying " -"any component of the application. Automation also decreases the time to " -"recovery for your application in the event of component failures, increasing " -"fault tolerance and resilience." -msgstr "" -"Bir uygulama talebi karşılamak için otomatik olarak yukarı aşağı " -"ölçeklenebilir olacaksa, uygulamanın herhangi bir bileşenini kurmada elle " -"yapılması gereken çok fazla işin olması uygulanabilir değildir. " -"Otomatikleştirme ayrıca bileşen arızalarında kurtarma sürelerini azaltır, " -"hata dayanıklılığını ve esnekliği artırır." - -msgid "" -"If either alarm reports the :code:`insufficient data` state, the default " -"sampling period of the stack is probably too low for your cloud; ask your " -"support team for assistance. You can set the period through the :code:" -"`period` parameter of the stack to match your clouds requirements." -msgstr "" -"Herhangi bir uyarı :code:`yetersiz veri` durumu bildirirse, yığının " -"öntanımlı örnekleme aralığı muhtemelen bulutunuz için çok düşüktür; destek " -"ekibinize yardım için başvurun. Aralığı bulutunuzun gereksinimleriyle " -"eşleşmesi için :code:`period` parametresi aracılığıyla ayarlayabilirsiniz." - -msgid "" -"If one application instance is compromised, all instances with the same " -"image and configuration will likely suffer the same vulnerability. The " -"safest path is to use configuration management to rebuild all instances." -msgstr "" -"Bir uygulama sunucusu ele geçirilmişse, aynı imaj ve yapılandırmaya sahip " -"tüm sunucuların aynı saldırıyla karşılaşması muhtemeldir. En güvenli yol " -"yapılandırma yönetimiyle tüm sunucuları yeniden inşa etmektir." - -msgid "" -"If one is assigned, users can use this address to access the instance on " -"some OpenStack clouds." -msgstr "" -"Eğer atanmışsa, kullanıcılar bazı OpenStack bulutlarında sunucuya erişmek " -"için bu adresi kullanabilirler." - -msgid "If one is assigned, users can use this address to access the instance." -msgstr "" -"Eğer atanmışsa, kullanıcılar sunucuya erişmek için bu adresi kullanabilirler." - -msgid "" -"If the image that you want is not available in your cloud, you can usually " -"upload one depending on the policy settings of your cloud. For information " -"about how to upload images, see `obtaining images `_." -msgstr "" -"İstediğiniz imaj bulutunuzda değilse, genellikle bulutunuzun ilke ayarlarına " -"göre bir tane yükleyebilirsiniz. İmaj yüklemeyle ilgili bilgi için `imajları " -"elde etmeye `_ " -"göz atın." - -msgid "" -"If you are an advanced user, think about how you might remove the database " -"from the architecture and replace it with Object Storage metadata, and then " -"contribute these steps to :doc:`craziness`." -msgstr "" -"Gelişmiş bir kullanıcı isenize, veritabanını mimariden ayırarak Nesne " -"Depolama metaverisi ile nasıl değiştirebileceğinizi düşünün ve bu adımları :" -"doc:`craziness` belgesine yazın." - -msgid "" -"If you are familiar with OpenStack but have not created a cloud application " -"in general or an OpenStack application in particular, this section teaches " -"you how to program with OpenStack components." -msgstr "" -"OpenStack'e aşina iseniz ama bir bulut uygulaması veya OpenStack uygulaması " -"oluşturmadıysanız, bu kısım OpenStack bileşenleriyle nasıl programlama " -"yapacağınızı öğretir." - -msgid "" -"If you check the load on the :code:`app-controller` API service instance, " -"you see that the instance is not doing well. On your single CPU flavor " -"instance, a load average greater than 1 means that the server is at capacity." -msgstr "" -":code:`app-controller` API servis sunucusundaki yükü kontrol ederseniz, " -"sunucunun pek iyi çalışmadığını görürsünüz. Tek işlemcili niteliğe sahip " -"sunucunuzda, 1'den büyük bir ortalama yük sunucunun kapasitesinde çalıştığı " -"anlamına gelir." - -msgid "" -"If you check the load on the worker, you can see that the instance is not " -"doing well. On the single CPU flavor instance, a load average greater than 1 " -"means that the server is at capacity." -msgstr "" -"İşçi üzerindeki yükü kontrol ederseniz, sunucunun pek iyi gitmediğini " -"görebilirsiniz. Tek CPU nitelikli sunucuda, 1'den büyük bir yük ortalaması " -"sunucunun kapasitesinde olduğu anlamına gelir." - -msgid "" -"If you deploy your application on a regular basis, you can resolve outages " -"and make security updates without manual intervention. If an outage occurs, " -"you can provision more resources in another region. If you must patch " -"security holes, you can provision additional compute nodes that are built " -"with the updated software. Then, you can terminate vulnerable nodes and " -"automatically fail-over traffic to the new instances." -msgstr "" -"Düzenli olarak uygulamanızı kuruyorsanız, elle araya girmeden kesintileri " -"çözebilir ve güvenlik güncellemelerini yapabilirsiniz. Bir kesinti olursa, " -"başka bir bölgeden daha fazla kaynak hazırlayabilirsiniz. Güvenlik yamaları " -"yapmanız gerekirse, güncel yazılıma sahip şekilde inşa edilmiş ek hesaplama " -"düğümleri hazırlayabilirsiniz. Ardından saldırıya açık düğümleri sonlandırır " -"ve trafiği yeni sunuculara otomatik olarak aktarırsınız." - -msgid "" -"If you do not have a working application, follow the steps in :doc:" -"`introduction` to create one." -msgstr "" -"Çalışan bir uygulamanız yoksa, bir tane oluşturmak için :doc:`introduction` " -"kısmındaki adımları takip edin." - -msgid "" -"If you do not know Maven then the `Maven home site `_ is a good place to learn more." -msgstr "" -"Maven bilmiyorsanız daha fazlasını öğrenmek için `Maven sitesi `_ iyi bir yerdir." - -msgid "" -"If you do not use floating IP addresses, substitute another IP address, as " -"appropriate." -msgstr "" -"Değişken IP adresleri kullanmazsanız, uygun şekilde başka bir IP adresiyle " -"değiştirin." - -msgid "" -"If you had a load balancer, you could distribute this load between the two " -"different API services. You have several options. The :doc:`networking` " -"section shows you one option." -msgstr "" -"Bir yük dengeleyiciniz vardıysa, bu yükü iki farklı API servisi arasında " -"dağıtabilirdiniz. Birçok seçeneğiniz vardır. :doc:`networking` kısmı " -"seçeneklerden birini gösterir." - -msgid "" -"If you have no free floating IPs that have been allocated for your project, " -"first select a network which offer allocation of floating IPs. In this " -"example we use network which is called :code:`public`." -msgstr "" -"Projeniz için ayrılmış hiç boş değişken IP'niz yoksa, önce değişken IP'lerin " -"ayrılmasını sunan bir ağ seçin. Bu örnekte :code:`public` olarak " -"adlandırılan ağı kullanıyoruz." - -msgid "" -"If you have no free floating IPs that have been previously allocated for " -"your project, first select a floating IP pool offered by your provider. In " -"this example, we have selected the first one and assume that it has " -"available IP addresses." -msgstr "" -"Önceden projenize ayrılmış boşta değişken IP'leriniz yoksa, önce " -"sağlayıcınız tarafından sunulan bir değişken IP havuzu seçin. Bu örnekte " -"ilkini seçtik ve kullanılabilir IP adresleri olduğunu varsaydık." - -msgid "" -"If you have no free floating IPs that have been previously allocated for " -"your project, then select a floating IP pool offered by your provider. In " -"this example, we have selected the first one and assume that it has " -"available IP addresses." -msgstr "" -"Önceden projenize ayrılmış boşta değişken IP'leriniz yoksa, önce " -"sağlayıcınız tarafından sunulan bir değişken IP havuzu seçin. Bu örnekte " -"ilkini seçtik ve kullanılabilir IP adresleri olduğunu varsaydık." - -msgid "If you list existing instances:" -msgstr "Mevcut sunucuları listelerseniz:" - -msgid "If you list the instances again, the instance disappears." -msgstr "Sunucuları tekrar listelerseniz, sunucu kaybolacaktır." - -msgid "" -"If you receive the :code:`libcloud.common.types.InvalidCredsError: 'Invalid " -"credentials with the provider'` exception when you run one of these API " -"calls, double-check your credentials." -msgstr "" -"Bu API çağrılarından birini çalıştırırken :code:`libcloud.common.types." -"InvalidCredsError: 'Sağlayıcıyla geçersiz kimlik bilgileri'` istisnasını " -"alırsanız, kimlik bilgilerinizi tekrar kontrol edin." - -msgid "" -"If you receive the exception :code:`openstack.exceptions.HttpException: " -"HttpException: 401 Client Error: Unauthorized,` while trying to run one of " -"the following API calls please double-check your credentials." -msgstr "" -"Aşağıdaki API çağrılarından birini çalıştırmaya çalışırken :code:`openstack." -"exceptions.HttpException: HttpException: 401 İstemci Hatası: " -"Yetkilendirilmemiş,` istisnasını alırsanız lütfen kimlik bilgilerinizi " -"tekrar kontrol edin." - -msgid "" -"If you see an IOError, you may need to change ``~/.ssh/`` to ``/home/" -"{USERNAME}/.ssh/``, using an absolute path." -msgstr "" -"Bir IOError görürseniz, ``~/.ssh/`` konumunu ``/home/{USERNAME}/.ssh/`` " -"şeklinde mutlak yolla değiştirmeniz gerekebilir." - -msgid "" -"If you think about how you traditionally make what you store durable, you " -"quickly conclude that keeping multiple copies of your objects on separate " -"systems is a good way strategy. However, keeping track of those multiple " -"copies is difficult, and building that into an app requires complicated " -"logic." -msgstr "" -"Geleneksel olarak kaydettiğiniz bir şeyi nasıl dayanılı yaptığınızı " -"düşünürseniz, nesnelerinizin çoklu kopyalarını farklı sistemlerde tutmanın " -"iyi bir strateji olduğu sonucuna varabilirsiniz. Ancak, bu çoklu kopyaları " -"takip etmek zordur, ve bunu bir uygulamada inşa etmek karmaşık bir mantık " -"gerektirir." - -msgid "" -"If you work with large objects, use the :code:`RegionScopedBlobStoreContext` " -"class family instead of the ones used so far." -msgstr "" -"Büyük nesnelerle çalışıyorsanız, şimdiye kadarkiler yerine :code:" -"`RegionScopedBlobStoreContext` sınıf ailesini kullanın." - -msgid "" -"If you work with large objects, use the :code:`ex_multipart_upload_object` " -"call instead of the simpler :code:`upload_object` call. The call splits the " -"large object into chunks and creates a manifest so that the chunks can be " -"recombined on download. Change the :code:`chunk_size` parameter, in bytes, " -"to a value that your cloud can accept." -msgstr "" -"Büyük nesnelerle çalışıyorsanız, daha basit olan :code:`upload_object` " -"çağrısı yerine :code:`ex_multipart_upload_object` çağrısını kullanın. Çağrı " -"büyük nesneyi parçalara böler ve bir bildiri oluşturarak indirme zamanında " -"parçaların tekrar birleştirilebilmesini sağlar. :code.`chunk_size` " -"parametresini bulutunuzun kabul edeceği bir değere bayt olarak ayarlayın." - -msgid "" -"If your provider does not support regions, try a blank string ('') for the " -"`region_name`." -msgstr "" -"Sağlayıcınız bölgeleri desteklemiyorsa, `region_name` için boş bir karakter " -"dizisi ('') deneyin." - -msgid "" -"In a new Terminal window, SSH into the 'api' API instance. Use the key pair " -"name that you passed in as a parameter." -msgstr "" -"Yeni bir Terminal penceresinde, 'api' API sunucusuna SSH çekin. Parametre " -"olarak verdiğiniz anahtar çifti ismini kullanın." - -msgid "" -"In addition to configuring backups, review your policies about what you back " -"up and how long to retain each backed up item." -msgstr "" -"Yapılandırma yedeklerine ek olarak, neleri yedeklediğinizle ve yedeklenen " -"her ögeyi ne kadar tutacağınızla ilgili ilkelerinizi gözden geçirin." - -msgid "" -"In addition to this kind of monitoring, you should consider availability " -"monitoring. Although your application might not care about a failed worker, " -"it should care about a failed database server." -msgstr "" -"Bu tür izlemeye ek olarak, kullanılırlık izlemesini de düşünmelisiniz. " -"Uygulamanız başarısız olan bir işçiyle ilgilenmiyor olsa bile, başarısız bir " -"veritabanı sunucusunu göz önüne almalıdır." - -msgid "" -"In cloud programming, it is very different. Rather than large, expensive " -"servers, you have virtual machines that are disposable; if something goes " -"wrong, you shut the server down and spin up a new one. There is still " -"operations staff, but rather than nursing individual servers back to health, " -"their job is to monitor the health of the overall system." -msgstr "" -"Bulut programlamada, çok daha farklıdır. Büyük, pahalı sunucular yerine, " -"atılabilir sanal sunucularınız vardır; bir şeyler ters giderse, sunucuyu " -"kapatır ve yeni bir tanesini açarsınız. Yine işletici çalışanlar olur, ama " -"tek tek sunucuları kurtarmaya çalışmak yerine, işleri genel sistem sağlığını " -"izlemektir." - -msgid "" -"In cloud programming, there is a well-known analogy known as \"cattle vs pets" -"\". If you have not heard it before, it goes like this:" -msgstr "" -"Bulut programlamada \"sığırlara karşı evcil hayvanlar\" olarak bilinen bir " -"benzeşim vardır. Daha önce duymadıysanız şu şekilde bir şey:" - -msgid "" -"In earlier sections, the Fractal application used an installation script " -"into which the metadata API passed parameters to bootstrap the cluster. " -"`Etcd `_ is \"a distributed, consistent key-" -"value store for shared configuration and service discovery\" that you can " -"use to store configurations. You can write updated versions of the Fractal " -"worker component to connect to Etcd or use `Confd `_ to poll for changes from Etcd and write changes to " -"a configuration file on the local file system, which the Fractal worker can " -"use for configuration." -msgstr "" -"Önceki kısımlarda, Fraktal uygulama metaveri API'sinin kümeyi önyüklemek " -"için parametreler geçirdiği bir kurulum betiği kullandı. `Etcd `_ yapılandırmaları saklayabileceğiniz \"paylaşımlı " -"yapılandırma ve servis keşfi için dağıtık, tutarlı anahtar-değer deposudur" -"\". Fraktal işçi bileşeninin güncel sürümlerini yazarak Etcd'ye bağlanmasını " -"veya `Confd `_ kullanarak " -"değişiklikleri Etcd'den çekmesini ve yerel dosya sistemindeki bir dosyaya " -"yazmasını sağlayabilirisiniz." - -msgid "" -"In openstacksdk parameter :code:`ex_userdata` is called :code:`user_data` " -"and parameter :code:`ex_keyname` is called :code:`key_name`." -msgstr "" -"Openstacksdk'da :code:`ex_userdata` parametresi :code:`user_data` olarak, :" -"code:`ex_keyname` ise :code:`key_name` olarak adlandırılır." - -msgid "" -"In previous chapters, all nodes that comprise the fractal application were " -"attached to the same network." -msgstr "" -"Önceki bölümlerde, fraktal uygulamayı oluşturan tüm düğümler aynı ağa " -"bağlıydı." - -msgid "" -"In previous sections, you used your SDK to programmatically interact with " -"OpenStack. In this section, you use the 'heat' command-line client to access " -"the Orchestration API directly through template files." -msgstr "" -"Önceki kısımlarda, programlı şekilde OpenStack ile etkileşmek için SDK'nızı " -"kullandınız. Bu kısımda Orkestrasyon API'sine doğrudan şablon dosyaları " -"aracılığıyla erişmek için 'heat' komut satırı istemcisini kullanırsınız." - -msgid "" -"In the Terminal window where you run ceilometer, run :code:" -"`ceilometer_sample_query` to see the samples." -msgstr "" -"Örnekleri görmek için, terminal penceresinde ceilometer'i çalıştırdığınız " -"yerde :code:`ceilometer_sample_query` çalıştırın." - -msgid "" -"In the following example, set :code:`pub_key_file` to the location of your " -"public SSH key file." -msgstr "" -"Aşağıdaki örnekte, :code:`pub_key_file`'yi açık SSH anahtarı dosyanızın " -"konumuna ayarlayın." - -msgid "In the outputs section of the stack, you can run these web API calls:" -msgstr "Yığının çıktılar kısmında, şu web API çağrılarını çalıştırabilirsiniz:" - -msgid "" -"In the previous steps, you split out several services and expanded capacity. " -"To see the new features of the Fractals application, SSH to one of the app " -"instances and create a few fractals." -msgstr "" -"Önceki adımlarda, çeşitli servisleri ayırdınız ve kapasiteyi genişlettiniz. " -"Fraktal uygulamasının yeni özelliklerini görmek için, uygulama " -"sunucularından birine SSH çekin ve yeni fraktallar oluşturun." - -msgid "" -"In theory, you could use a simple script to monitor the load on your workers " -"and API services and trigger the creation of instances, which you already " -"know how to do. Congratulations! You are ready to create scalable cloud " -"applications." -msgstr "" -"Teorik olarak, basit bir betik kullanarak işçileriniz ve API servisleriniz " -"üzerindeki yükü izleyerek sunucuların oluşturulmasını tetikleyebilirdiniz, " -"ki bunu yapmayı zaten biliyorsunuz. Tebrikler! Ölçeklenebilir bulut " -"uygulamaları oluşturmaya hazırsınız." - -msgid "" -"In this case, we are presenting a shell script as the `userdata `_. " -"When :code:`create_node` creates the instance, :code:`cloud-init` executes " -"the shell script in the :code:`userdata` variable." -msgstr "" -"Bu durumda, `userdata `_ olarak bir kabuk betiğini sunuyoruz. :code:" -"`create_node` sunucuyu oluşturduğunda, :code:`cloud-init` :code:`userdata` " -"değişkenindeki kabuk betiğini çalıştırır." - -msgid "" -"In this network layout, we assume that the OpenStack cloud in which you have " -"been building your application has a public network and tenant router that " -"was previously created by your cloud provider or by yourself, following the " -"instructions in the appendix." -msgstr "" -"Bu ağ düzeninde, uygulamanızı içinde inşa ettiğiniz OpenStack bulutunun " -"ekteki yönergeleri takip edecek şekilde bulut sağlayıcınız veya sizin " -"tarafınızdan daha önceden oluşturulan bir açık ağı ve kiracı yönlendiricisi " -"bulunduğunu varsayıyoruz." - -msgid "" -"In this template, the alarms use metadata that is attached to each worker " -"instance. The metadata is in the :code:`metering.stack=stack_id` format." -msgstr "" -"Bu şablonda, uyarılar her bir işçi sunucuya eklenmiş metaveriyi kullanır. " -"Metaveri :code:`metering.stack=stack_id` biçimindedir." - -msgid "" -"In this tutorial, we have downloaded the latest version of our application " -"from source and installed it on a standard image. Our magic installation " -"script also updates the standard image to have the latest dependencies that " -"you need to run the application." -msgstr "" -"Bu öğreticide uygulamamızın son sürümünü kaynaktan indirdik ve standart bir " -"imaj üzerine yükledik. Sihirli kurulum betiğimiz ayrıca standart imajı " -"uygulamanın çalışması için gerekli en son bağımlılıkları içerecek şekilde " -"günceller." - -msgid "" -"In this tutorial, you interact with your OpenStack cloud through the SDK " -"that you chose in \"Choose your OpenStack SDK.\" This guide assumes that you " -"know how to run code snippets in your language of choice." -msgstr "" -"Bu öğreticide, OpenStack bulutunuzla \"OpenStack SDK'nızı seçin\" kısmında " -"seçtiğiniz SDK aracılığıyla etkileşirsiniz. Bu kılavuz seçtiğiniz dilde kod " -"parçaları çalıştırmayı bildiğinizi varsayar." - -msgid "" -"In traditional data centers, network segments are dedicated to specific " -"types of network traffic." -msgstr "" -"Geleneksel veri merkezlerinde, ağ dilimleri belirli türde ağ trafiği için " -"adanmıştır." - -msgid "In your SSH session, confirm that no fractals were generated:" -msgstr "SSH oturumunuzda, fraktalların üretildiğini onaylayın:" - -msgid "" -"Initially, the focus is on scaling the workers because they consume the most " -"resources." -msgstr "" -"İlk olarak, en çok kaynağı tükettiklerinden ölçekleme odağı işçiler " -"üzerinedir." - -msgid "Install a service" -msgstr "Bir servis kur" - -msgid "" -"Install the 'heat' command-line client by following this guide: https://docs." -"openstack.org/cli-reference/common/" -"cli_install_openstack_command_line_clients.html#install-the-clients" -msgstr "" -"Şu kılavuzu kullanarak 'heat' komut satırı istemcisini kurun: https://docs." -"openstack.org/cli-reference/common/" -"cli_install_openstack_command_line_clients.html#install-the-clients" - -msgid "" -"Internet connectivity from your cloud instance is required to download the " -"application." -msgstr "" -"Uygulamayı indirmek için bulut sunucunuzdan internet bağlantısı gereklidir." - -msgid "Introduction to Floating IPs" -msgstr "Değişken IP'lere giriş" - -msgid "Introduction to cloud-init" -msgstr "Cloud-init'e giriş" - -msgid "Introduction to key pairs" -msgstr "Anahtar çiftlerine giriş" - -msgid "Introduction to security groups" -msgstr "Güvenlik gruplarına giriş" - -msgid "Introduction to tenant networking" -msgstr "Kiracı ağlara giriş" - -msgid "Introduction to the fractals application architecture" -msgstr "Fraktallar uygulama mimarisine giriş" - -msgid "" -"It is easy to split out services into multiple instances. We will create a " -"controller instance called :code:`app-controller`, which hosts the API, " -"database, and messaging services. We will also create a worker instance " -"called :code:`app-worker-1`, which just generates fractals." -msgstr "" -"Servisleri birden çok sunucuya ayırmak kolaydır. API, veritabanı ve ileti " -"servislerini sunan :code:`app-controller` isimli bir kontrol düğümü " -"oluşturacağız. Ayrıca yalnızca fraktalları üreten bir :code:`app-worker-1` " -"işçi sunucusu oluşturacağız." - -msgid "It is not possible to restore deleted objects. Be careful." -msgstr "Silinen nesneleri geri yükleme imkansızdır. Dikkatli olun." - -msgid "Java" -msgstr "Java" - -msgid "" -"Jclouds does not currently support OpenStack Orchestration. See this `bug " -"report `_." -msgstr "" -"Jclouds henüz OpenStack Orkestrasyon'u desteklemiyor. Şu `hata raporuna " -"`_ göz atın." - -msgid "" -"Just as you back up information on a non-cloud server, you must back up non-" -"reproducible information, such as information on a database server, file " -"server, or in application log files. Just because something is 'in the " -"cloud' does not mean that the underlying hardware or systems cannot fail." -msgstr "" -"Bulut dışı bir sunucuya bilgi yedeklerken, tekrar üretilemez bilgileri " -"yedeklemelisiniz, örneğin veritabanı sunucusundaki bilgi, dosya sunucusu, " -"veya uygulama kayıt dosyaları. Bir şeyin `bulutta` olması altta yatan " -"donanım veya sistemin arızalanamayacağı anlamına gelmez." - -msgid "Language" -msgstr "Dil" - -msgid "" -"Large file uploads that use the :code:`openstack-swift` provider are " -"supported in only jclouds V2, currently in beta. Also, the default chunk " -"size is 64 Mb. Consider changing this as homework." -msgstr "" -":code:`openstack-swift` sağlayıcısını kullanan büyük dosya yüklemeleri " -"yalnızca şu an beta olan jclouds V2'de desteklenir. Ayrıca öntanımlı parça " -"boyutu 64 Mb'dir. Bunu değiştirmek ev ödeviniz olsun." - -msgid "Large objects" -msgstr "Büyük nesneler" - -msgid "" -"Later on, you will use a Block Storage volume to provide persistent storage " -"for the database server for the Fractal application. But first, learn how to " -"create and attach a Block Storage device." -msgstr "" -"İlerde Fraktal uygulama için veritabanı sunucusu için kalıcı depolama " -"sağlamak için Blok Deoplama birimi kullanacaksınız. Ama önce bir Blok " -"Depolama aygıtı oluşturmayı ve eklemeyi öğrenin." - -msgid "Launch an instance" -msgstr "Sunucu Başlat" - -msgid "Launch the stack with auto-scaling workers:" -msgstr "Yığını otomatik ölçeklenen işçilerle başlatın:" - -msgid "" -"Leave your shell open to use it for another instance deployment in this " -"section." -msgstr "" -"Bu kısımda başka bir sunucu kurulumunda kullanmak için kabuğunuzu açık tutun." - -msgid "" -"Libcloud 0.16 and 0.17 are afflicted with a bug that means authentication to " -"a swift endpoint can fail with `a Python exception `_. If you encounter this, you can upgrade your " -"libcloud version, or apply a simple `2-line patch `_." -msgstr "" -"Libcloud 0.16 ve 0.17 bir swift uç noktasına kimlik doğrulamanın bir `Python " -"istisnasıyla `_ " -"sonlandığı bir hataya sahiptir. Bununla karşılaşırsanız, libcloud sürümünüzü " -"güncelleyin, veya basit `2 satırlık bir yamayı `_ uygulayın." - -msgid "Libcloud does not support the OpenStack Networking API." -msgstr "Libcloud OpenStack Ağ API'sini desteklemez." - -msgid "" -"Libcloud uses a different connector for Object Storage to all other " -"OpenStack services, so a conn object from previous sections will not work " -"here and we have to create a new one named :code:`swift`." -msgstr "" -"Libcloud Nesne Depolama iin tüm OpenStack servislerine farklı bağlantı " -"kullanır, yani önceki kısımlardan bir conn nesnesi burada çalışmayacaktır, :" -"code:`swift` isimli yeni bir tane oluşturmalıyız." - -msgid "" -"Like many cloud applications, the Fractals application has a `RESTful API " -"`_. You can " -"connect to it directly and generate fractals, or you can integrate it as a " -"component of a larger application. Any time a standard interface such as an " -"API is available, automated testing becomes much more feasible, increasing " -"software quality." -msgstr "" -"Birçok bulut uygulaması gibi, Fraktallar uygulaması da `RESTful API'ye " -"`_ sahiptir. " -"Doğrudan bağlanıp fraktallar oluşturabilirsiniz veya daha büyük bir " -"uygulamanın bileşeni olarak tümleştirebilirsiniz. API gibi standart bir " -"arayüz kullanılabilir olduğunda, otomatik olarak deneme çok daha kolaylaşır, " -"yazılım kalitesi artar." - -msgid "" -"List all available floating IPs for this project and select the first free " -"one. Allocate a new floating IP if none is available." -msgstr "" -"Bu proje için kullanılabilir tüm değişken IP'leri listeleyin ve boş olan " -"ilkini seçin. Kullanılabilir yoksa yeni bir değişken IP ayırın." - -msgid "" -"List objects in your :code:`fractals` container to see if the upload was " -"successful. Then, download the file to verify that the md5sum is the same:" -msgstr "" -":code:`fraktallar` kapsayıcınızdaki nesneleri listeleyerek yüklemenin " -"başarılı olduğunu onaylayın. Ardından md5sum değerinin aynı olduğundan emin " -"olmak için dosyayı indirin:" - -msgid "Load balancing" -msgstr "Yük dengeleme" - -msgid "Load the API: Create a lot of API service requests" -msgstr "API'ye yüklenin: Birçok API servis isteği oluşturun" - -msgid "" -"Load the worker: Create a lot of tasks to max out the CPU of existing worker " -"instances" -msgstr "" -"İşçiye yüklenin: Mevcut işçi sunucuların CPU kullanımını tavana taşımak için " -"bir sürü görev oluşturun" - -msgid "Log in to the server to run the following steps." -msgstr "Aşağıdaki adımları çalıştırmak için sunucuya giriş yapın." - -msgid "" -"Login to the worker instance, :code:`app-worker-1`, with SSH, using the " -"previous added SSH key pair \"demokey\". Start by getting the IP address of " -"the worker:" -msgstr "" -"Daha önce eklenen \"demokey\" SSH anahtar çiftini kullanarak SSH ile :code:" -"`app-worker-1` işçi sunucusuna giriş yapın. İşçinin IP adresini alarak " -"başlayın:" - -msgid "Login with SSH and use the Fractal app" -msgstr "SSH ile giriş yapın ve Fraktal uygulamasını kullanın" - -msgid "Look at which ports are available:" -msgstr "Hangi bağlantı noktalarının kullanılabilir olduklarına bakın:" - -msgid "" -"Make cloud-related architecture decisions such as turning functions into " -"micro-services and modularizing them." -msgstr "" -"Fonksiyonları mikro servislere döndürme ve modüler hale getirme gibi bulutla " -"ilgili mimari kararları alın." - -msgid "Make it durable" -msgstr "Dayanıklı hale getirin" - -msgid "Make it possible to add new resources to your application." -msgstr "Uygulamanıza yeni kaynaklar eklemeyi mümkün kılmalısınız." - -msgid "" -"Many of the network concepts that are discussed in this section are already " -"present in the diagram above. A tenant router provides routing and external " -"access for the worker nodes, and floating IP addresses are associated with " -"each node in the Fractal application cluster to facilitate external access." -msgstr "" -"Bu kısımda tartışılan birçok ağ kavramı yukarıdaki çizimde zaten mevcuttur. " -"Bir kiracı yönlendiricisi işçi düğümler için yönlendirme ve harici erişim " -"sağlar, ve değişken IP adresleri Fraktal uygulama kümesindeki her bir düğüm " -"ile ilişkilendirilerek harici erişimi gerçekleştirir." - -msgid "" -"Maven will download and install any dependencies required for compilation, " -"then execute the Java compiler. All files in the :code:`java` subdirectory " -"will be compiled." -msgstr "" -"Maven derleme için gerekli tüm bağımlılıkları indirir ve kurar, ardından " -"Java derleyicisini çalıştırır. :code:`java` alt dizinindeki tüm dosyalar " -"derleneceketir." - -msgid "" -"Maven will download and install any further dependencies required and then " -"run the chosen class." -msgstr "" -"Maven gerekli diğer bağımlılıkları da indirir ve kurar ardından seçilen " -"sınıfı çalıştırır." - -msgid "" -"Message queues are used to facilitate communication between the Fractal " -"application services. The Fractal application uses a `work queue `_ (or task queue) to " -"distribute tasks to the worker services." -msgstr "" -"İleti kuyrukları Fraktal uygulama servisleri arasındaki iletişimi " -"kolaylaştırmak için kullanılır. Fraktal uygulaması görevleri işçi servislere " -"dağıtmak için bir `iş kuyruğu `_ (veya görev kuyruğu) kullanır." - -msgid "" -"Message queues work in a way similar to a queue (or a line, for those of us " -"on the other side of the ocean) in a bank being served by multiple clerks. " -"The message queue in our application provides a feed of work requests that " -"can be taken one-at-a-time by worker services, whether there is a single " -"worker service or hundreds of them." -msgstr "" -"İleti kuyrukları birçok yazmanın çalıştığı bir banka kuyruğuyla (veya " -"okyanusun diğer tarafında olan bizler için sırasıyla) aynı şekilde çalışır. " -"Uygulamamızdaki ileti kuyruğu işçi servislerce her seferde bir tane " -"alınabilen iş isteği beslemesi sağlar, bir tane işçi olsa da yüzlerce işçi " -"olsa da bir şey değişmez." - -msgid "Modularity and micro-services" -msgstr "Modülerlik ve mikro servisler" - -msgid "Monitoring" -msgstr "İzleme" - -msgid "" -"Monitoring is essential for 'scalable' cloud applications. You must know how " -"many requests are coming in and the impact that these requests have on " -"various services. You must have enough information to determine whether to " -"start another worker or API service as you did in :doc:`/scaling_out`." -msgstr "" -"'Ölçeklenebilir' bulut uygulamaları için izleme esastır. Kaç tane isteğin " -"geldiğini ve bu isteklerin çeşitli servisler üstünde nasıl etki edeceğini " -"bilmek zorundasınız. :doc:`/scaling_out` kısmında yaptığınız gibi başka bir " -"işçi veya API servisi başlatıp başlatmamak için karar vermek için yeterli " -"bilgiye sahip olmalısınız." - -msgid "" -"Most cloud providers make a public network accessible to you. We will attach " -"a router to this public network to grant Internet access to our instances. " -"After also attaching this router to our internal networks, we will allocate " -"floating IPs from the public network for instances which need to be accessed " -"from the Internet." -msgstr "" -"Çoğu bulut sağlayıcı size erişebileceğiniz bir açık ağ yapar. Bu açık ağa " -"bir yönlendirici ekleyerek sunucularımıza internet erişimi sağlayacağız. Bu " -"yönlendiriciyi iç ağlarımıza da ekledikten sonra internet erişimine ihtiyaç " -"duyan sunucularımız için açık ağdan değişken IP'ler ayıracağız." - -msgid "" -"Most cloud providers provision all network objects that are required to boot " -"an instance. To determine whether these objects were created for you, access " -"the Network Topology section of the OpenStack dashboard." -msgstr "" -"Çoğu bulut sağlayıcı bir sunucunun önyüklenmesi için gerekli tüm ağ " -"nesnelerini hazırlar. Bu nesnelerin oluşturulup oluşturulmadığını belirlemek " -"için OpenStack kontrol panosundaki Ağ Topolojisi kısmına erişin." - -msgid "" -"Most instances require access to the Internet. The instances in your " -"Fractals app are no exception! Add routers to pass traffic between the " -"various networks that you use." -msgstr "" -"Çoğu sunucu internete erişim gerektirir. Fraktallar uygulamanızdaki " -"sunucular da buna dahildir! Kullandığınız çeşitli ağlar arasında trafik " -"geçişi için yönlendiriciler ekleyin." - -msgid "Multiple clouds" -msgstr "Çoklu bulutlar" - -msgid "Name" -msgstr "Ad" - -msgid "" -"Network access. By default, OpenStack filters all traffic. You must create a " -"security group and apply it to your instance. The security group allows HTTP " -"and SSH access. We will go into more detail in :doc:`/introduction`." -msgstr "" -"Ağ erişimi. Öntanımlı olarak, OpenStack tüm trafiği süzer. Bir güvenlik " -"grubu oluşturmalı ve bunu sunucunuza uygulamalısınız. Güvenlik grubu HTTP ve " -"SSH erişimine izin verir. :doc:`/introduction` da ayrıntıya gireceğiz." - -msgid "Networking" -msgstr "Ağ" - -msgid "Networking segmentation" -msgstr "Ağ dilimlendirme" - -msgid "Neutron LbaaS API" -msgstr "Neutron LbaaS API'si" - -msgid "Next steps" -msgstr "Sonraki adımlar" - -msgid "" -"Next, back up all existing fractals from the database to the swift " -"container. A simple loop takes care of that:" -msgstr "" -"Ardından, mevcut tüm fraktalları veritabanından swift kapsayıcısına " -"yedekleyin. Bunu yapmak için basit bir döngü yeterlidir:" - -msgid "Next, create a network and subnet for the API servers." -msgstr "Ardından, API sunucuları için bir ağ ve alt ağ oluşturun." - -msgid "Next, create a network and subnet for the workers." -msgstr "Ardından işçiler için bir ağ ve alt ağ oluşturun." - -msgid "" -"Next, create additional floating IPs. Specify the fixed IP addresses they " -"should point to and the ports that they should use:" -msgstr "" -"Ardından, ek değişken IP'ler oluşturun. Göstermeleri gereken sabit IP " -"adreslerini ve kullanmaları gereken bağlantı noktalarını belirtin:" - -msgid "Next, start a second instance, which will be the worker instance:" -msgstr "Ardından işçi sunucusu olacak ikinci bir sunucuyu başlatın:" - -msgid "Next, tell the script which flavor you want to use:" -msgstr "Ardından betiğe kullanmak istediğiniz niteliği söyleyin:" - -msgid "" -"Note that the worker instance is part of an :code:`OS::Heat::" -"AutoScalingGroup`." -msgstr "" -"İşçi sunucunun bir :code:`OS::Heat::AutoScalingGroup` parçası olduğuna " -"dikkat edin." - -msgid "" -"Note that this time, when you create a security group, you include a rule " -"that applies to only instances that are part of the worker group." -msgstr "" -"Bu sefer bir güvenlik grubu oluştururken yalnızca işçi grubunun parçası olan " -"sunuculara uygulanan bir kural dahil ettiğinize dikkat edin." - -msgid "" -"Note that we will be showing the commands in a more idiomatic Java way: as " -"methods on a class." -msgstr "" -"Komutları Java ifade tarzına uygun yolla gösterdiğimize dikkat edin; bir " -"sınıf üzerindeki yöntemler olarak." - -msgid "" -"Notice that you have added this instance to the worker_group, so it can " -"access the controller." -msgstr "" -"Kontrolcüye erişebilmesi için bu sunucuyu işçi grubuna eklediğinize dikkat " -"edin." - -msgid "" -"Now call the Fractal application's command line interface (:code:`faafo`) to " -"request a few new fractals. The following command requests a few fractals " -"with random parameters:" -msgstr "" -"Şimdi Fraktal uygulamasının komut satırı arayüzünü (:code:`faafo`) " -"kullanarak birkaç yeni fraktal isteyin. Aşağıdaki komut rasgele " -"parametrelerle birkaç fraktal ister:" - -msgid "" -"Now create a virtual IP that will be used to direct traffic between the " -"various members of the pool:" -msgstr "" -"Şimdi havuzun çeşitli üyeleri arasında trafik yönlendirmek için kullanılacak " -"bir sanal IP oluşturun:" - -msgid "" -"Now if you make a request for a new fractal, you connect to the controller " -"instance, :code:`app-controller`, but the work will actually be performed by " -"a separate worker instance - :code:`app-worker-1`." -msgstr "" -"Şimdi bir fraktal isteğinde bulunursanız, :code:`app-controller` kontrol " -"sunucusuna bağlanırsınız, ama asıl iş ayrı bir :code:`app-worker-1` işçi " -"sunucusunda yapılacaktır." - -msgid "" -"Now log into the controller instance, :code:`app-controller`, also with SSH, " -"using the previously added SSH key pair \"demokey\"." -msgstr "" -"Şimdi daha önceden eklenmiş \"demokey\" SSH anahtar çiftini kullanarak :code:" -"`app-controller` kontrol sunucusuna giriş yapın." - -msgid "Now prepare the empty block device." -msgstr "Şimdi boş blok aygıtı hazırlayın." - -msgid "" -"Now request an address from this network to be allocated to your project." -msgstr "Şimdi bu ağdan projenize ayırmak üzere bir adres isteyin." - -msgid "" -"Now request that an address from this pool be allocated to your project." -msgstr "Şimdi bu havuzdan bir adresin projenize ayrılmasını isteyin." - -msgid "" -"Now that you have an unused floating IP address allocated to your project, " -"attach it to an instance." -msgstr "" -"Artık projenize ayrılmış kullanılmayan bir değişken IP adresi olduğuna göre, " -"sunucuya ekleyebilirsiniz." - -msgid "" -"Now that you have got the networks created, go ahead and create two Floating " -"IPs, for web servers. Ensure that you replace 'public' with the name of the " -"public/external network offered by your cloud provider." -msgstr "" -"Artık ağları oluşturduğunuza göre, devam edin ve web sunucuları için iki " -"değişken IP oluşturun. 'public' kısmını bulut sağlayıcınız tarafından " -"sağlanan açık/harici ağ ismiyle değiştirdiğinizden emin olun." - -msgid "" -"Now that you have prepared the networking infrastructure, you can go ahead " -"and boot an instance on it. Ensure you use appropriate flavor and image " -"values for your cloud - see :doc:`getting_started` if you have not already." -msgstr "" -"Artık ağ altyapısını hazırladığınıza göre, devam edip üzerinde bir sunucu " -"önyükleyebilirsiniz. Bulutunuz için uygun nitelik ve imaj değerlerini " -"kullandığınızdan emin olun - hazır değilseniz bkz :doc:`getting_started`." - -msgid "" -"Now that you know how to create and delete instances, you can deploy the " -"sample application. The instance that you create for the application is " -"similar to the first instance that you created, but this time, we introduce " -"a few extra concepts." -msgstr "" -"Artık sunucuları nasıl oluşturup sileceğinizi bildiğinize göre, aynı " -"uygulamayı kurabilirsiniz. Uygulama için oluşturduğunuz sunucu " -"oluşturduğunuz ilk sunucuya benzerdir ama bu sefer bir kaç ek kavramı " -"devreye sokacağız." - -msgid "Now you can SSH into the instance:" -msgstr "Şimdi sunucuya SSH yapabilirsiniz:" - -msgid "Now, attach your router to the worker, API, and web server subnets." -msgstr "Şimdi yönlendiricinizi işçi, API ve web sunucu alt ağlarına ekleyin." - -msgid "" -"Now, create a health monitor that will ensure that members of the load " -"balancer pool are active and able to respond to requests. If a member in the " -"pool dies or is unresponsive, the member is removed from the pool so that " -"client requests are routed to another active member." -msgstr "" -"Şimdi yük dengeleme havuzu üyelerinin etkin ve isteklere cevap verebilir " -"durumda olduklarından emin olmak için sağlık izleyici oluşturun. Havuzun bir " -"üyesi ölürse veya cevap vermemeye başlarsa, üye havuzdan çıkarılarak istemci " -"isteklerinin etkin üyelere yönlendirilmesi sağlanır." - -msgid "Now, create a network and subnet for the web servers." -msgstr "Şimdi, web sunucuları için bir ağ ve alt ağ oluşturun." - -msgid "Now, look at the big picture." -msgstr "Şimdi büyük resme bakın." - -msgid "Now, no more objects are available in the :code:`fractals` container." -msgstr "Artık :code:`fraktallar` kapsayıcısında kullanılabilir nesne yoktur." - -msgid "" -"Now, wait until all the fractals are generated and the instances have idled " -"for some time." -msgstr "" -"Şimdi tüm fraktalların üretilmesini ve sunucuların bir süre boşta kalmasını " -"bekleyin." - -msgid "Now, you can boot and configure the instance." -msgstr "Artık sunucuyu önyükleyip yapılandırabilirsiniz." - -msgid "Now, you can launch the instance." -msgstr "Şimdi sunucuyu başlatabilirsiniz." - -msgid "Obtain the following information from your cloud provider:" -msgstr "Aşağıdaki bilgiyi bulut sağlayıcınızdan alın:" - -msgid "" -"Of course there is also a web interface which offers a more human friendly " -"way of accessing the API to view the created fractal images, and a simple " -"command line interface." -msgstr "" -"Tabi oluşturulan fraktal imajları görüntülemek için API'ye erişmek için daha " -"insan canlısı bir web arayüzü de bulunur, bir de basit komut satırı arayüzü " -"vardır." - -msgid "" -"Of course, creating a monitoring system for a single application might not " -"make sense. To learn how to use the OpenStack Orchestration monitoring and " -"auto-scaling capabilities to automate these steps, see :doc:`orchestration`." -msgstr "" -"Tabi ki tek bir uygulama için izleme sistemi oluşturmak mantıklı " -"gelmeyebilir. OpenStack Orkestrasyon izlemeyi ve bu adımları " -"otomatikleştirmek için otomatik ölçeklendirmeyi nasıl kullanacağınızı " -"öğrenmek için, bkz :doc:`orchestration`." - -msgid "" -"Of course, having access to additional resources is only part of the game " -"plan; while you can manually add or delete resources, you get more value and " -"more responsiveness if the application automatically requests additional " -"resources when it needs them." -msgstr "" -"Tabi ki ek kaynaklara erişime sahip olmak oyun planının yalnızca parçasıdır; " -"elle kaynak ekleyip silebilseniz de, uygulama otomatik olarak ihtiyaç " -"duyduğunda ek kaynaklar isterse bu daha değerlidir ve yanıt vermeyi artırır." - -msgid "" -"Once you have configured permissions, you must know where to access the " -"application." -msgstr "" -"İzinleri yapılandırdıktan sonra, uygulamaya nerden erişeceğinizi " -"bilmelisiniz." - -msgid "Once you have created a rule or group, you can also delete it:" -msgstr "Bir kural veya grup oluşturduktan sonra, silebilirsiniz de:" - -msgid "" -"Once you have logged in, check to see whether the worker service process is " -"running as expected. You can find the logs of the worker service in the " -"directory :code:`/var/log/supervisor/`." -msgstr "" -"Giriş yaptıktan sonra işçi servis sürecinin beklendiği şekilde çalışıp " -"çalışmadığını kontrol edin. İşçi servisi kayıtlarını :code:`/var/log/" -"supervisor/` dizini altında bulabilirsiniz." - -msgid "" -"One of the latest trends in scalable cloud application deployment is " -"`continuous integration `_ and `continuous deployment `_ (CI/CD)." -msgstr "" -"Ölçeklenebilir bulut uygulama kurulumlarında son eğilim `sürekli tümleştirme " -"`_ ve `sürekli kurulum " -"`_ (CI/CD)." - -msgid "" -"Open :code:`top` to monitor the CPU usage of the :code:`faafo-worker` " -"process." -msgstr "" -":code:`top` uygulamasını açıp :code:`faafo-worker` sürecinin CPU kullanımını " -"izleyin." - -msgid "" -"OpenStack Object Storage automatically replicates each object at least twice " -"before returning 'write success' to your API call. A good strategy is to " -"keep three copies of objects, by default, at all times, replicating them " -"across the system in case of hardware failure, maintenance, network outage, " -"or another kind of breakage. This strategy is very convenient for app " -"creation. You can just dump objects into object storage and not worry about " -"the additional work that it takes to keep them safe." -msgstr "" -"OpenStack Nesne Depolama API çağrınıza 'yazma başarılı' döndürmeden önce her " -"nesneyi otomatik olarak en az iki kere yedekler. Donanım arızası, bakım, ağ " -"kesintisi veya başka bir şeylerin kırılması durumuna karşı sistemde tüm " -"nesnelerin öntanımlı olarak her zaman üç kopyasını tutmak iyi bir " -"stratejidir. Bu strateji uygulama oluşturmada çok kolaylık sağlar. Nesneleri " -"direk nesne depolamaya atar ve güvenli tutmak için gerekli olan ek iş yükünü " -"düşünmezsiniz." - -msgid "OpenStack SDK" -msgstr "OpenStack SDK" - -msgid "OpenStack SDK for Microsoft .NET" -msgstr "Microsoft .NET için OpenStack SDK" - -msgid "OpenStack SDKs" -msgstr "OpenStack SDK'ları" - -msgid "" -"OpenStack provides a couple of tools that make it easy to back up data. If " -"your provider runs OpenStack Object Storage, you can use its API calls and " -"CLI tools to work with archive files." -msgstr "" -"OpenStack veri yedeklemeyi kolaylaştıran bir takım araç sağlar. Sağlayıcınız " -"OpenStack Nesne Depolama çalıştırıyorsa, API çağrılarını ve CLI araçlarını " -"kullanarak arşiv dosyalarıyla çalışabilirsiniz." - -msgid "" -"OpenStack supports 'regions', which are geographically-separated " -"installations that are connected to a single service catalog. This section " -"explains how to expand the Fractal application to use multiple regions for " -"high availability." -msgstr "" -"OpenStack tek bir servis kataloğuna bağlı olana coğrafik olarak ayrılmış " -"kurulumlar olan 'bölgeler'i destekler. Bu kısım yüksek kullanılırlık için " -"Fraktal uygulamasını nasıl birden fazla bölgeye genişleterek kullanacağınızı " -"anlatır." - -msgid "Or, try one of these tutorial steps:" -msgstr "Veya şu öğretici adımlarından birini deneyin:" - -msgid "Orchestration" -msgstr "Orkestrasyon" - -msgid "" -"Other features, such as creating volume snapshots, are useful for backups:" -msgstr "" -"Birim anlık görüntüleri almak gibi diğer özellikler yedekler için faydalıdır:" - -msgid "" -"Other versions of this guide show you how to use the other SDKs and " -"languages to complete these tasks. If you are a developer for another " -"toolkit that you would like this guide to include, feel free to submit code " -"snippets. For more information, contact `OpenStack Documentation team " -"`_ members." -msgstr "" -"Bu kılavuzun diğer sürümleri diğer SDK'ları ve dilleri kullanarak bu " -"görevleri nasıl gerçekleştireceğinizi gösterir. Bu kılavuzda dahil " -"edilmesini istediğiniz başka bir aracın geliştiricisi iseniz kod parçaları " -"göndermeye çekinmeyin. Daha fazla bilgi için, `OpenStack Belgelendirme " -"takımı `_ üyeleriyle iletişime " -"geçin." - -msgid "" -"Otherwise, continue reading to learn how to work with, and move the Fractal " -"application database server to use, block storage." -msgstr "" -"Aksi halde, Fraktal uygulama veritabanı sunucusunu blok depolama kullanacak " -"şekilde nasıl taşıyacağınızı ve nasıl çalışacağınızı öğrenmek için okumaya " -"devam edin." - -msgid "" -"Our code samples use `Java 8 `_." -msgstr "" -"Kod örneklerimiz `Java 8 `_ kullanır." - -msgid "PHP" -msgstr "PHP" - -msgid "" -"PHP-OpenCloud supports the OpenStack Networking API, but this section has " -"not been completed." -msgstr "" -"PHP-OpenCloud OpenStack Ağ API'sini destekler ama bu kısım henüz " -"tamamlanmadı." - -msgid "" -"PHP-opencloud supports OpenStack Orchestration :D:D:D but this section is " -"not written yet." -msgstr "" -"PHP-opencloud OpenStack Orkestrasyon'u destekliyor :D:D:D ama bu kısım henüz " -"yazılmadı." - -msgid "Parameter" -msgstr "Parametre" - -msgid "Phoenix servers" -msgstr "Phoenix sunucuları" - -msgid "" -"Pkgcloud supports OpenStack Orchestration :D:D:D but this section is `not " -"written yet `_" -msgstr "" -"Pkgcloud OpenStack Orkestrasyon'u destekliyor :D:D:D ama bu kısım `henüz " -"yazılmadı `_" - -msgid "" -"Pkgcloud supports the OpenStack Networking API, but this section has not " -"been completed." -msgstr "" -"Pkgcloud OpenStack Ağ API'sini destekler ama bu kısım henüz tamamlanmadı." - -msgid "" -"Place the above pom.xml into the root directory of your project. Then create " -"the nested subdirectory tree :code:`src` -> :code:`main` -> :code:`java`. " -"Place the Java code samples that you copy from this book into the folder " -"named \":code:`java`\"." -msgstr "" -"Yukarıdaki pom.xml dosyasını projenizin kök dizinine yerleştirin. Ardından :" -"code:`src` -> :code:`main` -> :code:`java` iç içe dizinlerini oluşturun. Bu " -"kitaptan kopyaladığınız Java kod örneklerini \":code:`java`\" isimli dizine " -"koyun." - -msgid "Place the images in the :code:`fractals` container:" -msgstr "İmajları :code:`fraktallar` kapsayıcısına koyun:" - -msgid "" -"Previously, you manually created the database, which is useful for a single " -"database that you rarely update. However, the OpenStack :code:`trove` " -"component provides Database as a Service (DBaaS)." -msgstr "" -"Daha önce, veritabanını elle oluşturdunuz, bu nadiren güncellenen tek " -"veritabanları için kullanışlıdır. Ancak OpenStack :code:`trove` bileşeni " -"Servis olarak Veritabanı (DBaaS) sağlar." - -msgid "" -"Prior to this section, the network layout for the Fractal application would " -"be similar to the following diagram:" -msgstr "" -"Bu kısım öncesinde, Fraktal uygulama için ağ düzeni şu çizime benzer olurdu:" - -msgid "Programmatic interfaces (APIs)" -msgstr "Programlama arayüzleri (API'ler)" - -msgid "Python" -msgstr "Python" - -msgid "Regions and geographic diversity" -msgstr "Bölgeler ve coğrafi çeşitlilik" - -msgid "Remove the existing app" -msgstr "Mevcut uygulamayı kaldırın" - -msgid "" -"Removing the egress rule created by OpenStack will cause your instance " -"networking to break." -msgstr "" -"OpenStack tarafından oluşturulan Egress kuralı kaldırmak sunucu ağınızın " -"bozulmasına yol açar." - -msgid "" -"Replace :code:`IP_API_1` and :code:`IP_API_2` with the corresponding " -"floating IPs. Replace FRACTAL_UUID with the UUID of an existing fractal." -msgstr "" -":code:`IP_API_1` ve :code:`IP_API_2` değerlerini ilişkili değişken IP'lerle " -"değiştirin. FRACTAL_UUID anahtarını mevcut bir fraktalın UUID değeriyle " -"değiştirin." - -msgid "Replace :code:`IP_API_1` with the IP address of the API instance." -msgstr ":code:`IP_API_1` anahtarını API sunucusunun IP adresiyle değiştirin." - -msgid "" -"Replace :code:`IP_API_1` with the IP address of the first API instance and " -"USERNAME with the appropriate user name." -msgstr "" -":code:`IP_API_1` anahtarını ilk API sunucunun IP adresiyle ve USERNAME " -"anahtarını uygun kullanıcı adıyla değiştirin." - -msgid "" -"Replace :code:`IP_CONTROLLER` with the IP address of the controller instance " -"and USERNAME to the appropriate user name." -msgstr "" -":code:`IP_CONTROLLER` anahtarını kontrol sunucusunun adresiyle ve USERNAME " -"değerini uygun kullanıcı adıyla değiştirin." - -msgid "" -"Replace :code:`IP_CONTROLLER` with the IP address of the controller instance " -"and USERNAME with the appropriate user name." -msgstr "" -":code:`IP_CONTROLLER` anahtarını kontrol sunucusunun IP adresiyle ve " -"USERNAME anahtarını uygun kullanıcı adıyla değiştirin." - -msgid "" -"Replace :code:`IP_CONTROLLER` with the IP address of the controller instance." -msgstr "" -":code:`IP_CONTROLLER` anahtarını kontrol sunucusunun IP adresiyle değiştirin." - -msgid "" -"Replace :code:`IP_DATABASE` with the IP address of the database instance and " -"USERNAME to the appropriate user name." -msgstr "" -":code:`IP_DATABASE` anahtarını veritabanı sunucusunun IP adresiyle ve " -"USERNAME değerini uygun kullanıcı adıyla değiştirin." - -msgid "" -"Replace :code:`IP_WORKER_1` with the IP address of the worker instance and " -"USERNAME to the appropriate user name." -msgstr "" -":code:`IP_WORKER_1` anahtarını işçi sunucunun IP adresi ile ve USERNAME " -"anahtarını uygun kullanıcı adı ile değiştirin." - -msgid "" -"Replace :code:`IP_WORKER` with the IP address of the worker instance and " -"USERNAME with the appropriate user name." -msgstr "" -":code:`IP_WORKER` anahtarını işçi sunucunun IP adresiyle ve USERNAME " -"anahtarını uygun kullanıcı adıyla değiştirin." - -msgid "Ruby" -msgstr "Ruby" - -msgid "" -"Run the :code:`ceilometer_statistics_query`: command to see the derived " -"statistics." -msgstr "" -":code:`ceilometer_statistics_query`: komutunu çalıştırarak gelen " -"istatistiklere göz atın." - -msgid "" -"Run the :code:`nova list` command to confirm that the :code:`OS::Heat::" -"AutoScalingGroup` has created more instances:" -msgstr "" -":code:`nova list` komutunu çalıştırarak :code:`OS::Heat::" -"AutoScalingGroup`'un daha fazla sunucu oluşturduğunuz onaylayın:" - -msgid "" -"Run the :code:`nova list` command to confirm that the :code:`OS::Heat::" -"AutoScalingGroup` removed the unneeded instances:" -msgstr "" -":code:`nova list` komutunu çalıştırarak :code:`OS::Heat::" -"AutoScalingGroup`'un gereksiz sunucuları kaldırdığını onaylayın:" - -msgid "" -"Run the :code:`nova list` command. This template created three instances:" -msgstr ":code:`nova list` komutunu çalıştırın. Bu şablon üç sunucu oluşturdu:" - -msgid "Run the script to start the deployment." -msgstr "Kurulumu başlatmak için betiği çalıştırın." - -msgid "" -"SDKs do not generally support the service yet, but you can use the 'trove' " -"command-line client to work with it instead." -msgstr "" -"SDK'lar henüz servisi genel olarak desteklemez, ama 'trove' komut satırı " -"istemcisini kullanarak çalışabilirsiniz." - -msgid "Scalability" -msgstr "Ölçeklenebilirlik" - -msgid "Scale available resources up and down." -msgstr "Uygun kaynakları yukarı aşağı ölçekleyin." - -msgid "Scale the API service" -msgstr "API servisini ölçekleyin" - -msgid "Scale the workers" -msgstr "İşçileri ölçekleyin" - -msgid "Scaling out" -msgstr "Dışa ölçekleme" - -msgid "Security" -msgstr "Güvenlik" - -msgid "" -"Security groups are sets of network access rules that are applied to an " -"instance's networking. By default, only egress (outbound) traffic is " -"allowed. You must explicitly enable ingress (inbound) network access by " -"creating a security group rule." -msgstr "" -"Güvenlik grupları bir sunucunun ağına uygulanan ağ erişim kuralları " -"kümesidir. Öntanımlı olarak egress (dışarı yönde) trafiğe izin verilir. Bir " -"güvenlik grubu kuralı oluşturarak özellikle ingress (içe doğru) ağ erişimine " -"izin vermeniz gerekir." - -msgid "" -"Security is important when it comes to your instances; you can not have just " -"anyone accessing them. To enable logging into an instance, you must provide " -"the public key of an SSH key pair during instance creation. In section one, " -"you created and uploaded a key pair to OpenStack, and cloud-init installed " -"it for the user account." -msgstr "" -"Konu sunucularınız olduğunda güvenlik önemlidir; herhangi birinin " -"erişebilmesini istemezsiniz. Sunucuya girişi etkinleştirmek için, sunucu " -"oluşturma sırasında bir SSH anahtar çiftinin açık anahtarını sağlamalısınız. " -"Birinci kısımda OpenStack'e bir anahtar oluşturup yüklediniz, ve cloud-init " -"kullanıcı hesabı için bunu yükledi." - -msgid "See the state of the alarms set up by the template:" -msgstr "Şablon tarafından ayarlanan uyarı durumlarına göz atın:" - -msgid "" -"Set the image and size variables to appropriate values for your cloud. We " -"will use these variables in later sections." -msgstr "" -"İmaj ve boyut değişkenlerini bulutunuz için uygun değerlere ayarlayın. Bu " -"değişkenleri ilerleyen kısımlarda kullanacağız." - -msgid "Shade" -msgstr "Shade" - -msgid "" -"Shade's create_object function has a \"use_slo\" parameter (that defaults to " -"true) which will break your object into smaller objects for upload and " -"rejoin them if needed." -msgstr "" -"Shade'in create_object fonksiyonu nesnenizi yüklerken ve gerektiğinde tekrar " -"birleştirirken kullanılmak üzere küçük parçalara bölen (öntanımlı değeri " -"doğru olan) bir \"use_slo\" parametresine sahiptir." - -msgid "" -"Similar to the UNIX programming model, an object, such as a document or an " -"image, is a \"bag of bytes\" that contains data. You use containers to group " -"objects. You can place many objects inside a container, and your account can " -"have many containers." -msgstr "" -"UNIX programlama modeline benzer şekilde, bir nesne, örneğin bir belge veya " -"imaj, veri içeren bir \"baytlar çantasıdır\". Kapsayıcıları kullanarak " -"nesneleri gruplarsınız. Bir kapsayıcıya birçok nesne koyabilirsiniz, ve " -"hesabınız birçok kapsayıcıya sahip olabilir." - -msgid "" -"So what exactly was that request doing at the end of the previous section? " -"Let us look at it again. In this subsection, we are just explaining what you " -"have already done in the previous section; you do not need to run these " -"commands again." -msgstr "" -"Öyleyes önceki kısmın sonundaki istek tam olarak ne yapıyordu? Tekrar bir " -"bakalım. Bu alt kısımda önceki kısımda zaten yaptığınız şeyleri " -"açıklayacağız; bu komutları tekrar çalıştırmanıza gerek yok." - -msgid "" -"So, for example, the file named :code:`GettingStarted.java` from the end of " -"this chapter would be located as follows:" -msgstr "" -"Örneğin bu bölümün sonundaki :code:`GettingStarted.java` dosyasını şu " -"şekilde konulmalı:" - -msgid "Specify a network during instance build" -msgstr "Sunucu inşası sırasında bir ağ belirtin" - -msgid "" -"Specify an external gateway for your router to tell OpenStack which network " -"to use for Internet access." -msgstr "" -"Yönlendiriciniz için bir harici geçit belirterek OpenStack'e internet " -"erişimi için hangi ağı kullanacağını söyleyin." - -msgid "Specify the flavor ID that you would like to use." -msgstr "Kullanmak istediğiniz nitelik kimliğini belirtin." - -msgid "" -"Spend some time playing with the stack and the Fractal app to see how it " -"works." -msgstr "" -"Yığınla ve Fraktal uygulamasıyla oynayarak biraz daha zaman geçirin ve nasıl " -"çalıştığını görün." - -msgid "Split the database and message queue" -msgstr "Veritabanı ve ileti kuyruğunu ayırın" - -msgid "Splitting services across multiple instances" -msgstr "Servisleri birden çok sunucuya ayırmak" - -msgid "" -"Start by creating a security group for the all-in-one instance and adding " -"the appropriate rules, such as HTTP (TCP port 80) and SSH (TCP port 22):" -msgstr "" -"Herşeyi içeren sunucunuz için bir güvenlik grubu oluşturarak ve uygun " -"kuralları ekleyerek, örneğin HTTP (TCP bağlantı noktası 80) ve SSH (TCP " -"bağlantı noktası 22) başlayın:" - -msgid "Start by looking at what is already in place." -msgstr "Zaten yerinde olan şeylere bakarak başlayın." - -msgid "" -"Stop the running MySQL database service and move the database files from :" -"file:`/var/lib/mysql` to the new volume, which is temporarily mounted at :" -"file:`/mnt/database`." -msgstr "" -"Çalışan MySQL veritabanı servisini durdurun ve veritabanı dosyalarını :file:" -"`/var/lib/mysql` konumundan geçici olarak :file:`/mnt/database` konumuna " -"bağlanmış olan yeni birime taşıyın." - -msgid "" -"Swift metadata keys are prepended with \"x-object-meta-\" so when you get " -"the object with get_object(), in order to get the value of the metadata your " -"key will be \"x-object-meta-foo\"." -msgstr "" -"Swift metaveri anahtarlarının önüne bir \"x-object-meta-\" değeri gelir " -"böylece get_object() ile nesneyi aldığınızda metaveri değerini alabilmeniz " -"için anahtar \"x-object-meta-foo\" olur." - -msgid "" -"Sync the file systems and mount the block device that contains the database " -"files to :file:`/var/lib/mysql`." -msgstr "" -"Dosya sistemlerini eşzamanlayın ve veritabanı dosyalarını içeren blok " -"aygıtı :file:`/var/lib/mysql` konumuna bağlayın." - -msgid "" -"That brings us to where we ended up at the end of :doc:`/getting_started`. " -"But where do we go from here?" -msgstr "" -"Bu da bizi :doc:`/getting_started` kısmında kaldığımız noktaya getirir. Peki " -"burdan nereye gideceğiz?" - -msgid "" -"That example is simplistic, of course, but the flexibility of the resource " -"object enables the creation of templates that contain all the required cloud " -"infrastructure to run an application, such as load balancers, block storage " -"volumes, compute instances, networking topology, and security policies." -msgstr "" -"Bu örnek tabi ki basittir, ama kaynak nesnesinin esnekliği yük " -"dengeleyiciler, blok depolama birimleri, hesaplama sunucuları, ağ " -"topolojileri ve güvenlik ilkeleri gibi bir uygulamayı çalıştırmak için " -"gerekli tüm bulut altyapısının oluşturulmasını sağlar." - -msgid "" -"That, as it happens, is the new reality of programming. Applications and " -"systems used to be created on large, expensive servers, cared for by " -"operations staff dedicated to keeping them healthy. If something went wrong " -"with one of those servers, the staff's job was to do whatever it took to " -"make it right again and save the server and the application." -msgstr "" -"Bu da programlamanın yeni gerçekliği haline geldi diyebiliriz. Uygulamalar " -"ve sistemler büyük pahalı sunucular üzerinde, sağlıklarını izlemek için " -"adanmış işletici çalışanlarca bakılacak şekilde oluşturulurdu. Bu " -"sunuculardan birine bir şey olursa, çalışanların işi uygulamayı ve sunucuyu " -"kurtarmak için ellerinden geleni yapmaktı." - -msgid "" -"The :code:`OS::Heat::AutoScalingGroup` removes instances in creation order. " -"So the worker instance that was created first is the first instance to be " -"removed." -msgstr "" -":code:`OS::Heat::AutoScalingGroup` sunucuları oluşturulma sırasına göre " -"kaldırır. Yani ilk önce oluşturulan işçi sunucu kaldırılacak ilk sunucudur." - -msgid "" -"The :doc:`/introduction` section describes how to build in a modular " -"fashion, create an API, and other aspects of the application architecture. " -"Now you will see why those strategies are so important. By creating a " -"modular application with decoupled services, you can identify components " -"that cause application performance bottlenecks and scale them out. Just as " -"importantly, you can also remove resources when they are no longer " -"necessary. It is very difficult to overstate the cost savings that this " -"feature can bring, as compared to traditional infrastructure." -msgstr "" -":doc:`/introduction` kısmı modüler şekilde nasıl inşa edileceğini, bir API " -"oluşturulacağını ve uygulama mimarisinin diğer yönlerini tanımlar. Şimdi bu " -"stratejilerin neden bu kadar önemli olduğunu göreceksiniz. Birbirinden " -"bağımsız servislerle modüler uygulama oluşturarak uygulama başarım " -"darboğazlarına sebep olan bileşenleri tanımlayabilir ve bunları " -"ölçekleyebilirsiniz. Aynı önem seviyesinde, artık ihtiyaç duyulmadığında " -"kaynakları kaldırabilirsiniz. Bu özelliğin geleneksel altyapıya göre masrafı " -"ne kadar azaltacağını abartmak mümkün değildir." - -msgid "" -"The CPU utilization across workers increases as workers start to create the " -"fractals." -msgstr "" -"İşçi sunucular arasındaki CPU kullanımı işçiler yeni fraktallar oluşturmaya " -"başladıkça artacaktır." - -msgid "" -"The Fractals app currently uses the local file system on the instance to " -"store the images that it generates. For a number of reasons, this approach " -"is not scalable or durable." -msgstr "" -"Fraktal uygulaması şu an ürettiği imajları depolamak için yerel dosya " -"sistemini kullanır. Birden fazla sebepten, bu yaklaşım ne ölçeklenebilirdir " -"ne de dayanıklı." - -msgid "" -"The Fractals application was designed with the principles of the previous " -"subsection in mind. You will note that in :doc:`getting_started`, we " -"deployed the application in an all-in-one style, on a single virtual " -"machine. This is not a good practice, but because the application uses micro-" -"services to decouple logical application functions, we can change this " -"easily." -msgstr "" -"Fraktallar uygulaması önceki alt kısım göz önüne alınarak tasarlanmıştır. " -"Bunu :doc:`getting_started` kısmında değerlendireceğiz, uygulamayı hepsi bir " -"arada biçiminde kurduk, tek bir sanal makine üzerine. Bu iyi bir yaklaşım " -"değildir, fakat uygumala mantıksal uygulama fonksiyonlarını ayırmak için " -"mikro servisleri kullandığından, bunu kolaylıkla değiştirebiliriz." - -msgid "The Object Storage API is organized around objects and containers." -msgstr "" -"Nesne Depolama API'si nesneler ve kapsayıcılar etrafında düzenlenmiştir." - -msgid "" -"The Object Storage service manages many of the tasks normally managed by the " -"application owner. The Object Storage service provides a scalable and " -"durable API that you can use for the fractals app, eliminating the need to " -"be aware of the low level details of how objects are stored and replicated, " -"and how to grow the storage pool. Object Storage handles replication for " -"you. It stores multiple copies of each object. You can use the Object " -"Storage API to return an object, on demand." -msgstr "" -"Nesne Depolama servisi normalde uygulama sahibi tarafından yönetilen birçok " -"görevi yönetir. Nesne Depolama servisi fraktal uygulaması için " -"kullanabileceğiniz ölçeklenebilir ve dayanıklı bir API sunar, nesnelerin " -"nasıl depolandığı ya da yedeklendiği, depolama havuzunun nasıl büyütüleceği " -"gibi düşük seviye ayrıntıları bilmeniz gerekliliğini ortadan kaldırır. Nesne " -"Depolama sizin için yedeklemeyi halleder. Her nesnenin birden fazla " -"kopyasını deoplar. İstediğiniz anda Nesne Depolama API'sini kullanarak bir " -"nesne döndürebilirsiniz." - -msgid "" -"The OpenStack Networking API provides support for creating loadbalancers, " -"which can be used to scale the Fractal app web service. In the following " -"example, we create two compute instances via the Compute API, then " -"instantiate a load balancer that will use a virtual IP (VIP) for accessing " -"the web service offered by the two compute nodes. The end result will be the " -"following network topology:" -msgstr "" -"OpenStack Ağ API'si Fraktal uygulama web servisini ölçeklemekte " -"kullanılabilecek yük dengeleyiciler oluşturmayı destekler. Aşağıdaki " -"örnekte, Hesaplama API'si ile iki hesaplama sunucusu oluştururuz, ardından " -"iki hesaplama sunucusu tarafından verilen web servisine erişmek için bir " -"sanal IP (VIP) kullanacak yük dengeleyiciyi ilklendiririz. Sonuçta şu ağ " -"topolojisi elde edilir:" - -msgid "" -"The OpenStack Orchestration API uses the stacks, resources, and templates " -"constructs." -msgstr "" -"OpenStack Orkestrasyon API'si yığınları, kaynakları ve şablon yapılarını " -"kullanır." - -msgid "The OpenStack SDK does not currently support OpenStack Orchestration." -msgstr "OpenStack SDK henüz OpenStack Orkestrasyon'u desteklemiyor." - -msgid "" -"The Orchestration service is not deployed by default in every cloud. If " -"these commands do not work, it means the Orchestration API is not available; " -"ask your support team for assistance." -msgstr "" -"Orkestrasyon servisi her bulutta öntanımlı olarak kurulmaz. Bu komutlar " -"çalışmazsa Orkestrasyon API'si kullanılabilir değil demektir; destek " -"ekibinizden yardım isteyebilirsiniz." - -msgid "" -"The Orchestration service provides a template-based way to describe a cloud " -"application, then coordinates running the needed OpenStack API calls to run " -"cloud applications. The templates enable you to create most OpenStack " -"resource types, such as instances, networking information, volumes, security " -"groups, and even users. It also provides more advanced functionality, such " -"as instance high availability, instance auto-scaling, and nested stacks." -msgstr "" -"Orkestrasyon servisi bir bulut uygulamasını tanımlamak için şablon tabanlı " -"bir yol sağlar, ardından bulut uygulamalarını çalıştırmak için ihtiyaç " -"duyulan OpenStack API çağrılarının çalıştırılmasını düzenler. Şablonlar " -"sunucular, ağ bilgisi, birimler, güvenlik grupları hatta kullanıcılar gibi " -"çoğu OpenStack kaynak türlerini oluşturmanızı sağlarlar. Ayrıca sunucu " -"yüksek kullanılırlığı, sunucu otomatik ölçekleme, iç içe yığınlar gibi daha " -"gelişmiş işlevselliği de sağlar." - -msgid "" -"The Telemetry service is not deployed by default in every cloud. If the " -"ceilometer commands do not work, this example does not work; ask your " -"support team for assistance." -msgstr "" -"Telemetri servisi her bulutta öntanımlı olarak kurulu değildir. Ceilometer " -"komutları çalışmazsa, bu örnek çalışmaz; destek takımınızdan yardım " -"isteyebilirsiniz." - -msgid "" -"The Telemetry service uses meters to measure a given aspect of a resources " -"usage. The meter that we are interested in is the :code:`cpu_util` meter." -msgstr "" -"Telemetri servisi bir kaynağın kullanım oranını ölçmek için ölçüler " -"kullanır. Bizim ilgilendiğimiz ölçü :code:`cpu_util` ölçüsüdür." - -msgid "" -"The `RabbitMQ getting started tutorial `_ provides a great introduction to message queues." -msgstr "" -"`RabbitMQ ile başlama öğreticisi `_ ileti kuyruklarına çok güzel bir giriş sağlar." - -msgid "" -"The `generated_by` field shows the worker that created the fractal. Because " -"multiple worker instances share the work, fractals are generated more " -"quickly and users might not even notice when a worker fails." -msgstr "" -"`generated_by` alanı fraktalı üreten işçiyi gösterir. Birden çok işçi sunucu " -"işi paylaştığından, fraktallar daha hızlı üretilir ve bir işçi başarısız " -"olduğunda kullanıcı bunu anlamayabilir bile." - -msgid "" -"The `outputs` property shows the URL through which you can access the " -"Fractal application. You can SSH into the instance." -msgstr "" -"`Outputs` özelliği Fraktal uygulamasına erişebileceğiniz URL'yi gösterir. " -"Sunucuya SSH çekebilirsiniz." - -msgid "The actual auth URL is:" -msgstr "Asıl yetkilendirme URL'si:" - -msgid "The alarms have the form:" -msgstr "Uyarılar şu biçime sahiptir:" - -msgid "" -"The application stores the generated fractal images directly in the database " -"used by the API service instance. Storing image files in a database is not " -"good practice. We are doing it here as an example only as an easy way to " -"enable multiple instances to have access to the data. For best practice, we " -"recommend storing objects in Object Storage, which is covered in :doc:" -"`durability`." -msgstr "" -"Uygulama üretilen fraktal imajlarını doğrudan API servisi sunucusu " -"tarafından kullanılan veritabanında saklar. İmaj dosyalarını bir " -"veritabanında tutmak iyi fikir değildir. Burda yalnızca birden çok sunucunun " -"veriye kolay erişimi olması için örnek olarak kullandık. En iyisi nesneleri :" -"doc:`durability` kısmında kapsandığı gibi Nesne Depolamada tutmaktır." - -msgid "" -"The auto-scaling stack sets up an API instance, a services instance, and an " -"auto-scaling group with a single worker instance. It also sets up ceilometer " -"alarms that add worker instances to the auto-scaling group when it is under " -"load, and removes instances when the group is idling. To do this, the alarms " -"post to URLs." -msgstr "" -"Otomatik ölçeklenen yığın bir API sunucusu, bir servisler sunucusu, ve tek " -"bir işçiye sahip bir otomatik ölçekleme grubu ayarlar. Ayrıca yük altında " -"olduğunda otomatik ölçekleme grubuna işçi sunucular ekleyen ve grup " -"boştayken sunucuları kaldıran ceilometer uyarıları ayarlar. Bunu yapmak için " -"uyarılar URL'lere istek yapar." - -msgid "" -"The client object accesses the Compute v2.0 service and type v2.1, so that " -"version is in this tutorial." -msgstr "" -"İstemci nesnesi Hesaplama v2.0 servisi ve tür v2.1'e erişir, bu yüzden " -"öğreticide bu sürüm kullanılmıştır." - -msgid "The connection URL for the database (not used here)." -msgstr "Veritabanı için bağlantı URL'si (burada kullanılmadı)." - -msgid "The endpoint URL of the API service." -msgstr "API servisinin uç nokta URL'si." - -msgid "" -"The example code uses the awesome `Requests library `_. Before you try to run the previous script, make " -"sure that it is installed on your system." -msgstr "" -"Örnek kod harika `Requests kitaplığını `_ kullanır. Önceki betiği çalıştırmaya çalışmadan önce sisteminize " -"kurulu olduğundan emin olun." - -msgid "" -"The example template depends on the ceilometer project, which is part of the " -"`Telemetry service `_." -msgstr "" -"Örnek şablon `Telemetri servisinin `_ parçası olan ceilometer projesine bağımlıdır." - -msgid "" -"The first step is to start the controller instance. The instance has the API " -"service, the database, and the messaging service, as you can see from the " -"parameters passed to the installation script." -msgstr "" -"İlk adım kontrol sunucusunu başlatmaktır. Kurulum betiğine geçirilen " -"parametrelerden görebileceğiniz gibi sunucunun API servisi, veritabanı ve " -"ileti servisi bulunur." - -msgid "The flavor" -msgstr "Nitelik" - -msgid "" -"The following file contains all of the code from this section of the " -"tutorial. This comprehensive code sample lets you view and run the code as a " -"single file." -msgstr "" -"Aşağıdaki dosya öğreticinin bu kısmındaki tüm kodu içerir. Bu kapsamlı kod " -"örneği kodu tek bir dosya olarak görüntülemenizi ve çalıştırmanızı sağlar." - -msgid "" -"The following file contains all of the code from this section of the " -"tutorial. This comprehensive code sample lets you view and run the code as a " -"single script." -msgstr "" -"Aşağıdaki dosya öğreticinin bu kısmındaki tüm kodu içerir. Bu kapsayıcı kod " -"örneği kodu tek bir betik olarak görüntüleme ve çalıştırma şansı verir." - -msgid "" -"The following instance creation example assumes that you have a single-" -"tenant network. If you receive the 'Exception: 400 Bad Request Multiple " -"possible networks found, use a Network ID to be more specific' error, you " -"have multiple-tenant networks. You must add a `networks` parameter to the " -"call that creates the server. See :doc:`/appendix` for details." -msgstr "" -"Aşağıdaki sunucu oluşturma örneği tek kiracılı bir ağa sahip olduğunuzu " -"varsayar. 'İstisna: 400 Kötü İstek Birden fazla muhtemel ağ bulundu, daha " -"belirleyici olmak için bir Ağ Kimliği kullanın' hatası alırsanız birden " -"fazla kiracılı ağınız var demektir. Sunucuyu oluşturan çağrıya bir " -"`networks` parametresi eklemeniz gerekir. Ayrıntılar için bkz :doc:`/" -"appendix`." - -msgid "The following operations are destructive and result in data loss." -msgstr "Aşağıdaki işlemler yıkıcıdır ve veri kaybına yol açarlar." - -msgid "" -"The fractal application we are building contains these types of network " -"traffic:" -msgstr "İnşa ettiğimiz fraktal uygulaması bu türlerde ağ trafiği içerir:" - -msgid "" -"The fractals are now available from any of the app-api hosts. To verify, " -"visit http://IP_API_1/fractal/FRACTAL_UUID and http://IP_API_2/fractal/" -"FRACTAL_UUID. You now have multiple redundant web services. If one fails, " -"you can use the others." -msgstr "" -"Fraktallar artık app-api sunucularının herhangi birinden kullanılabilirler. " -"Bunu doğrulamak için, http://IP_API_1/fractal/FRACTAL_UUID ve http://" -"IP_API_2/fractal/FRACTAL_UUID adreslerini ziyaret edin. Artık birden fazla " -"yedekli web servisiniz var. Biri başarısız olursa diğerlerini " -"kullanabilirsiniz." - -msgid "The magic revisited" -msgstr "Sihire yeniden ziyaret" - -msgid "" -"The message queue can take a while to notice that worker instances have died." -msgstr "" -"İleti kuyruğunun işçi sunucuların öldüğünü görmesi biraz daha zaman alabilir." - -msgid "" -"The most common way for OpenStack clouds to allocate Internet rout-able IP " -"addresses to instances, however, is through the use of floating IPs. A " -"floating IP is an address that exists as an entity unto itself, and can be " -"associated to a specific instance network interface. When a floating IP " -"address is associated to an instance network interface, OpenStack re-directs " -"traffic bound for that address to the address of the instance's internal " -"network interface address. Your cloud provider will generally offer pools of " -"floating IPs for your use." -msgstr "" -"Ancak OpenStack bulutlarının internet yönlendirilebilir IP adreslerini " -"sunuculara ayırmalarının en yaygın yolu değişken IP'lerin kullanımı iledir. " -"Değişken IP kendi kendine var olan bir adrestir ve belirli sunucu ağ " -"arayüzüyle ilişkilendirilebilir. Bir değişken IP adresi bir sunucu ağ " -"arayüzüyle ilişkilendirildiğinde, OpenStack bu adrese bağlı trafiği " -"sunucunun dahili ağ arayüz adresine yeniden yönlendirir. Bulut sağlayıcınız " -"genellikle kullanımınız için değişken IP adresi havuzları sunacaktır." - -msgid "The new instance appears." -msgstr "Yeni sunucu belirir." - -msgid "" -"The next logical step is to upload an object. Find a photo of a goat online, " -"name it :code:`goat.jpg`, and upload it to your :code:`fractals` container:" -msgstr "" -"Sonraki mantıksal adım bir nesne yüklemektir. İnternette bir keçi resmi " -"bulun, ismini :code:`goat.jpg` yapın ve :code:`fraktallar` kapsayıcınıza " -"yükleyin:" - -msgid "" -"The outputs section of the stack contains two ceilometer command-line " -"queries:" -msgstr "Yığının çıktılar kısmı iki ceilometer komut satırı sorgusu içerir:" - -msgid "The parameter :code:`Size` is in gigabytes." -msgstr ":code:`Size` parametresi gigabayt türündendir." - -msgid "The parameter :code:`size` is in gigabytes." -msgstr ":code:`size` parametresi gigabayt türündendir." - -msgid "The prefix is `metering.` For example, `metering.some_name`." -msgstr "Önek `metering`'dir. Örneğin, `metering.bir_isim`." - -msgid "" -"The previous section uses two virtual machines - one 'control' service and " -"one 'worker'. The speed at which your application can generate fractals " -"depends on the number of workers. With just one worker, you can produce only " -"one fractal at a time. Before long, you will need more resources." -msgstr "" -"Önceki kısım iki sanal makine kullanır - biri 'kontrol' servisi biri de " -"'işçi' servisidir. Uygulamanızın fraktalları üretme hızı işçi sayısına göre " -"değişir. Tek bir işçiyle bir seferde bir fraktal üretebilirsiniz. Fazla " -"geçmeden daha fazla kaynağa ihtiyacınız olacak." - -msgid "" -"The rest of this tutorial will not reference the all-in-one instance you " -"created in section one. Take a moment to delete this instance." -msgstr "" -"Bu kılavuzun geri kalanı bu kısımda oluşturduğunuz herşeyi içeren sunucuya " -"başvurmayacak. Bu sunucuyu hızlıca silin." - -msgid "The samples and the statistics are listed in opposite time order!" -msgstr "Örnekler ve istatistikler ters zaman sırasına göre listelenir!" - -msgid "The second application is an OpenStack application that enables you to:" -msgstr "" -"İkinci uygulama şunları yapmanızı sağlayacak bir OpenStack uygulamasıdır:" - -msgid "The shade framework can select and assign a free floating IP quickly" -msgstr "Shade çatısı çabukça boş bir değişken IP seçip atayabilir" - -msgid "" -"The sheer number of requests means that some requests for fractals might not " -"make it to the message queue for processing. To ensure that you can cope " -"with demand, you must also scale out the API capability of the Fractals " -"application." -msgstr "" -"İsteklerin tam sayısı demek fraktallar için bazı isteklerin işleme için " -"ileti kuyruğuna varamayabileceği anlamına gelir. İstekle baş " -"edebileceğinizden emin olmak için ayrıca Fraktal uygulamasının API " -"kapasitesini de ölçeklemelisiniz." - -msgid "The stack automatically creates a Nova instance, as follows:" -msgstr "Yığın şu şekilde otomatik olarak Nova sunucusunu oluşturur:" - -msgid "" -"The stack reports an initial :code:`CREATE_IN_PROGRESS` status. When all " -"software is installed, the status changes to :code:`CREATE_COMPLETE`." -msgstr "" -"Yığın önce bir :code:`CREATE_IN_PROGRESS` durumu bildirir. Tüm yazılım " -"kurulduktan sonra, durum :code:`CREATE_COMPLETE` olarak değişir." - -msgid "" -"The stack we will be building uses the firing of alarms to control the " -"addition or removal of worker instances." -msgstr "" -"İnşa ediyor olacağımız yığın işçi sunucuların eklenmesi ve kaldırılmasını " -"kontrol etmek için uyarıların tetiklenmesini kullanır." - -msgid "The transport URL of the messaging service." -msgstr "İleti servisinin aktarım URL'si." - -msgid "The unique identifier (UUID) of the image" -msgstr "İmajın benzersiz tanımlayıcısı (UUID)" - -msgid "The value of a meter is regularly sampled and saved with a timestamp." -msgstr "" -"Bir ölçünün değeri düzenli olarak örneklenir ve bir zaman damgasıyla " -"kaydedilir." - -msgid "" -"The worker service consumes messages from the work queue and then processes " -"them to create the corresponding fractal image file." -msgstr "" -"İşçi servisi iş kuyruğundan iletileri tüketir ve ilgili fraktal imaj " -"dosyasını oluşturmak için bunları işler." - -msgid "" -"The world is running out of IPv4 addresses. If you get the \"No more IP " -"addresses available on network\" error, contact your cloud administrator. " -"You may also want to ask about IPv6 :)" -msgstr "" -"Dünyada IPv4 adresi kalmamak üzere. Eğer \"Ağda kullanılabilir başka IP " -"adresi yok\" hatası alırsanız, bulut yöneticinizle iletişime geçin. IPv6 ile " -"ilgili konuşmak da isteyebilirsiniz :)" - -msgid "Then attach it to the instance:" -msgstr "Ardından sunucuya ekleyin:" - -msgid "Then request an IP number be allocated from the pool." -msgstr "Ardından ayırmak için havuzdan bir IP numarası isteyin." - -msgid "Then, create a pair of large fractals:" -msgstr "Ardından, büyük bir fraktal çifti oluşturun:" - -msgid "" -"There are also multiple storage back ends (to store the generated fractal " -"images) and a database component (to store the state of tasks), but we will " -"talk about those in :doc:`/durability` and :doc:`/block_storage` " -"respectively." -msgstr "" -"Ayrıca birden fazla depolama arka ucu (üretilen fraktal imajları saklamak " -"için) ve bir veritabanı bileşeni (görevlerin durumunu saklamak için) " -"bulunur, ama bunlardan sırasıyla :doc:`/durability` ve :`/block_storage` " -"kısımlarında söz edeceğiz." - -msgid "" -"There are definite advantages to this architecture. It is easy to get a \"new" -"\" server, without any of the issues that inevitably arise when a server has " -"been up and running for months, or even years." -msgstr "" -"Bu mimarinin belirli avantajları bulunur. Bir sunucunun aylarca hatta " -"yıllarca çalıştığında bir gün karşısına çıkacak sunucular olmadan \"yeni\" " -"bir sunucu almak kolaydır." - -msgid "" -"There are more commands available; find out more details about them with :" -"code:`faafo get --help`, :code:`faafo list --help`, and :code:`faafo delete " -"--help`." -msgstr "" -"Kullanılabilir daha fazla komut bulunur; :code:`faafo get --help`, :code:" -"`faafo list --help`, ve :code:`faafo delete --help` ile ayrıntılarını " -"keşfedin." - -msgid "" -"These demonstrate how the Ceilometer alarms add and remove instances. To use " -"them:" -msgstr "" -"Bunlar Ceilometer uyarılarının nasıl sunucu eklediğini ve kaldırdığını " -"gösterir. Kullanmak için:" - -msgid "These queries provide a view into the behavior of the stack." -msgstr "Bu sorgular yığının davranışına bir görüş sağlar." - -msgid "" -"These saved samples are aggregated to produce a statistic. The statistic " -"that we are interested in is **avg**: the average of the samples over a " -"given period." -msgstr "" -"Bu kaydedilen örnekler istatistik üretmek üzere toplanır. Bizim " -"ilgilendiğimiz istatistik **avg**'dir: verilen bir zaman aralığındaki " -"örneklerin ortalaması." - -msgid "" -"These services are client-facing, so unlike the workers they do not use a " -"message queue to distribute tasks. Instead, you must introduce some kind of " -"load balancing mechanism to share incoming requests between the different " -"API services." -msgstr "" -"Bu servisler istemciye bakarlar, yani işçilerden farklı olarak görevleri " -"dağıtmak için bir ileti kuyruğu kullanmazlar. Bunun yerine gelen istekleri " -"farklı API servisleri arasında paylaştırmak için bir çeşit yük dengeleme " -"sağlamalısınız." - -msgid "" -"These tools vastly reduce the effort it takes to work with large numbers of " -"servers, and also improve the ability to recreate, update, move, and " -"distribute applications." -msgstr "" -"Bu araçlar çok fazla sunucuda çalışırken gösterilmesi gereken emeği büyük " -"ölçüde azaltır, ayrıca uygulamaları tekrar oluşturma, güncelleme, taşıma ve " -"dağıtma yeteneğini artırır." - -msgid "" -"This OpenStack Database service is not installed in many clouds right now, " -"but if your cloud supports it, it can make your life a lot easier when " -"working with databases." -msgstr "" -"Bu OpenStack Kontrol panosu servisi şu an pek fazla bulutta kurulu değil, " -"ama bulutunuz destekliyorsa, veritabanlarıyla çalışırken hayatınızı epey " -"kolaylaştıracaktır." - -msgid "This adds a \"foo\" key to the metadata that has a value of \"bar\"." -msgstr "Bu \"bar\" değerine sahip bir \"foo\" anahtarını metaveriye ekler." - -msgid "" -"This chapter explains the importance of durability and scalability for your " -"cloud-based applications. In most cases, really achieving these qualities " -"means automating tasks such as scaling and other operational tasks." -msgstr "" -"Bu bölüm bulut tabanlı uygulamalarınız için dayanıklılık ve " -"ölçeklenebilirliğin önemini açıklar. Çoğu durumda bu kaliteleri gerçekten " -"elde etmek ölçekleme ve diğer işlevsel görevleri otomatikleştirmek demektir." - -msgid "" -"This chapter introduces the Networking API. This will enable us to build " -"networking topologies that separate public traffic accessing the application " -"from traffic between the API and the worker components. We also introduce " -"load balancing for resilience, and create a secure back-end network for " -"communication between the database, web server, file storage, and worker " -"components." -msgstr "" -"Bu bölüm Ağ API'sine giriş yapar. Bu bize uygulamaya erişen dışarı açık " -"trafikle API ve işçi bileşenler arasındaki trafiği ayıracak ağ topolojileri " -"inşa etmemizi sağlayacak. Ayrıca dayanıklılık için yük dengelemeye giriş " -"yapacağız ve veritabanı, web sunucu, dosya sunucu ve işçi bileşenler " -"arasında iletişim için güvenli bir arka uç ağı oluşturacağız." - -msgid "This code returns output like this:" -msgstr "Bu kod şu şekilde çıktı verir:" - -msgid "This code returns the floating IP address:" -msgstr "Bu kod değişken IP adresini döndürür:" - -msgid "" -"This command returns a very long list of meters. Once a meter is created, it " -"is never thrown away!" -msgstr "" -"Bu komut uzun bir ölçü listesi döndürür. Bir ölçü oluşturulduğunda, asla " -"fırlatılıp atılmaz!" - -msgid "This document has not yet been completed for the .NET SDK." -msgstr "Bu belge henüz .NET SDK için tamamlanmadı." - -msgid "This document has not yet been completed for the fog SDK." -msgstr "Bu belge henüz fog SDK için tamamlanmadı." - -msgid "This document has not yet been completed for the php-opencloud SDK." -msgstr "Bu belge php-opencloud SDK için henüz tamamlanmadı." - -msgid "" -"This file contains all the code from this tutorial section. This class lets " -"you view and run the code." -msgstr "" -"Bu dosya bu öğretici kısmındaki tüm kodu içerir. Bu sınıf kodu " -"görüntülemenizi ve çalıştırmanızı sağlar." - -msgid "" -"This file contains all the code from this tutorial section. This " -"comprehensive code sample lets you view and run the code as a single script." -msgstr "" -"Bu dosya bu öğretici kısmındaki tüm kodu içerir. Bu kapsamlı kod örneği kodu " -"tek bir betik olarak görüntülemenizi ve çalıştırmanızı sağlar." - -msgid "This gets an IP address that you can assign to your instance:" -msgstr "Bu sunucunuza atayabileceğiniz bir IP adresi alır:" - -msgid "" -"This guide is for experienced software developers who want to deploy " -"applications to OpenStack clouds." -msgstr "" -"Bu kılavuz OpenStack bulutlarında uygulama kurmak isteyen deneyimli yazılım " -"geliştiricileri içindir." - -msgid "" -"This is a `useful pattern `_ for many cloud applications that have long lists of requests coming " -"in and a pool of resources from which to service them. This also means that " -"a worker may crash and the tasks will be processed by other workers." -msgstr "" -"Gelen uzun istek listelerine ve bir kaynak havuzuna sahip çoğu bulut " -"uygulamalarında bu `kullanışlı bir kalıptır `_. Bu ayrıca bir işçi bozulduğunda görevlerin " -"diğer işçilerce işleneceği anlamına gelir." - -msgid "" -"This option also uses a bit stream to upload the file, iterating bit by bit " -"over the file and passing those bits to Object Storage as they come. " -"Compared to loading the entire file in memory and then sending it, this " -"method is more efficient, especially for larger files." -msgstr "" -"Bu seçenek de bit akışı kullanarak dosya yükler, dosya üzerinde bit bit " -"ilerleyerek ve bu bitleri geldikçe Nesne Depolamaya geçirerek. Tüm dosyayı " -"belleğe yükleyip ardından göndermeyle karşılaştırdığınızda bu yöntem daha " -"etkindir, özellikle daha büyük dosyalar için." - -msgid "" -"This process was obviously a very manual one. Figuring out that we needed " -"more workers and then starting new ones required some effort. Ideally the " -"system would do this itself. If you build your application to detect these " -"situations, you can have it automatically request and remove resources, " -"which saves you the effort of doing this work yourself. Instead, the " -"OpenStack Orchestration service can monitor load and start instances, as " -"appropriate. To find out how to set that up, see :doc:`orchestration`." -msgstr "" -"Bu süreç bariz şekilde elle yapılıyordu. Daha fazla işçiye ihtiyacımız " -"olduğunu anlamak ve yenilerini başlatmak biraz uğraştırdı. İdeal olarak " -"sistem bunu kendi yapar. Uygulamanızı bu gibi durumları algılayacak şekilde " -"inşa ederseniz, otomatik olarak kaynakları istemesini ve kaldırmasını " -"sağlayabilirsiniz, bu da bu işi kendi başınıza yaptığınızda çıkan iş yükünü " -"yok eder. Bunun yerine, OpenStack Orkestrasyon servisi yükü izleyerek uygun " -"şekilde sunucuları başlatabilir. Bunun nasıl ayarlanacağını bulmak için, " -"bkz :doc:`orchestration`." - -msgid "" -"This section assumes that your cloud provider has implemented the OpenStack " -"Networking API (neutron). Users of clouds which have implemented legacy " -"networking (nova-network) will have access to networking via the Compute " -"API. Log in to the Horizon dashboard and navigate to :guilabel:`Project-" -">Access & Security->API Access`. If you see a service endpoint for the " -"Network API, your cloud is most likely running the Networking API. If you " -"are still in doubt, ask your cloud provider for more information." -msgstr "" -"Bu kısım bulut sağlayıcınızın OpenStack Ağ API'sini (neutron) uyguladığını " -"varsayar. Geleneksel ağı (nova-network) uygulayan bulutların kullanıcıları " -"ağa Hesaplama API'si aracılığıyla erişebileceklerdir. Horizon kontrol " -"panosuna giriş yapın ve :guilabel:`Proje->Erişim & Güvenlik->API Erişimi`ne " -"gidin. Ağ API'si için bir servis uç noktası görürseniz bulutunuz muhtemelen " -"Ağ API'sini çalıştırıyordur. Hala şüpheliyseniz daha fazla bilgi için bulut " -"sağlayıcınızla görüşün." - -msgid "" -"This section continues to illustrate the separation of services onto " -"multiple instances and highlights some of the choices that we have made that " -"facilitate scalability in the application architecture." -msgstr "" -"Bu kısım servislerin birden çok sunucuya ayrımını açıklamaya devam eder ve " -"uygulama mimarisinde ölçeklemeyi kolaylaştıran bazı seçimlerimizi vurgular." - -msgid "This section explores options for expanding the sample application." -msgstr "Bu kısım örnek uygulamayı genişletmek için seçenekleri araştırır." - -msgid "This section has not yet been completed for the .NET SDK" -msgstr "Bu kısım .NET SDK için henüz tamamlanmadı" - -msgid "This section has not yet been completed for the .NET SDK." -msgstr "Bu kısım .NET SDK için henüz tamamlanmadı." - -msgid "This section has not yet been completed for the OpenStack SDK." -msgstr "Bu kısım OpenStack SDK için henüz tamamlanmadı." - -msgid "This section has not yet been completed for the PHP-OpenCloud SDK." -msgstr "Bu kısım PHP-OpenCloud SDK için henüz tamamlanmadı." - -msgid "This section has not yet been completed for the fog SDK." -msgstr "Bu kısım fog SDK için henüz tamamlanmadı." - -msgid "This section has not yet been completed for the pkgcloud SDK." -msgstr "Bu kısım pkgcloud SDK için henüz tamamlanmadı." - -msgid "" -"This section introduces block storage, also known as volume storage, which " -"provides access to persistent storage devices. You interact with block " -"storage by attaching volumes to running instances just as you might attach a " -"USB drive to a physical server. You can detach volumes from one instance and " -"reattach them to another instance and the data remains intact. The OpenStack " -"Block Storage (cinder) project implements block storage." -msgstr "" -"Bu kısım kalıcı depolama aygıtlarına erişim sağlayan, birim depolama olarak " -"da bilinen blok depolamayı tanıtır. Blok depolamayla çalışan sunuculara " -"birimler ekleyerek tıpkı fiziksel bir sunucuya USB aygıt takıyor gibi " -"etkileşirsiniz. Bir sunucudan birimleri ayırabilir ve başka bir sunucuya " -"veriyi koruyacak şekilde tekrar ekleyebilirsiniz. OpenStack Blok Depolama " -"(cinder) projesi blok depolamayı uygular." - -msgid "This section introduces object storage." -msgstr "Bu kısım nesne deoplamayı tanıtır." - -msgid "" -"This section introduces some operational concepts and tasks to developers " -"who have not written cloud applications before." -msgstr "" -"Bu kısım daha önce bulut uygulamaları yazmamış geliştiriciler için bazı " -"işlemsel kavramlar ve görevlere giriş yapar." - -msgid "" -"This section introduces the application architecture and explains how it was " -"designed to take advantage of cloud features in general and OpenStack in " -"particular. It also describes some commands in the previous section." -msgstr "" -"Bu kısım uygulama mimarisini tanıtır ve genel olarak bulut özelliklerinden " -"ve özel olarak OpenStack'den faydalanmak için nasıl tasarlandığını açıklar. " -"Ayrıca önceki kısımdaki bazı komutları tanımlar." - -msgid "" -"This section is based on the Neutron LBaaS API version 1.0 https://docs." -"openstack.org/admin-guide/networking_adv-features.html#basic-load-balancer-" -"as-a-service-operations" -msgstr "" -"Bu kısım Neutron LBaaS API sürüm 1.0 tabanlıdır https://docs.openstack.org/" -"admin-guide/networking_adv-features.html#basic-load-balancer-as-a-service-" -"operations" - -msgid "This section is incomplete. Please help us finish it!" -msgstr "Bu kısım bitirilmemiş. Lütfen bitirmemizde yardımcı olun!" - -msgid "" -"This tutorial shows two applications. The first application is a simple " -"fractal generator that uses mathematical equations to generate beautiful " -"`fractal images `_. We show you this " -"application in its entirety so that you can compare it to a second, more " -"robust, application." -msgstr "" -"Bu öğretici iki uygulama gösterir. İlk uygulama matematiksel eşitlikler " -"kullanarak güzel `fraktal imajlar `_ " -"üreten bir fraktal üreticidir. Göstereceğimiz ikinci, daha sağlam " -"uygulamayla karşılaştırabilmeniz için bu uygulamayı tamamıyla gösteriyoruz." - -msgid "" -"Though you might have configured Object Storage to store images, the Fractal " -"application needs a database to track the location of, and parameters that " -"were used to create, images in Object Storage. This database server cannot " -"fail." -msgstr "" -"İmajları depolamak için Nesne Depolama yapılandırmış olsanız da, Fraktal " -"uygulaması Nesne Depolamada imaj oluşturmak için kullanılan parametreleri ve " -"konumlarını takip etmek için bir veritabanına ihtiyaç duyar. Bu veritabanı " -"sunucusu başarısız olmamalıdır." - -msgid "" -"To begin to store objects, we must first make a container. Call yours :code:" -"`fractals`:" -msgstr "" -"Nesneleri depolamaya başlamak için, önce bir kapsayıcı yapmalıyız. :code:" -"`fraktallar` ismini verebilirsiniz:" - -msgid "" -"To better understand how the template works, use this guide to install the " -"'ceilometer' command-line client:" -msgstr "" -"Şablonun nasıl çalıştığını daha iyi anlamak için, 'ceilometer' komut satırı " -"istemcisini kurmak için bu kılavuzu kullanın:" - -msgid "" -"To configure shade using a profile, use your credentials above to specify " -"the cloud provider name, username, password, project name, and region name " -"in the file :file:`~/.config/openstack/clouds.yml`." -msgstr "" -"Shade'i bir profil kullanarak yapılandırmak için, :file:`~/.config/openstack/" -"clouds.yml` dosyasında bulut sağlayıcı ismi, kullanıcı adı, parola, proje " -"ismi ve bölge ismini belirtmek için kimlik bilgilerinizi kullanın." - -msgid "To create a floating IP address to use with your instance:" -msgstr "Sunucunuzla kullanmak üzere bir değişken IP adresi oluşturmak için:" - -msgid "" -"To delete a container, you must first remove all objects from the container. " -"Otherwise, the delete operation fails:" -msgstr "" -"Bir kapsayıcıyı silmek için önce kapsayıcıdan tüm nesneleri çıkarmalısınız. " -"Aksi halde silme işlemi başarısız olur:" - -msgid "To detach and delete a volume:" -msgstr "Bir birimi ayırmak ve silmek için:" - -msgid "To determine whether a public IP address is assigned to your instance:" -msgstr "Sunucunuza bir açık IP adresinin atanıp atanmadığını anlamak için:" - -msgid "To increase the overall capacity, add three workers:" -msgstr "Genel kapasiteyi artırmak için, üç işçi ekleyin:" - -msgid "" -"To install the 'trove' command-line client, see `Install the OpenStack " -"command-line clients `_." -msgstr "" -"'trove' komut satırı istemcisini kurmak için, `OpenStack komut satırı " -"istemcilerinin kurulumuna `_ göz " -"atın." - -msgid "" -"To install the OpenStack .NET SDK, use the NeGet Package Manager that is " -"included with Visual Studio and Xamarin Studio. You simply add a package " -"named 'openstack.net' and the NeGet Package Manager automatically installs " -"the necessary dependencies." -msgstr "" -"OpenStack .NET SDK'yı kurmak için Visual Studio ve Xamarin Studio ile " -"birlikte gelen NeGet Paket Yöneticisini kullanın. Basitçe 'openstack.net' " -"isimli bir paket eklersiniz ve NeGet Paket Yönetici gerekli bağımlılıkları " -"otomatik olarak kurar." - -msgid "To interact with the cloud, you must also have" -msgstr "Bulutla iletişime geçmek için ayrıca şunlara sahip olmalısınız" - -msgid "" -"To launch an instance, you choose a flavor and an image. The flavor " -"represents the size of the instance, including the number of CPUs and amount " -"of RAM and disk space. An image is a prepared OS installation from which you " -"clone your instance. When you boot instances in a public cloud, larger " -"flavors can be more expensive than smaller ones in terms of resources and " -"monetary cost." -msgstr "" -"Bir sunucu başlatmak için, bir nitelik ve imaj seçersiniz. Nitelik " -"sunucunuzun boyutunu, CPU sayısı ve RAM ve disk boyutu da dahil olarak " -"temsil eder. İmaj sunucunuzu kopyaladığınız hazır bir işletim sistemi " -"kurulumudur. Açık bir bulutta sunucularınız önyüklediğinizde, büyük " -"nitelikler kaynakça ve maddi olarak küçük olanlardan daha pahalı olabilir." - -msgid "" -"To learn about auto-scaling with the Orchestration API, read these articles:" -msgstr "" -"Orkestrasyon API'si ile otomatik ölçeklendirme hakkında daha fazlasını " -"öğrenmek için şu makaleleri okuyun:" - -msgid "" -"To list the images that are available in your cloud, run some API calls:" -msgstr "" -"Bulutunuzda kullanılabilir imajları listelemek için, bazı API çağrıları " -"çalıştırın:" - -msgid "To recap:" -msgstr "Tekrar etmek için:" - -msgid "" -"To run your application, you must launch an instance. This instance serves " -"as a virtual machine." -msgstr "" -"Uygulamanızı çalıştırmak için bir sunucu başlatmalısınız. Sunucu bir sanal " -"makine olarak servis verir." - -msgid "To see if the volume creation was successful, list all volumes:" -msgstr "" -"Birim oluşturmanın başarılı olup olmadığını görmek için tüm birimleri " -"listeleyin:" - -msgid "" -"To see the application running, you must know where to look for it. By " -"default, your instance has outbound network access. To make your instance " -"reachable from the Internet, you need an IP address. By default in some " -"cases, your instance is provisioned with a publicly rout-able IP address. In " -"this case, you see an IP address listed under `public_ips` or `private_ips` " -"when you list the instances. If not, you must create and attach a floating " -"IP address to your instance." -msgstr "" -"Uygulamayı çalışır görmek için, nereye bakacağınızı bilmeniz gerekir. " -"Öntanımlı olarak sunucunuzun dışarı ağ erişimi bulunur. Sunucunuzu " -"internetten erişilebilir yapmak için bir IP adresine ihtiyacınız vardır. " -"Bazı durumlarda öntanımlı olarak sunucunuz açıkça yönlendirilebilir bir IP " -"adresiyle hazırlanır. Bu durumda sunucuları listelediğinizde `public_ips` " -"veya `private_ips` altında listelenen bir IP adresi görürsünüz. Görmezseniz " -"sunucunuz için bir değişken IP adresi oluşturmalı ve atamalısınız." - -msgid "To see whether a private IP address is assigned to your instance:" -msgstr "Sunucunuza özel bir IP adresinin atanıp atanmadığını görmek için:" - -msgid "To see which security groups apply to an instance, you can:" -msgstr "Bir sunucuya hangi güvenlik gruplarının uygulandığını görmek için:" - -msgid "" -"To set up environment variables for your cloud in an :file:`openrc.sh` file, " -"see `Set environment variables using the OpenStack RC file `_." -msgstr "" -"Bulutunuz için bir :file:`openrc.sh` dosyasında çevre değişkenleri ayarlamak " -"için, `OpenStack RC dosyası kullanarak çevre değişkeni ayarlamak `_ kısmına göz atın." - -msgid "" -"To set up the necessary variables for your cloud in an 'openrc' file, use " -"this guide:" -msgstr "" -"Bulutunuz için gerekli değişkenleri bir 'openrc' dosyasında ayarlamak için, " -"bu kılavuzu kullanın:" - -msgid "" -"To show the details of a specific fractal use the subcommand :code:`show` of " -"the Faafo CLI." -msgstr "" -"Belirli bir fraktalın ayrıntılarını göstermek için Faafo CLI'nin :code:" -"`show` alt komutunu kullanın." - -msgid "" -"To test what happens when the Fractals application is under load, you can:" -msgstr "" -"Fraktal uygulaması yük altındayken neler olacağını denemek için şunu " -"yapabilirsiniz:" - -msgid "" -"To try it out, add the following code to a Python script (or use an " -"interactive Python shell) by calling :code:`python -i`." -msgstr "" -"Denemek için aşağıdaki kodu :code:`python -i` çağırarak bir Python betiğine " -"ekleyin (veya etkileşimli Python kabuğu kullanın)." - -msgid "To try it out, make a 1GB volume called 'test'." -msgstr "Denemek için, 'test' isimli 1GB bir birim yapın." - -msgid "" -"To try it, add the following code to a Python script (or use an interactive " -"Python shell) by calling :code:`python -i`." -msgstr "" -"Denemek için, :code:`python -i`çağırarak aşağıdaki kodu bir Python betiğine " -"ekleyin (veya etkileşimli Python kabuğunu kullanın)." - -msgid "" -"To try it, use an interactive Node.js shell by calling :code:`node` or add " -"the following code to a script." -msgstr "" -"Denemek için, :code:`node` çağırarak etkileşimli Node.js kabuğu kullanın " -"veya aşağıdaki kodu bir betiğe ekleyin." - -msgid "" -"To use Maven to compile a downloaded sample, with the command prompt located " -"in the same directory as the :code:`pom.xml` file, enter:" -msgstr "" -"İndirilen bir örneği derlemek için Maven kullanmak için, :code:`pom.xml` " -"dosyasının bulunduğu dizinle aynı yerdeki komut satırına şunu girin:" - -msgid "" -"To use Maven to run each downloaded sample, with the command prompt located " -"in the same directory as the :code:`pom.xml` file, enter:" -msgstr "" -"İndirilen her bir örneği Maven kullanarak çalıştırmak için komut satırı :" -"code:`pom.xml` dosyasının olduğu dizinde olacak şekilde, şunu girin:" - -msgid "" -"To use a floating IP, you must first allocate an IP to your project, then " -"associate it to your instance's network interface." -msgstr "" -"Bir değişken IP kullanmak için, önce projenize bir IP ayırmalısınız, " -"ardından bunu sunucunuzun ağ arayüzüyle ilişkilendirmelisiniz." - -msgid "" -"To use the OpenStack .NET SDK, add the following code in the required " -"namespace section." -msgstr "" -"OpenStack .NET SDK'yı kullanmak için, aşağıdaki kodu gerekli isim uzayı " -"kısmına ekleyin." - -msgid "To verify that ceilometer is installed, list the known meters:" -msgstr "" -"Ceilometer'in kurulu olduğunu onaylamak için bilinen ölçüleri listeleyin:" - -msgid "URL" -msgstr "URL" - -msgid "" -"Use :code:`ex_list_floating_ip_pools()` and select the first floating IP " -"address pool. Allocate this pool to your project and use it to get a " -"floating IP address." -msgstr "" -":code:`ex_list_floating_ip_pools()` kullanın ve ilk değişken IP adresi " -"havuzunu seçin. Bu havuzu projenize ayırın ve bir değişken IP adresi almak " -"için kullanın." - -msgid "" -"Use :code:`getFloatingIps` to check for unused addresses. Select the first " -"available address. Otherwise, use :code:`allocateNewFloatingIp` to allocate " -"a floating IP to your project from the default address pool." -msgstr "" -"Kullanılmayan adresleri kontrol etmek için :code:`getFloatingIps` kullanın. " -"Kullanılabilir ilk adresi seçin. Aksi halde, öntanımlı adres havuzundan " -"projenize bir değişken IP ayırmak için :code:`allocateNewFloatingIp` " -"kullanın." - -msgid "Use Block Storage for the Fractal database server" -msgstr "Fraktal veritabanı sunucusu için Blok Depolama kullanın" - -msgid "Use Object Storage instead of a database" -msgstr "Veritabanı yerine Nesne Depolama kullanın" - -msgid "Use Object Storage to store fractals" -msgstr "Fraktalları depolamak için Nesne Depolamayı kullanın" - -msgid "Use Object and Block storage for file and database persistence." -msgstr "Dosya ve veritabanı kalıcılığı için Nesne ve Blok depolamayı kullanın." - -msgid "Use Orchestration services to automatically adjust to the environment." -msgstr "" -"Ortama otomatik olarak ayarlanmak için Orkestrasyon servislerini kullanın." - -msgid "" -"Use SSH with the existing SSH keypair to log in to the :code:`app-" -"controller` controller instance." -msgstr "" -"Mevcut SSH anahtar çiftiyle :code:`app-controller` kontrol sunucusuna giriş " -"için SSH kullanın." - -msgid "" -"Use a for loop to call the :code:`faafo` command-line interface to request a " -"random set of fractals 500 times:" -msgstr "" -"500 kere rasgele fraktal kümesi isteği göndermek için komut satırı " -"arayüzünden bir döngü kullanarak :code:`faafo` çalıştırın:" - -msgid "Use conf.d and etc.d." -msgstr "conf.d ve etc.d kullanın." - -msgid "Use environment variables to set your cloud credentials" -msgstr "Bulut kimlik bilgilerinizi ayarlamak için ortam değişkenleri kullanın" - -msgid "" -"Use network service client to select the first floating IP address pool. " -"Allocate this pool to your project and use it to get a floating IP address." -msgstr "" -"İlk değişken IP adresi havuzunu seçmek için ağ servis istemcisini kullanın. " -"Bu havuzu projenize ayırın ve bir değişken IP adresi almak için kullanın." - -msgid "Use the :code:`faafo UUID` command to examine some of the fractals." -msgstr "" -"Fraktalların bazılarını incelemek için :code:`faafo UUID` komutunu kullanın." - -msgid "Use the :code:`faafo create` command to generate fractals." -msgstr "Fraktallar üretmek için :code:`faafo create` komutunu kullanın." - -msgid "" -"Use the :code:`faafo list` command to watch the progress of fractal " -"generation." -msgstr "" -"Fraktal üretim sürecini izlemek için :code:`faafo list` komutunu kullanın." - -msgid "" -"Use the `Health Endpoint Monitoring Pattern ` to implement functional checks within your " -"application that external tools can access through exposed endpoints at " -"regular intervals." -msgstr "" -"Uygulamanızda harici araçların dışa çık uç noktalardan belirli aralıklarla " -"erişebileceği işlev kontrolleri uygulamak için `Sağlık Uç Nokta İzleme " -"Örüntüsünü ` " -"kullanın." - -msgid "" -"Use the image, flavor, key pair, and userdata to create an instance. After " -"you request the instance, wait for it to build." -msgstr "" -"Sunucuyu oluşturmak için imajı, niteliği, anahtar çiftini ve kullanıcı " -"verisini kullanın. Sunucu isteği yaptıktan sonra inşa edilmesini bekleyin." - -msgid "Use the stack ID to get more information about the stack:" -msgstr "Yığınla ilgili daha fazla bilgi almak için yığın kimliğini kullanın:" - -msgid "" -"Use this guide to install the 'openstack' command-line client: https://docs." -"openstack.org/cli-reference/common/" -"cli_install_openstack_command_line_clients.html#install-the-clients" -msgstr "" -"'Openstack' komut satırı istemcisini kurmak için bu kılavuzu kullanın: " -"https://docs.openstack.org/cli-reference/common/" -"cli_install_openstack_command_line_clients.html#install-the-clients" - -msgid "" -"Use this guide to set up the necessary variables for your cloud in an " -"'openrc' file: https://docs.openstack.org/cli-reference/common/" -"cli_set_environment_variables_using_openstack_rc.html" -msgstr "" -"Bulutunuz için gerekli değişkenleri bir 'openrc' dosyasında ayarlamak için " -"bu kılavuzu kullanın: https://docs.openstack.org/cli-reference/common/" -"cli_set_environment_variables_using_openstack_rc.html" - -msgid "" -"Use your credentials above to specify the cloud provider name, username, " -"password, project_name and region_name in the file :file:`~/.config/" -"openstack/clouds.yml`." -msgstr "" -"Bulut sağlayıcı ismini, kullanıcı ismini, parolayı, proje ismini ve bölge " -"ismini :file:`~/.config/openstack/clouds.yml` dosyasında belirtmek için " -"yukardaki kimlik bilgilerinizi kullanın." - -msgid "Use your selected image and flavor to create an instance." -msgstr "Sunucu oluşturmak için seçtiğiniz imajı ve niteliği kullanın." - -msgid "User data in openstacksdk must be encoded to Base64" -msgstr "Openstacksdk'daki kullanıcı verisi Base64 kodlanmalıdır" - -msgid "User data in openstacksdk must be encoded to Base64." -msgstr "Openstacksdk'daki kullanıcı verisi Base64 kodlanmış olmalıdır." - -msgid "" -"Userdata. During instance creation, you can provide userdata to OpenStack to " -"configure instances after they boot. The cloud-init service applies the user " -"data to an instance. You must pre-install the cloud-init service on your " -"chosen image. We will go into more detail in :doc:`/introduction`." -msgstr "" -"Kullanıcıverisi. Sunucu oluşturma anında, OpenStack'in sunucular " -"önyüklendikten sonra yapılandırabilmesi için kullanıcı verisi " -"sağlayabilirsiniz. Cloud-init servisi kullanıcı verisini sunucuya uygular. " -"Seçtiğiniz imaja cloud-init servisini önceden yüklemelisiniz. :doc:`/" -"introduction` kısmında daha ayrıntıya gireceğiz." - -msgid "Using Pacemaker to look at the API." -msgstr "API'ye bakmak için Pacemaker kullanmak." - -msgid "Values" -msgstr "Değerler" - -msgid "Verify that the stack was successfully created:" -msgstr "Yığının başarıyla oluşturulduğunu onaylayın:" - -msgid "Verify that we have had an impact" -msgstr "Bir etkimiz olduğunu onaylayın" - -msgid "Verify the nova instance was deleted when the stack was removed:" -msgstr "Yığın kaldırıldığında nova sunucusunun silindiğini onaylayın:" - -msgid "Wait for it to reach the :code:`CREATE_COMPLETE` status:" -msgstr ":code:`CREATE_COMPLETE` durumuna ulaşmasını bekleyin:" - -msgid "" -"Watch :code:`top` on the worker instance. Right after calling :code:`faafo` " -"the :code:`faafo-worker` process should start consuming a lot of CPU cycles." -msgstr "" -"İşçi sunucuda :code:`top` çıktısını izleyin. :code.`faafo` çağrılır " -"çağrılmaz :code:`faafo-worker` süreci epey CPU tüketiyor olmalı." - -msgid "" -"We are interested because the Telemetry service supports alarms: an alarm is " -"fired when our average statistic breaches a configured threshold. When the " -"alarm fires, an associated action is performed." -msgstr "" -"İlgileniyoruz çünkü Telemetri servisi uyarıları destekliyor: bir uyarı " -"ortalama istatistiğimiz yapılandırılan bir eşiği geçtiğinde tetiklenir. " -"Uyarı tetiklendiğinde ilişkili bir eylem gerçekleştirilir." - -msgid "" -"We assume that you can already access an OpenStack cloud. You must have a " -"project, also known as a tenant, with a minimum quota of six instances. " -"Because the Fractals application runs in Ubuntu, Debian, Fedora-based, and " -"openSUSE-based distributions, you must create instances that use one of " -"these operating systems." -msgstr "" -"Zaten bir OpenStack bulutuna erişiminiz olduğunu varsayıyoruz. En az altı " -"sunucu kotasına sahip, kiracı olarak da bilinen, bir projeye sahip " -"olmalısınız. Fraktallar uygulaması Ubuntu, Debian, Fedora-tabanlı, ve " -"openSUSE tabanlı dağıtımlarda çalıştığından, bu işletim sistemlerinden " -"birini kullanan sunucular oluşturmalısınız." - -msgid "We cover networking in detail in :doc:`/networking`." -msgstr ":doc:`/networking` kısmında ağın ayrıntılarını kapsıyoruz." - -msgid "" -"We explained image and flavor in :doc:`getting_started`, so in the following " -"sections, we will explain the other parameters in detail, including :code:" -"`ex_userdata` (cloud-init) and :code:`ex_keyname` (key pairs)." -msgstr "" -"İmaj ve niteliği :doc:`getting_started` kısmında açıkladık, ilerleyen " -"kısımlarda, :code:`ex_userdata` (cloud-init) ve :code:`ex_keyname` (anahtar " -"çiftleri) dahil diğer parametreleri daha ayrıntılı olarak açıklayacağız." - -msgid "We have created a Maven POM file to help you get started." -msgstr "Başlamanıza yardımcı olmak için Maven POM dosyası hazırladık." - -msgid "" -"We have not quite figured out how to stop using a database, but the general " -"steps are:" -msgstr "" -"Bir veritabanı kullanmayı nasıl bırakacağımızı tam olarak belirleyemedik, " -"ama genel adımlar şunlar:" - -msgid "" -"We have talked about separating functions into different micro-services, and " -"how that enables us to make use of the cloud architecture. Now let us see " -"that in action." -msgstr "" -"Fonksiyonları farklı mikro servislere ayırmayı, ve bunun bizi bulut " -"mimarisini kullanmakta nasıl etkin yaptığını konuştuk. Şimdi bunu eyleme " -"dökelim." - -msgid "What you need" -msgstr "İhtiyacınız olan" - -msgid "What you will learn" -msgstr "Öğrenecekleriniz" - -msgid "" -"When an SSH public key is provided during instance creation, cloud-init " -"installs this key on a user account. (The user name varies between cloud " -"images.) See the `Obtaining Images `_ section of the image guide for guidance about which " -"user name you should use when SSHing. If you still have problems logging in, " -"ask your cloud provider to confirm the user name." -msgstr "" -"Sunucu oluşturma sırasında bir SSH açık anahtarı sağlandığında, cloud-init " -"bu anahtarı kullanıcı hesabına yükler. (Kullanıcı adı bulut imajlarına göre " -"değişiklik gösterir.) SSH çekerken hangi kullanıcı adını kullanacağınızla " -"ilgili yön gösterme için imaj kılavuzundaki `İmajları almak `_ kısmına göz atın. Yine de " -"girişte sorun yaşıyorsanız, bulut sağlayıcınıza kullanıcı adınızı kontrol " -"ettirin." - -msgid "" -"When the instance boots, the `ex_userdata` variable value instructs the " -"instance to deploy the Fractals application." -msgstr "" -"Sunucu önyüklendiğinde, `ex_userdata` değişken değeri sunucuya Fraktal " -"uygulamasını kurmasını söyler." - -msgid "" -"When you create an instance for the application, you want to give it a bit " -"more information than you supplied to the bare instance that you just " -"created and deleted. We will go into more detail in later sections, but for " -"now, simply create the following resources so that you can feed them to the " -"instance:" -msgstr "" -"Uygulama için bir sunucu oluşturduğunuzda, az önce oluşturduğunuz ve " -"sildiğiniz boş sunucudan biraz daha fazla bilgi vermek istersiniz. İlerleyen " -"kısımlarda daha fazla ayrıntıya gireceğiz, ama şimdilik sunucuyu beslemek " -"için sadece basitçe aşağıdaki kaynakları oluşturun:" - -msgid "" -"When you deal with pets, you name and care for them. If they get sick, you " -"nurse them back to health, which can be difficult and very time consuming. " -"When you deal with cattle, you attach a numbered tag to their ear. If they " -"get sick, you put them down and move on." -msgstr "" -"Evcil hayvanlarla ilgilendiğinizde, onları isimlendirir ve iyi bakarsınız. " -"Hastalanırlarsa, iyileşene kadar bakıcılık yaparsınız ki bu oldukça zor ve " -"zaman alıcı bir iş olabilir. Sığırlarla uğraşırken kulaklarına bir numara " -"etiketi takarsınız. Hastalanırlarsa bir kenara ayırır hayatınıza devam " -"edersiniz." - -msgid "" -"While this stack starts a single instance that builds and runs the Fractal " -"application as an all-in-one installation, you can make very complicated " -"templates that impact dozens of instances or that add and remove instances " -"on demand. Continue to the next section to learn more." -msgstr "" -"Bu yığın tek bir sunucu başlatsa ve Fraktal uygulamasını hepsi bir arada bir " -"kurulum olarak çalıştırsa da, düzinelerce sunucuyu etkileyen veya isteğe " -"göre sunucu ekleyip çıkaran daha karmaşık şablonlar yapabilirsiniz. Daha " -"fazlasını öğrenmek için sonraki kısma devam edin." - -msgid "Who should read this guide" -msgstr "Bu kılavuzu okuması gerekenler" - -msgid "" -"With multiple workers producing fractals as fast as they can, the system " -"must be able to receive the requests for fractals as quickly as possible. If " -"our application becomes popular, many thousands of users might connect to " -"our API to generate fractals." -msgstr "" -"Ellerinde geldiğince fraktal üreten birden çok işçiyle, sistem fraktallar " -"için istekleri olabildiğince çabuk alabiliyor olmalıdır. Uygulamamız " -"popülerleşirse, binlerce kullanıcı fraktal üretmek için API'mize " -"bağlanabilir." - -msgid "" -"With the OpenStack Networking API, the workflow for creating a network " -"topology that separates the public-facing Fractals app API from the worker " -"back end is as follows:" -msgstr "" -"OpenStack Ağ API'si ile, dışarıya dönük Fraktal uygulama API'sini işçi arka " -"uçtan ayıran bir ağ topolojisi oluşturmak için olan iş akışı şu şekildedir:" - -msgid "" -"With the Orchestration API, the Fractal application can create an auto-" -"scaling group for all parts of the application, to dynamically provision " -"more compute resources during periods of heavy utilization, and also " -"terminate compute instances to scale down, as demand decreases." -msgstr "" -"Orkestrasyon API'si ile, Fraktal uygulaması yük yoğunluğunun olduğu " -"aralıklarda dinamik olarak daha fazla hesaplama kaynağı hazırlamak için " -"uygulamanın tüm kısımları için otomatik ölçekleme grubu oluşturabilir, ve " -"yük azaldıkça ölçeği küçültmek için hesaplama sunucularını sonlandırabilir." - -msgid "" -"With the addition of the load balancer, the Fractal app's networking " -"topology now reflects the modular nature of the application itself." -msgstr "" -"Yük dengeleyicinin eklenmesiyle Fraktal uygulamasının ağ topolojisi artık " -"uygulamanın modüler doğasını yansıtır durumda." - -msgid "Work with stacks: Advanced" -msgstr "Yığınlarla çalışın: Gelişmiş" - -msgid "Work with stacks: Basics" -msgstr "Yığınlarla çalışın: Temeller" - -msgid "Work with the CLI" -msgstr "CLI ile çalışmak" - -msgid "Work with the OpenStack Database service" -msgstr "OpenStack Veritabanı servisi ile çalışın" - -msgid "" -"Wow! If you have made it through this section, you know more than the " -"authors of this guide know about working with OpenStack clouds." -msgstr "" -"Wow! Bu kısmı geçtiyseniz, OpenStack bulutlarıyla çalışmakla ilgili bu " -"kılavuzun yazarlarından daha çok şey biliyorsunuz." - -msgid "Writing your first OpenStack application" -msgstr "İlk OpenStack uygulamanızı yazmak" - -msgid "" -"You also need a security group to permit access to the database server (for " -"MySQL, port 3306) from the network:" -msgstr "" -"Ağdan veritabanı sunucusuna erişim izni için (MySQL için, bağlantı noktası " -"3306) bir de güvenlik grubuna ihtiyacınız var:" - -msgid "" -"You are ready to create members for the load balancer pool, which reference " -"the floating IPs:" -msgstr "" -"Değişken IP'leri gösteren, yük dengeleme bağlantı noktası için üyeler " -"oluşturmak için hazırsınız:" - -msgid "" -"You can aggregate samples and calculate statistics across all instances with " -"the `metering.some_name` metadata that has `some_value` by using a query of " -"the form:" -msgstr "" -"Örnekleri toplayabilir ve tüm sunucular arasındaki istatistikleri şu şekilde " -"bir sorgu kullanarak `some_value` değerine sahip `metering.some_name` " -"metaverisi ile hesaplayabilirsiniz:" - -msgid "" -"You can also download the OpenStack RC file from the OpenStack Horizon " -"dashboard. Log in to the dashboard and click :guilabel:`Project->Access & " -"Security->API Access->Download OpenStack RC file`. If you use this method, " -"be aware that the \"auth URL\" does not include the path. For example, if " -"your :file:`openrc.sh` file shows:" -msgstr "" -"Ayrıca OpenStack RC dosyasını OpenStack Horizon kontrol panosundan " -"indirebilirsiniz. Kontrol panosuna giriş yapın ve :guilabel:`Proje->Erişim & " -"Güvenlik->API Erişimi->OpenStack RC dosyasını indire` tıklayın. Bu yöntemi " -"kullanırsanız \"yetkilendirme URL\"'sinin yolda bulunmadığını unutmayın. " -"Örneğin :file:`openrc.sh` dosyanız şöyle gösteriyorsa:" - -msgid "You can also get information about available flavors:" -msgstr "Ayrıca kullanılabilir niteliklerle ilgili bilgi alabilirsiniz:" - -msgid "" -"You can also use the OpenStack API to create snapshots of running instances " -"and persistent volumes. For more information, see your SDK documentation." -msgstr "" -"OpenStack API'yi kullanarak çalışan sunucuların ya da kalıcı birimlerin " -"anlık görüntülerini de oluşturabilirsiniz. Daha fazla bilgi için SDK " -"belgelendirmenize göz atın." - -msgid "" -"You can complete advanced tasks such as uploading an object with metadata, " -"as shown in following example. For more information, see the documentation " -"for your SDK." -msgstr "" -"Aşağıdaki örnekte gösterildiği gibi metaveriyle birlikte bir nesne yükleme " -"gibi karmaşık görevleri tamamlayabilirsiniz. Daha fazla bilgi için SDK'nız " -"için belgelendirmeye göz atın." - -msgid "" -"You can detach the volume and reattach it elsewhere, or use the following " -"steps to delete the volume." -msgstr "" -"Birimi ayırabilir ve başka bir yere ekleyebilirsiniz, veya birimi silmek " -"için şu adımları kullanabilirsiniz." - -msgid "You can list available security groups with:" -msgstr "Kullanılabilir güvenlik gruplarını şu şekilde listeleyebilirsiniz:" - -msgid "You can then attach it to the instance:" -msgstr "Ardından sunucuya ekleyebilirsiniz:" - -msgid "" -"You create stacks from templates, which contain resources. Resources are an " -"abstraction in the HOT (Heat Orchestration Template) template language, " -"which enables you to define different cloud resources by setting the :code:" -"`type` attribute." -msgstr "" -"Yığınları kaynaklar içeren şablonlardan oluşturursunuz. Kaynaklar HOT (Heat " -"Orkestrasyon Şablonu) şablon dilinde soyutlamalardır, ve :code:`type` " -"özniteliğini ayarlayarak farklı bulut kaynakları tanımlamanızı sağlarlar." - -msgid "" -"You might have to run the :command:`openstack stack list` command a few " -"times before the stack creation is complete." -msgstr "" -"Yığın oluşturma tamamlanmadan önce :command:`openstack stack list` komutunu " -"bir kaç kere çalıştırmanız gerekebilir." - -msgid "" -"You might want to use multiple clouds, such as a private cloud inside your " -"organization and a public cloud. This section attempts to do exactly that." -msgstr "" -"Birden fazla bulut kullanmak isteyebilirsiniz, örneğin kurum içinde özel bir " -"bulut ve açık ayrı bir bulut. Bu kısım tam olarak bunu yapmaya çalışır." - -msgid "You must pass in objects and not object names to the delete commands." -msgstr "Silme komutlarına nesne isimlerini değil nesneleri vermelisiniz." - -msgid "" -"You need a server for the dedicated database. Use the image, flavor, and " -"keypair that you used in :doc:`/getting_started` to launch an :code:`app-" -"database` instance." -msgstr "" -"Adanmış veritabanı için bir sunucuya ihtiyacınız var. :doc:`/" -"getting_started` belgesinde kullandığınız imajı, niteliği ve anahtar çiftini " -"kullanarak bir :code:`app-database` sunucusu başlatın." - -msgid "You pass in these configuration settings as parameters:" -msgstr "Şu yapılandırma ayalarını parametreler olarak geçirirsiniz:" - -msgid "You should be able to see them in the member list:" -msgstr "Üye listesinde görüyor olmalısınız:" - -msgid "" -"You should be fairly confident about starting instances and distributing " -"services from an application among these instances." -msgstr "" -"Sunucular başlatma ve bu sunucular arasındaki bir uygulamadan servisleri " -"dağıtma konusunda kendinize güveniyor olmalısınız." - -msgid "" -"You should now be able to see this container appear in a listing of all " -"containers in your account:" -msgstr "" -"Artık bu kapsayıcıyı hesabınızdaki kapsayıcıların listesinde görebiliyor " -"olmalısınız:" - -msgid "" -"You should now be fairly confident working with Block Storage volumes. For " -"information about other calls, see the volume documentation for your SDK. " -"Or, try one of these tutorial steps:" -msgstr "" -"Artık Blok Depolama birimleriyle yeterli özgüvenle çalışabiliyor " -"olmalısınız. Diğer çağrılarla ilgili bilgi için, SDK'nız için birim " -"belgelendirmesine göz atın. Veya şu öğretici adımlardan birini deneyin:" - -msgid "" -"You should now be fairly confident working with Object Storage. You can find " -"more information about the Object Storage SDK calls at:" -msgstr "" -"Artık Nesne Depolamayla çalışırken kendinizden emin olmalısınız. Nesne " -"Depolama SDK çağrılarıyla ilgili daha fazla bilgi için:" - -msgid "" -"You should now be fairly confident working with the Network API. To see " -"calls that we did not cover, see the volume documentation of your SDK, or " -"try one of these tutorial steps:" -msgstr "" -"Artık Ağ API'si ile çalışırken kendinizden emin olmalısınız. Kapsamadığımız " -"çağrıları görmek için SDK'nızın birim belgelendirmesine göz atın veya şu " -"öğretici adımlardan birini deneyin:" - -msgid "" -"You should now be fairly confident working with the Orchestration service. " -"To see the calls that we did not cover and more, see the volume " -"documentation of your SDK. Or, try one of these steps in the tutorial:" -msgstr "" -"Artık Orkestrasyon servisiyle oldukça rahat şekilde çalışabiliyor " -"olmalısınız. Burda kapsamadığımız çağrıları ve daha fazlasını görmek için " -"SDK'nızın birim belgelendirmesine göz atın. Veya öğreticideki şu adımlardan " -"birini deneyin:" - -msgid "" -"You should now have a basic understanding of the architecture of cloud-based " -"applications. In addition, you have had practice starting new instances, " -"automatically configuring them at boot, and even modularizing an application " -"so that you may use multiple instances to run it. These are the basic steps " -"for requesting and using compute resources in order to run your application " -"on an OpenStack cloud." -msgstr "" -"Artık bulut tabanlı uygulamaların mimarisiyle ilgili temel şeyleri anlamış " -"olmalısınız. Ek olarak yeni sunucular başlatmak, önyüklemede otomatik olarak " -"yapılandırma ve hatta çalıştırmak için birden çok sunucu kullanabilmek için " -"uygulamayı modülerleştirmeyle ilgili pratik de yaptınız. Bunlar uygulamanızı " -"OpenStack bulutunda çalıştırabilmeniz için hesaplama kaynaklarını isteme ve " -"kullanmanın temel adımlarıdır." - -msgid "You should see output like this:" -msgstr "Şuna benzer çıktı görmelisiniz:" - -msgid "You should see output something like this:" -msgstr "Şuna benzer bir çıktı görmelisiniz:" - -msgid "You should see output something like:" -msgstr "Şuna benzer bir çıktı görmelisiniz:" - -msgid "You should see output such as:" -msgstr "Şuna benzer bir çıktı görmelisiniz:" - -msgid "" -"You will progressively ramp up to use up six instances, so make sure that " -"your cloud account has the appropriate quota." -msgstr "" -"Yavaş yavaş altı sunucu kullanmaya geçeceksiniz, bu yüzden bulut hesabınızın " -"bu kadar kotası olduğundan emin olun." - -msgid "Your SDK might call an instance a 'node' or 'server'." -msgstr "SDK'nız sunucuya 'düğüm' ya da 'makine' diyebilir." - -msgid "Your images and flavors will be different, of course." -msgstr "Tabi imaj ve nitelikleriniz farklı olacaktır." - -msgid "Your ssh key name" -msgstr "Ssh anahtar adınız" - -msgid "`Libcloud `_" -msgstr "`Libcloud `_" - -msgid "" -"`Micro-services `_ are an " -"important design pattern that helps achieve application modularity. " -"Separating logical application functions into independent services " -"simplifies maintenance and re-use. Decoupling components also makes it " -"easier to selectively scale individual components, as required. Further, " -"application modularity is a required feature of applications that scale out " -"well and are fault tolerant." -msgstr "" -"`Mikro servisler `_ uygulama " -"modülerliğini elde etmede yardımcı olan önemli tasarım kalıplarıdır. " -"Mantıksal uygulamaları bağımsız servislere ayırmak bakımı ve tekrar " -"kullanımı basitleştirir. Bileşimleri koparma bağımsız bileşenleri gerektiği " -"gibi ayrı ayrı ölçeklendirmeyi kolaylaştırır. Dahası iyi ölçeklenir ve " -"hataya dayanıklı uygulamalar için uygulama modülerliği gerekli bir " -"özelliktir." - -msgid "" -"`OpenStack Cloud SDK for Microsoft .NET 1.4.0.1 or later installed `_." -msgstr "" -"`Microsoft .NET 1.4.0.1 ve üstü için kurulu OpenStack Bulut SDK'sı `_." - -msgid "" -"`OpenStack Object Storage `_ (code-named swift) is open-source software that enables you to " -"create redundant, scalable data storage by using clusters of standardized " -"servers to store petabytes of accessible data. It is a long-term storage " -"system for large amounts of static data that you can retrieve, leverage, and " -"update. Unlike more traditional storage systems that you access through a " -"file system, you access Object Storage through an API." -msgstr "" -"`OpenStack Nesne Depolama `_ (kod adı swift) petabaytlarca erişlebilir veriyi depolamak için " -"standart sunucuların kümesini kullanarak yedekli, ölçeklenebilir veri deposu " -"oluşturmanızı sağlayan açık kaynak bir yazılımdır. Büyük miktarlarda statik " -"veriyi alabileceğiniz, kullanabileceğiniz ve güncelleyebileceğiniz uzun " -"dönem depolama sistemidir. Bir dosya sistemi üzerinden eriştiğiniz daha " -"geleneksel depolama sistemlerinin aksine Nesne Depolamaya API üzerinden " -"erişirsiniz." - -msgid "" -"`Phoenix Servers `_, named " -"for the mythical bird that is consumed by fire and rises from the ashes to " -"live again, make it easy to start over with new instances." -msgstr "" -"Ateş tarafından tüketilen ve küllerinden yeniden doğan efsanevi kuşun " -"ardından isimlendirilen `Phoenix Sunucuları `_ yeni sunucularla tekrar başlamayı kolaylaştırır." - -msgid "" -"`a recent version of gophercloud installed `_" -msgstr "" -"`gophercloud'un yeni bir sürümü kurulmuş `_" - -msgid "" -"`a recent version of php-opencloud installed `_." -msgstr "" -"`php-opencloud'un yeni bir sürümü kurulmuş `_." - -msgid "" -"`cloud-init `_ is a tool that " -"performs instance configuration tasks during the boot of a cloud instance, " -"and comes installed on most cloud images. :code:`ex_userdata`, which was " -"passed to :code:`create_node`, is the configuration data passed to cloud-" -"init." -msgstr "" -"`cloud-init `_ bir bulut " -"sunucusunun önyüklenmesi sırasındaki sunucu yapılandırma görevlerini " -"gerçekleştiren bir araçtır, ve çoğu bulut imajında kurulu olarak gelir. :" -"code:`create_node`'a verilen :code:`ex_userdata` cloud-init'e geçirilen " -"yapılandırma verisidir." - -msgid "" -"`fog 1.19 or higher installed `_ and working with ruby gems 1.9." -msgstr "" -"`fog 1.19 veya daha yenisi kurulu `_ ve ruby gems 1.9 ile çalışır durumda." - -msgid "`fog `_" -msgstr "`fog `_" - -msgid "`gophercloud `_" -msgstr "`gophercloud `_" - -msgid "" -"`jClouds 1.8 or higher installed `_." -msgstr "" -"`jClouds 1.8 veya daha yenisi kurulmuş `_." - -msgid "`jClouds `_" -msgstr "`jClouds `_" - -msgid "" -"`libcloud 0.15.1 or higher installed `_." -msgstr "" -"`libcloud 0.15.1 veya daha yenisi kurulmuş `_." - -msgid "`php-opencloud `_" -msgstr "`php-opencloud `_" - -msgid "" -"`pkgcloud 1.2 or higher installed `_." -msgstr "" -"`pkgcloud 1.2 veya daha yenisi kurulmuş `_." - -msgid "`pkgcloud `_" -msgstr "`pkgcloud `_" - -msgid "amqp://guest:guest@localhost:5672/" -msgstr "amqp://guest:guest@localhost:5672/" - -msgid "auth URL" -msgstr "yetkilendirme URL'si" - -msgid "cloud region" -msgstr "bulut bölgesi" - -msgid "conf.d, etc.d" -msgstr "conf.d, etc.d" - -msgid "" -"fog `does support OpenStack Orchestration `_." -msgstr "" -"fog `OpenStack Orkestrasyon'u desteklemiyor `_." - -msgid "" -"fog `supports `_ the OpenStack Networking API, but this section has not yet been " -"completed." -msgstr "" -"fog OpenStack Ağ API'sini `destekler `_ ama bu kısım henüz tamamlanmadı." - -msgid "http://gophercloud.io/" -msgstr "http://gophercloud.io/" - -msgid "http://localhost/" -msgstr "http://localhost/" - -msgid "" -"http://php-opencloud.readthedocs.org/en/latest/getting-started-with-" -"openstack.html" -msgstr "" -"http://php-opencloud.readthedocs.org/en/latest/getting-started-with-" -"openstack.html" - -msgid "" -"https://docs.openstack.org/cli-reference/common/" -"cli_install_openstack_command_line_clients.html#install-the-clients" -msgstr "" -"https://docs.openstack.org/cli-reference/common/" -"cli_install_openstack_command_line_clients.html#install-the-clients" - -msgid "" -"https://docs.openstack.org/cli-reference/common/" -"cli_set_environment_variables_using_openstack_rc.html" -msgstr "" -"https://docs.openstack.org/cli-reference/common/" -"cli_set_environment_variables_using_openstack_rc.html" - -msgid "https://docs.openstack.org/infra/shade/" -msgstr "https://docs.openstack.org/infra/shade/" - -msgid "" -"https://github.com/fog/fog-openstack/blob/master/docs/getting_started.md" -msgstr "" -"https://github.com/fog/fog-openstack/blob/master/docs/getting_started.md" - -msgid "" -"https://github.com/fog/fog/blob/master/lib/fog/openstack/docs/storage.md" -msgstr "" -"https://github.com/fog/fog/blob/master/lib/fog/openstack/docs/storage.md" - -msgid "" -"https://github.com/pkgcloud/pkgcloud/tree/master/docs/providers/openstack" -msgstr "" -"https://github.com/pkgcloud/pkgcloud/tree/master/docs/providers/openstack" - -msgid "https://jclouds.apache.org/guides/openstack/" -msgstr "https://jclouds.apache.org/guides/openstack/" - -msgid "" -"https://libcloud.readthedocs.org/en/latest/compute/drivers/openstack.html" -msgstr "" -"https://libcloud.readthedocs.org/en/latest/compute/drivers/openstack.html" - -msgid "https://libcloud.readthedocs.org/en/latest/storage/api.html" -msgstr "https://libcloud.readthedocs.org/en/latest/storage/api.html" - -msgid "https://www.nuget.org/packages/openstack.net" -msgstr "https://www.nuget.org/packages/openstack.net" - -msgid "internal worker traffic" -msgstr "dahili işçi trafiği" - -msgid "" -"jClouds supports the OpenStack Networking API, but section has not yet been " -"completed. Please see `this `_ in the meantime." -msgstr "" -"jClouds OpenStack Ağ API'sini destekler, ama bu kısım henüz tamamlanmadı. Bu " -"sırada lütfen `buraya `_ göz " -"atın." - -msgid "libcloud does not currently support OpenStack Orchestration." -msgstr "libcloud henüz OpenStack Orkestrasyon'u desteklemiyor." - -msgid "" -"libcloud support added 0.14: https://developer.rackspace.com/blog/libcloud-0-" -"dot-14-released/" -msgstr "" -"libcloud desteği eklendi 0.14: https://developer.rackspace.com/blog/" -"libcloud-0-dot-14-released/" - -msgid "node.js" -msgstr "node.js" - -msgid "password" -msgstr "parola" - -msgid "project ID or name (projects are also known as tenants)" -msgstr "proje kimliği veya ismi (projeler kiracılar olarak da bilinir)" - -msgid "public-facing web traffic" -msgstr "dışarı dönük web trafiği" - -msgid "sqlite:////tmp/sqlite.db" -msgstr "sqlite:////tmp/sqlite.db" - -msgid "the .NET SDK does not currently support OpenStack Orchestration." -msgstr ".NET SDK henüz OpenStack Orkestrasyon'u desteklemiyor." - -msgid "user name" -msgstr "kullanıcı adı" diff --git a/firstapp/source/networking.rst b/firstapp/source/networking.rst deleted file mode 100644 index 474fb9af5..000000000 --- a/firstapp/source/networking.rst +++ /dev/null @@ -1,912 +0,0 @@ -========== -Networking -========== - -.. todo:: Latter part of the chapter (LBaaS) needs to use Fractals app - entities for the examples. - -In previous chapters, all nodes that comprise the fractal application were -attached to the same network. - -This chapter introduces the Networking API. This will enable us to build -networking topologies that separate public traffic accessing the application -from traffic between the API and the worker components. We also introduce -load balancing for resilience, and create a secure back-end network for -communication between the database, web server, file storage, and worker -components. - -.. warning:: This section assumes that your cloud provider has implemented the - OpenStack Networking API (neutron). Users of clouds which have - implemented legacy networking (nova-network) will have access to - networking via the Compute API. Log in to the Horizon dashboard - and navigate to :guilabel:`Project->Access & Security->API Access`. - If you see a service endpoint for the Network API, your cloud - is most likely running the Networking API. If you are still in - doubt, ask your cloud provider for more information. - -.. only:: dotnet - - .. warning:: This section has not yet been completed for the .NET SDK - -.. only:: fog - - .. warning:: fog `supports - `_ - the OpenStack Networking API, but this section has - not yet been completed. - -.. only:: jclouds - - .. warning:: jClouds supports the OpenStack Networking API, but - section has not yet been completed. Please see `this - `_ in - the meantime. - -.. only:: libcloud - - .. warning:: Libcloud does not support the OpenStack Networking API. - -.. only:: pkgcloud - - .. warning:: Pkgcloud supports the OpenStack Networking API, but - this section has not been completed. - -.. only:: openstacksdk - - .. warning:: This section has not yet been completed for the OpenStack SDK. - -.. only:: phpopencloud - - .. warning:: PHP-OpenCloud supports the OpenStack Networking API, - but this section has not been completed. - -Work with the CLI -~~~~~~~~~~~~~~~~~ - -Because the SDKs do not fully support the OpenStack Networking API, this -section uses the command-line clients. - -Use this guide to install the 'openstack' command-line client: -https://docs.openstack.org/cli-reference/common/cli_install_openstack_command_line_clients.html#install-the-clients - -Use this guide to set up the necessary variables for your cloud in an -'openrc' file: -https://docs.openstack.org/cli-reference/common/cli_set_environment_variables_using_openstack_rc.html - -Ensure you have an openrc.sh file, source it, and then check that your -openstack client works: :: - - $ cat openrc.sh - export OS_USERNAME=your_auth_username - export OS_PASSWORD=your_auth_password - export OS_TENANT_NAME=your_project_name - export OS_AUTH_URL=http://controller:5000/v2.0 - export OS_REGION_NAME=your_region_name - - $ source openrc.sh - - $ openstack --version - 3.3.0 - -Networking segmentation -~~~~~~~~~~~~~~~~~~~~~~~ - -In traditional data centers, network segments are dedicated to -specific types of network traffic. - -The fractal application we are building contains these types of -network traffic: - -* public-facing web traffic -* API traffic -* internal worker traffic - -For performance reasons, it makes sense to have a network for each -tier, so that traffic from one tier does not "crowd out" other types -of traffic and cause the application to fail. In addition, having -separate networks makes controlling access to parts of the application -easier to manage, improving the overall security of the application. - -Prior to this section, the network layout for the Fractal application -would be similar to the following diagram: - -.. nwdiag:: - - nwdiag { - - network public { - address = "203.0.113.0/24" - tenant_router [ address = "203.0.113.20" ]; - } - - network tenant_network { - address = "10.0.0.0/24" - tenant_router [ address = "10.0.0.1" ]; - api [ address = "203.0.113.20, 10.0.0.3" ]; - webserver1 [ address = "203.0.113.21, 10.0.0.4" ]; - webserver2 [ address = "203.0.113.22, 10.0.0.5" ]; - worker1 [ address = "203.0.113.23, 10.0.0.6" ]; - worker2 [ address = "203.0.113.24, 10.0.0.7" ]; - } - } - -In this network layout, we assume that the OpenStack cloud in which -you have been building your application has a public network and tenant router -that was previously created by your cloud provider or by yourself, following -the instructions in the appendix. - -Many of the network concepts that are discussed in this section are -already present in the diagram above. A tenant router provides routing -and external access for the worker nodes, and floating IP addresses -are associated with each node in the Fractal application cluster to -facilitate external access. - -At the end of this section, you make some slight changes to the -networking topology by using the OpenStack Networking API to create -the 10.0.1.0/24 network to which the worker nodes attach. You use the -10.0.3.0/24 API network to attach the Fractal API servers. Web server -instances have their own 10.0.2.0/24 network, which is accessible by -fractal aficionados worldwide, by allocating floating IPs from the -public network. - -.. nwdiag:: - - nwdiag { - - network public { - address = "203.0.113.0/24" - tenant_router [ address = "203.0.113.60"]; - } - - network webserver_network{ - address = "10.0.2.0/24" - tenant_router [ address = "10.0.2.1"]; - webserver1 [ address = "203.0.113.21, 10.0.2.3"]; - webserver2 [ address = "203.0.113.22, 10.0.2.4"]; - } - network api_network { - address = "10.0.3.0/24" - tenant_router [ address = "10.0.3.1" ]; - api1 [ address = "10.0.3.3" ]; - api2 [ address = "10.0.3.4" ]; - } - - network worker_network { - address = "10.0.1.0/24" - tenant_router [ address = "10.0.1.1" ]; - worker1 [ address = "10.0.1.5" ]; - worker2 [ address = "10.0.1.6" ]; - } - } - -Introduction to tenant networking -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -With the OpenStack Networking API, the workflow for creating a network -topology that separates the public-facing Fractals app API from the -worker back end is as follows: - -* Create a network and subnet for the web server nodes. - -* Create a network and subnet for the worker nodes. This is the private data network. - -* Create a router for the private data network. - -* Allocate floating ips and assign them to the web server nodes. - -Create networks -~~~~~~~~~~~~~~~ - -Most cloud providers make a public network accessible to you. We will -attach a router to this public network to grant Internet access to our -instances. After also attaching this router to our internal networks, -we will allocate floating IPs from the public network for instances -which need to be accessed from the Internet. - -Confirm that we have a public network by listing the -networks our tenant has access to. The public network does not have to -be named public - it could be 'external', 'net04_ext' or something -else - the important thing is it exists and can be used to reach the -Internet. - -:: - - $ openstack network list - +--------------------------------------+------------------+--------------------------------------------------+ - | ID | Name | Subnets | - +--------------------------------------+------------------+--------------------------------------------------+ - | 27e6fa33-fd39-475e-b048-6ac924972a03 | public | b12293c9-a1f4-49e3-952f-136a5dd24980 | - +--------------------------------------+------------------+--------------------------------------------------+ - -Next, create a network and subnet for the workers. - -:: - - $ openstack network create worker_network - +---------------------------+--------------------------------------+ - | Field | Value | - +---------------------------+--------------------------------------+ - | admin_state_up | UP | - | availability_zone_hints | | - | availability_zones | | - | created_at | 2016-11-06T22:28:45Z | - | description | | - | headers | | - | id | 4d25ff64-eec3-4ab6-9029-f6d4b5a3e127 | - | ipv4_address_scope | None | - | ipv6_address_scope | None | - | mtu | 1450 | - | name | worker_network | - | port_security_enabled | True | - | project_id | a59a543373bc4b12b74f07355ad1cabe | - | provider:network_type | vxlan | - | provider:physical_network | None | - | provider:segmentation_id | 54 | - | revision_number | 3 | - | router:external | Internal | - | shared | False | - | status | ACTIVE | - | subnets | | - | tags | [] | - | updated_at | 2016-11-06T22:28:45Z | - +---------------------------+--------------------------------------+ - - - $ openstack subnet create worker_subnet --network worker_network --subnet-range 10.0.1.0/24 - +-------------------+--------------------------------------+ - | Field | Value | - +-------------------+--------------------------------------+ - | allocation_pools | 10.0.1.2-10.0.1.254 | - | cidr | 10.0.1.0/24 | - | created_at | 2016-11-06T22:34:47Z | - | description | | - | dns_nameservers | | - | enable_dhcp | True | - | gateway_ip | 10.0.1.1 | - | headers | | - | host_routes | | - | id | 383309b3-184d-4060-a151-a73dcb0606db | - | ip_version | 4 | - | ipv6_address_mode | None | - | ipv6_ra_mode | None | - | name | worker_subnet | - | network_id | 4d25ff64-eec3-4ab6-9029-f6d4b5a3e127 | - | project_id | a59a543373bc4b12b74f07355ad1cabe | - | revision_number | 2 | - | service_types | | - | subnetpool_id | None | - | updated_at | 2016-11-06T22:34:47Z | - +-------------------+--------------------------------------+ - - -Now, create a network and subnet for the web servers. - -:: - - $ openstack network create webserver_network - +---------------------------+--------------------------------------+ - | Field | Value | - +---------------------------+--------------------------------------+ - | admin_state_up | UP | - | availability_zone_hints | | - | availability_zones | | - | created_at | 2016-11-06T22:36:19Z | - | description | | - | headers | | - | id | 2410c262-6c27-4e99-8c31-045b60499a01 | - | ipv4_address_scope | None | - | ipv6_address_scope | None | - | mtu | 1450 | - | name | webserver_network | - | port_security_enabled | True | - | project_id | a59a543373bc4b12b74f07355ad1cabe | - | provider:network_type | vxlan | - | provider:physical_network | None | - | provider:segmentation_id | 96 | - | revision_number | 3 | - | router:external | Internal | - | shared | False | - | status | ACTIVE | - | subnets | | - | tags | [] | - | updated_at | 2016-11-06T22:36:19Z | - +---------------------------+--------------------------------------+ - - $ openstack subnet create webserver_subnet --network webserver_network --subnet-range 10.0.2.0/24 - +-------------------+--------------------------------------+ - | Field | Value | - +-------------------+--------------------------------------+ - | allocation_pools | 10.0.2.2-10.0.2.254 | - | cidr | 10.0.2.0/24 | - | created_at | 2016-11-06T22:37:47Z | - | description | | - | dns_nameservers | | - | enable_dhcp | True | - | gateway_ip | 10.0.2.1 | - | headers | | - | host_routes | | - | id | 5878afa5-8f1d-4de5-8018-530044a49934 | - | ip_version | 4 | - | ipv6_address_mode | None | - | ipv6_ra_mode | None | - | name | webserver_subnet | - | network_id | 2410c262-6c27-4e99-8c31-045b60499a01 | - | project_id | a59a543373bc4b12b74f07355ad1cabe | - | revision_number | 2 | - | service_types | | - | subnetpool_id | None | - | updated_at | 2016-11-06T22:37:47Z | - +-------------------+--------------------------------------+ - - -Next, create a network and subnet for the API servers. - -:: - - $ openstack network create api_network - +---------------------------+--------------------------------------+ - | Field | Value | - +---------------------------+--------------------------------------+ - | admin_state_up | UP | - | availability_zone_hints | | - | availability_zones | | - | created_at | 2016-11-06T22:38:51Z | - | description | | - | headers | | - | id | 8657f3a3-6e7d-40a1-a979-1a8c54d5e434 | - | ipv4_address_scope | None | - | ipv6_address_scope | None | - | mtu | 1450 | - | name | api_network | - | port_security_enabled | True | - | project_id | a59a543373bc4b12b74f07355ad1cabe | - | provider:network_type | vxlan | - | provider:physical_network | None | - | provider:segmentation_id | 64 | - | revision_number | 3 | - | router:external | Internal | - | shared | False | - | status | ACTIVE | - | subnets | | - | tags | [] | - | updated_at | 2016-11-06T22:38:51Z | - +---------------------------+--------------------------------------+ - - $ openstack subnet create api_subnet --network api_network --subnet-range 10.0.3.0/24 - +-------------------+--------------------------------------+ - | Field | Value | - +-------------------+--------------------------------------+ - | allocation_pools | 10.0.3.2-10.0.3.254 | - | cidr | 10.0.3.0/24 | - | created_at | 2016-11-06T22:40:15Z | - | description | | - | dns_nameservers | | - | enable_dhcp | True | - | gateway_ip | 10.0.3.1 | - | headers | | - | host_routes | | - | id | 614e7801-eb35-45c6-8e49-da5bdc9161f5 | - | ip_version | 4 | - | ipv6_address_mode | None | - | ipv6_ra_mode | None | - | name | api_subnet | - | network_id | 8657f3a3-6e7d-40a1-a979-1a8c54d5e434 | - | project_id | a59a543373bc4b12b74f07355ad1cabe | - | revision_number | 2 | - | service_types | | - | subnetpool_id | None | - | updated_at | 2016-11-06T22:40:15Z | - +-------------------+--------------------------------------+ - - -Now that you have got the networks created, go ahead and create two -Floating IPs, for web servers. Ensure that you replace 'public' with -the name of the public/external network offered by your cloud provider. - -:: - - $ openstack floating ip create public - +---------------------+--------------------------------------+ - | Field | Value | - +---------------------+--------------------------------------+ - | created_at | 2016-11-06T22:47:30Z | - | description | | - | fixed_ip_address | None | - | floating_ip_address | 172.24.4.2 | - | floating_network_id | 27e6fa33-fd39-475e-b048-6ac924972a03 | - | headers | | - | id | 820385df-36a7-415d-955c-6ff662fdb796 | - | port_id | None | - | project_id | a59a543373bc4b12b74f07355ad1cabe | - | revision_number | 1 | - | router_id | None | - | status | DOWN | - | updated_at | 2016-11-06T22:47:30Z | - +---------------------+--------------------------------------+ - - - $ openstack floating ip create public - +---------------------+--------------------------------------+ - | Field | Value | - +---------------------+--------------------------------------+ - | created_at | 2016-11-06T22:48:45Z | - | description | | - | fixed_ip_address | None | - | floating_ip_address | 172.24.4.12 | - | floating_network_id | 27e6fa33-fd39-475e-b048-6ac924972a03 | - | headers | | - | id | 3d9f1591-a31e-4684-8346-f4bb33a176b0 | - | port_id | None | - | project_id | a59a543373bc4b12b74f07355ad1cabe | - | revision_number | 1 | - | router_id | None | - | status | DOWN | - | updated_at | 2016-11-06T22:48:45Z | - +---------------------+--------------------------------------+ - - -.. note:: The world is running out of IPv4 addresses. If you get the - "No more IP addresses available on network" error, - contact your cloud administrator. You may also want to ask - about IPv6 :) - - -Connecting to the Internet -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Most instances require access to the Internet. The instances in your -Fractals app are no exception! Add routers to pass traffic between the -various networks that you use. - -:: - - $ openstack router create project_router - +-------------------------+--------------------------------------+ - | Field | Value | - +-------------------------+--------------------------------------+ - | admin_state_up | UP | - | availability_zone_hints | | - | availability_zones | | - | created_at | 2016-11-06T22:49:59Z | - | description | | - | distributed | False | - | external_gateway_info | null | - | flavor_id | None | - | ha | False | - | headers | | - | id | e11eba23-961c-43d7-8da0-561abdad880c | - | name | project_router | - | project_id | a59a543373bc4b12b74f07355ad1cabe | - | revision_number | 2 | - | routes | | - | status | ACTIVE | - | updated_at | 2016-11-06T22:49:59Z | - +-------------------------+--------------------------------------+ - - -Specify an external gateway for your router to tell OpenStack which -network to use for Internet access. - -:: - - $ openstack router set project_router --external-gateway public - Set gateway for router project_router - - $ openstack router show project_router - +-------------------------+-------------------------------------------------------------------------+ - | Field | Value | - +-------------------------+-------------------------------------------------------------------------+ - | admin_state_up | UP | - | availability_zone_hints | | - | availability_zones | nova | - | created_at | 2016-11-06T22:49:59Z | - | description | | - | distributed | False | - | external_gateway_info | {"network_id": "27e6fa33-fd39-475e-b048-6ac924972a03", "enable_snat": | - | | true, "external_fixed_ips": [{"subnet_id": | - | | "d02006a5-3d10-41f1-a349-6024af41cda0", "ip_address": "172.24.4.13"}, | - | | {"subnet_id": "b12293c9-a1f4-49e3-952f-136a5dd24980", "ip_address": | - | | "2001:db8::9"}]} | - | flavor_id | None | - | ha | False | - | id | e11eba23-961c-43d7-8da0-561abdad880c | - | name | project_router | - | project_id | a59a543373bc4b12b74f07355ad1cabe | - | revision_number | 5 | - | routes | | - | status | ACTIVE | - | updated_at | 2016-11-06T22:53:04Z | - +-------------------------+-------------------------------------------------------------------------+ - -Now, attach your router to the worker, API, and web server subnets. - -:: - - $ openstack router add subnet project_router worker_subnet - - $ openstack router add subnet project_router api_subnet - - $ openstack router add subnet project_router webserver_subnet - -Booting a worker ----------------- - -Now that you have prepared the networking infrastructure, you can go -ahead and boot an instance on it. Ensure you use appropriate flavor -and image values for your cloud - see :doc:`getting_started` if you have not -already. - -.. todo:: Show how to create an instance in libcloud using the network - we just created. - libcloud does not yet support this. - -:: - - $ nova boot --flavor m1.tiny --image cirros-0.3.3-x86_64-disk --nic net-id=953224c6-c510-45c5-8a29-37deffd3d78e worker1 - +--------------------------------------+-----------------------------------------------------------------+ - | Property | Value | - +--------------------------------------+-----------------------------------------------------------------+ - | OS-DCF:diskConfig | MANUAL | - | OS-EXT-AZ:availability_zone | nova | - | OS-EXT-STS:power_state | 0 | - | OS-EXT-STS:task_state | scheduling | - | OS-EXT-STS:vm_state | building | - | OS-SRV-USG:launched_at | - | - | OS-SRV-USG:terminated_at | - | - | accessIPv4 | | - | accessIPv6 | | - | adminPass | 9vU8KSY4oDht | - | config_drive | | - | created | 2015-03-30T05:26:04Z | - | flavor | m1.tiny (1) | - | hostId | | - | id | 9e188a47-a246-463e-b445-027d6e2966e0 | - | image | cirros-0.3.3-x86_64-disk (ad605ff9-4593-4048-900b-846d6401c193) | - | key_name | - | - | metadata | {} | - | name | worker1 | - | os-extended-volumes:volumes_attached | [] | - | progress | 0 | - | security_groups | default | - | status | BUILD | - | tenant_id | f77bf3369741408e89d8f6fe090d29d2 | - | updated | 2015-03-30T05:26:04Z | - | user_id | a61292a5691d4c6c831b7a8f07921261 | - +--------------------------------------+-----------------------------------------------------------------+ - -Load balancing -~~~~~~~~~~~~~~ - -After separating the Fractal worker nodes into their own networks, the -next logical step is to move the Fractal API service to a load -balancer, so that multiple API workers can handle requests. By using a -load balancer, the API service can be scaled out in a similar fashion -to the worker nodes. - -Neutron LbaaS API ------------------ - -.. note:: This section is based on the Neutron LBaaS API version 1.0 - https://docs.openstack.org/admin-guide/networking_adv-features.html#basic-load-balancer-as-a-service-operations - -.. todo:: libcloud support added 0.14: - https://developer.rackspace.com/blog/libcloud-0-dot-14-released/ - - this section needs rewriting to use the libcloud API - -The OpenStack Networking API provides support for creating -loadbalancers, which can be used to scale the Fractal app web service. -In the following example, we create two compute instances via the -Compute API, then instantiate a load balancer that will use a virtual -IP (VIP) for accessing the web service offered by the two compute -nodes. The end result will be the following network topology: - -.. nwdiag:: - - nwdiag { - - network public { - address = "203.0.113.0/24" - tenant_router [ address = "203.0.113.60" ]; - loadbalancer [ address = "203.0.113.63" ]; - } - - network webserver_network { - address = "10.0.2.0/24" - tenant_router [ address = "10.0.2.1"]; - webserver1 [ address = "203.0.113.21, 10.0.2.3"]; - webserver2 [ address = "203.0.113.22, 10.0.2.4"]; - } - } - -libcloud support added 0.14: -https://developer.rackspace.com/blog/libcloud-0-dot-14-released/ - -Start by looking at what is already in place. - -:: - - $ openstack network list - +--------------------------------------+-------------------+---------------------------------------+ - | ID | Name | Subnets | - +--------------------------------------+-------------------+---------------------------------------+ - | 2410c262-6c27-4e99-8c31-045b60499a01 | webserver_network | 5878afa5-8f1d-4de5-8018-530044a49934 | - | 27e6fa33-fd39-475e-b048-6ac924972a03 | public | b12293c9-a1f4-49e3-952f-136a5dd24980, | - | | | d02006a5-3d10-41f1-a349-6024af41cda0 | - +--------------------------------------+-------------------+---------------------------------------+ - -Go ahead and create two instances. - -:: - - $ nova boot --flavor 1 --image 53ff0943-99ba-42d2-a10d-f66656372f87 --min-count 2 test - +--------------------------------------+-----------------------------------------------------------------+ - | Property | Value | - +--------------------------------------+-----------------------------------------------------------------+ - | OS-DCF:diskConfig | MANUAL | - | OS-EXT-AZ:availability_zone | nova | - | OS-EXT-STS:power_state | 0 | - | OS-EXT-STS:task_state | scheduling | - | OS-EXT-STS:vm_state | building | - | OS-SRV-USG:launched_at | - | - | OS-SRV-USG:terminated_at | - | - | accessIPv4 | | - | accessIPv6 | | - | adminPass | z84zWFCcpppH | - | config_drive | | - | created | 2015-04-02T02:45:09Z | - | flavor | m1.tiny (1) | - | hostId | | - | id | 8d579f4a-116d-46b9-8db3-aa55b76f76d8 | - | image | cirros-0.3.3-x86_64-disk (53ff0943-99ba-42d2-a10d-f66656372f87) | - | key_name | - | - | metadata | {} | - | name | test-1 | - | os-extended-volumes:volumes_attached | [] | - | progress | 0 | - | security_groups | default | - | status | BUILD | - | tenant_id | 0cb06b70ef67424b8add447415449722 | - | updated | 2015-04-02T02:45:09Z | - | user_id | d95381d331034e049727e2413efde39f | - +--------------------------------------+-----------------------------------------------------------------+ - -Confirm that they were added: - -:: - - $ nova list - +--------------------------------------+--------+--------+------------+-------------+------------------+ - | ID | Name | Status | Task State | Power State | Networks | - +--------------------------------------+--------+--------+------------+-------------+------------------+ - | 8d579f4a-116d-46b9-8db3-aa55b76f76d8 | test-1 | ACTIVE | - | Running | private=10.0.2.4 | - | 8fadf892-b6e9-44f4-b132-47c6762ffa2c | test-2 | ACTIVE | - | Running | private=10.0.2.3 | - +--------------------------------------+--------+--------+------------+-------------+------------------+ - -Look at which ports are available: - -:: - - $ openstack port list - +--------------------------------------+------+-------------------+--------------------------------------------+ - | ID | Name | MAC Address | Fixed IP Addresses | - +--------------------------------------+------+-------------------+--------------------------------------------+ - | 11b38c90-f55e-41a7-b68b-0d434d66bfa2 | | fa:16:3e:21:95:a1 | ip_address='10.0.0.1', subnet_id='e7f75523 | - | | | | -ae4b-4611-85a3-07efa2e1ba0f' | - | 523331cf-5636-4298-a14c-f545bb32abcf | | fa:16:3e:f8:a1:81 | ip_address='10.0.0.2', subnet_id='e7f75523 | - | | | | -ae4b-4611-85a3-07efa2e1ba0f' | - | | | | ip_address='2001:db8:8000:0:f816:3eff:fef8 | - | | | | :a181', subnet_id='f8628fd8-8d61-43e2-9dc8 | - | | | | -a03d25443b7d' | - | cbba0f37-c1a0-4fc8-8722-68e42de7df16 | | fa:16:3e:39:a6:18 | ip_address='2001:db8:8000::1', subnet_id=' | - | | | | f8628fd8-8d61-43e2-9dc8-a03d25443b7d' | - +--------------------------------------+------+-------------------+--------------------------------------------+ - - - -Next, create additional floating IPs. Specify the fixed IP addresses -they should point to and the ports that they should use: - -:: - - $ openstack floating ip create public --fixed-ip-address 10.0.0.2 --port 523331cf-5636-4298-a14c-f545bb32abcf - +---------------------+--------------------------------------+ - | Field | Value | - +---------------------+--------------------------------------+ - | created_at | 2016-11-06T23:23:29Z | - | description | | - | fixed_ip_address | 10.0.0.2 | - | floating_ip_address | 172.24.4.2 | - | floating_network_id | 27e6fa33-fd39-475e-b048-6ac924972a03 | - | headers | | - | id | 0ed15644-4290-4adf-91d4-5713eea895e5 | - | port_id | 523331cf-5636-4298-a14c-f545bb32abcf | - | project_id | 3d2db0593c8045a392fd18385b401b5b | - | revision_number | 1 | - | router_id | 309d1402-a373-4022-9ab8-6824aad1a415 | - | status | DOWN | - | updated_at | 2016-11-06T23:23:29Z | - +---------------------+--------------------------------------+ - - $ openstack floating ip create public --fixed-ip-address 10.0.2.4 --port 462c92c6-941c-48ab-8cca-3c7a7308f580 - +---------------------+--------------------------------------+ - | Field | Value | - +---------------------+--------------------------------------+ - | created_at | 2016-11-06T23:25:26Z | - | description | | - | fixed_ip_address | 10.0.0.1 | - | floating_ip_address | 172.24.4.8 | - | floating_network_id | 27e6fa33-fd39-475e-b048-6ac924972a03 | - | headers | | - | id | 68082405-82f2-4072-b5c3-7047df527a8a | - | port_id | 11b38c90-f55e-41a7-b68b-0d434d66bfa2 | - | project_id | 3d2db0593c8045a392fd18385b401b5b | - | revision_number | 1 | - | router_id | 309d1402-a373-4022-9ab8-6824aad1a415 | - | status | DOWN | - | updated_at | 2016-11-06T23:25:26Z | - +---------------------+--------------------------------------+ - - -You are ready to create members for the load balancer pool, which -reference the floating IPs: - -:: - - $ neutron lb-member-create --address 203.0.113.21 --protocol-port 80 mypool - Created a new member: - +--------------------+--------------------------------------+ - | Field | Value | - +--------------------+--------------------------------------+ - | address | 203.0.113.21 | - | admin_state_up | True | - | id | 679966a9-f719-4df0-86cf-3a24d0433b38 | - | pool_id | 600496f0-196c-431c-ae35-a0af9bb01d32 | - | protocol_port | 80 | - | status | PENDING_CREATE | - | status_description | | - | tenant_id | 0cb06b70ef67424b8add447415449722 | - | weight | 1 | - +--------------------+--------------------------------------+ - - $ neutron lb-member-create --address 203.0.113.22 --protocol-port 80 mypool - Created a new member: - +--------------------+--------------------------------------+ - | Field | Value | - +--------------------+--------------------------------------+ - | address | 203.0.113.22 | - | admin_state_up | True | - | id | f3ba0605-4926-4498-b86d-51002892e93a | - | pool_id | 600496f0-196c-431c-ae35-a0af9bb01d32 | - | protocol_port | 80 | - | status | PENDING_CREATE | - | status_description | | - | tenant_id | 0cb06b70ef67424b8add447415449722 | - | weight | 1 | - +--------------------+--------------------------------------+ - -You should be able to see them in the member list: - -:: - - $ neutron lb-member-list - +--------------------------------------+--------------+---------------+--------+----------------+--------+ - | id | address | protocol_port | weight | admin_state_up | status | - +--------------------------------------+--------------+---------------+--------+----------------+--------+ - | 679966a9-f719-4df0-86cf-3a24d0433b38 | 203.0.113.21 | 80 | 1 | True | ACTIVE | - | f3ba0605-4926-4498-b86d-51002892e93a | 203.0.113.22 | 80 | 1 | True | ACTIVE | - +--------------------------------------+--------------+---------------+--------+----------------+--------+ - -Now, create a health monitor that will ensure that members of the -load balancer pool are active and able to respond to requests. If a -member in the pool dies or is unresponsive, the member is removed from -the pool so that client requests are routed to another active member. - -:: - - $ neutron lb-healthmonitor-create --delay 3 --type HTTP --max-retries 3 --timeout 3 - Created a new health_monitor: - +----------------+--------------------------------------+ - | Field | Value | - +----------------+--------------------------------------+ - | admin_state_up | True | - | delay | 3 | - | expected_codes | 200 | - | http_method | GET | - | id | 663345e6-2853-43b2-9ccb-a623d5912345 | - | max_retries | 3 | - | pools | | - | tenant_id | 0cb06b70ef67424b8add447415449722 | - | timeout | 3 | - | type | HTTP | - | url_path | / | - +----------------+--------------------------------------+ - $ neutron lb-healthmonitor-associate 663345e6-2853-43b2-9ccb-a623d5912345 mypool - Associated health monitor 663345e6-2853-43b2-9ccb-a623d5912345 - -Now create a virtual IP that will be used to direct traffic between -the various members of the pool: - -:: - - $ neutron lb-vip-create --name myvip --protocol-port 80 --protocol HTTP --subnet-id 47fd3ff1-ead6-4d23-9ce6-2e66a3dae425 mypool - Created a new vip: - +---------------------+--------------------------------------+ - | Field | Value | - +---------------------+--------------------------------------+ - | address | 203.0.113.63 | - | admin_state_up | True | - | connection_limit | -1 | - | description | | - | id | f0bcb66e-5eeb-447b-985e-faeb67540c2f | - | name | myvip | - | pool_id | 600496f0-196c-431c-ae35-a0af9bb01d32 | - | port_id | bc732f81-2640-4622-b624-993a5ae185c5 | - | protocol | HTTP | - | protocol_port | 80 | - | session_persistence | | - | status | PENDING_CREATE | - | status_description | | - | subnet_id | 47fd3ff1-ead6-4d23-9ce6-2e66a3dae425 | - | tenant_id | 0cb06b70ef67424b8add447415449722 | - +---------------------+--------------------------------------+ - -And confirm it is in place: - -:: - - $ neutron lb-vip-list - +--------------------------------------+-------+--------------+----------+----------------+--------+ - | id | name | address | protocol | admin_state_up | status | - +--------------------------------------+-------+--------------+----------+----------------+--------+ - | f0bcb66e-5eeb-447b-985e-faeb67540c2f | myvip | 203.0.113.63 | HTTP | True | ACTIVE | - +--------------------------------------+-------+--------------+----------+----------------+--------+ - -Now, look at the big picture. - -Final result -~~~~~~~~~~~~ - -With the addition of the load balancer, the Fractal app's networking -topology now reflects the modular nature of the application itself. - - -.. nwdiag:: - - nwdiag { - - network public { - address = "203.0.113.0/24" - tenant_router [ address = "203.0.113.60"]; - loadbalancer [ address = "203.0.113.63" ]; - } - - network webserver_network{ - address = "10.0.2.0/24" - tenant_router [ address = "10.0.2.1"]; - webserver1 [ address = "203.0.113.21, 10.0.2.3"]; - webserver2 [ address = "203.0.113.22, 10.0.2.4"]; - } - network api_network { - address = "10.0.3.0/24" - tenant_router [ address = "10.0.3.1" ]; - api1 [ address = "10.0.3.3" ]; - api2 [ address = "10.0.3.4" ]; - } - - network worker_network { - address = "10.0.1.0/24" - tenant_router [ address = "10.0.1.1" ]; - worker1 [ address = "10.0.1.5" ]; - worker2 [ address = "10.0.1.6" ]; - } - } - - -Next steps -~~~~~~~~~~ - -You should now be fairly confident working with the Network API. To -see calls that we did not cover, see the volume documentation of your -SDK, or try one of these tutorial steps: - -* :doc:`/advice`: Get advice about operations. -* :doc:`/craziness`: Learn some crazy things that you might not think to do ;) diff --git a/firstapp/source/orchestration.rst b/firstapp/source/orchestration.rst deleted file mode 100644 index 73b377e88..000000000 --- a/firstapp/source/orchestration.rst +++ /dev/null @@ -1,501 +0,0 @@ -============= -Orchestration -============= - -This chapter explains the importance of durability and scalability for -your cloud-based applications. In most cases, really achieving these -qualities means automating tasks such as scaling and other operational -tasks. - -The Orchestration service provides a template-based way to describe a -cloud application, then coordinates running the needed OpenStack API -calls to run cloud applications. The templates enable you to create -most OpenStack resource types, such as instances, networking -information, volumes, security groups, and even users. It also provides -more advanced functionality, such as instance high availability, -instance auto-scaling, and nested stacks. - -The OpenStack Orchestration API uses the stacks, resources, and templates -constructs. - -You create stacks from templates, which contain resources. Resources are an -abstraction in the HOT (Heat Orchestration Template) template language, which -enables you to define different cloud resources by setting the :code:`type` -attribute. - -For example, you might use the Orchestration API to create two compute -instances by creating a stack and by passing a template to the Orchestration -API. That template contains two resources with the :code:`type` attribute set -to :code:`OS::Nova::Server`. - -That example is simplistic, of course, but the flexibility of the resource -object enables the creation of templates that contain all the required cloud -infrastructure to run an application, such as load balancers, block storage -volumes, compute instances, networking topology, and security policies. - -.. note:: The Orchestration service is not deployed by default in every cloud. - If these commands do not work, it means the Orchestration API is not - available; ask your support team for assistance. - -This section introduces the -`HOT templating language `_, -and takes you through some common OpenStack Orchestration calls. - -In previous sections, you used your SDK to programmatically interact with -OpenStack. In this section, you use the 'heat' command-line client to access -the Orchestration API directly through template files. - -Install the 'heat' command-line client by following this guide: -https://docs.openstack.org/cli-reference/common/cli_install_openstack_command_line_clients.html#install-the-clients - -Use this guide to set up the necessary variables for your cloud in an -'openrc' file: -https://docs.openstack.org/cli-reference/common/cli_set_environment_variables_using_openstack_rc.html - -.. only:: dotnet - - .. warning:: the .NET SDK does not currently support OpenStack Orchestration. - -.. only:: fog - - .. note:: fog `does support OpenStack Orchestration - `_. - -.. only:: jclouds - - .. warning:: Jclouds does not currently support OpenStack Orchestration. - See this `bug report `_. - -.. only:: libcloud - - .. warning:: libcloud does not currently support OpenStack Orchestration. - -.. only:: pkgcloud - - .. note:: Pkgcloud supports OpenStack Orchestration :D:D:D but this section - is `not written yet `_ - -.. only:: openstacksdk - - .. warning:: The OpenStack SDK does not currently support OpenStack Orchestration. - -.. only:: phpopencloud - - .. note:: PHP-opencloud supports OpenStack Orchestration :D:D:D but this section is not written yet. - -HOT templating language ------------------------ - -To learn about the template syntax for OpenStack Orchestration, how to -create basic templates, and their inputs and outputs, see -`Heat Orchestration Template (HOT) Guide `_. - -Work with stacks: Basics ------------------------- - -**Stack create** - -The -`hello_faafo `_ Hot template demonstrates -how to create a compute instance that builds and runs the Fractal application -as an all-in-one installation. - -You pass in these configuration settings as parameters: - -- The flavor -- Your ssh key name -- The unique identifier (UUID) of the image - -.. code-block:: console - - $ wget https://opendev.org/openstack/api-site/raw/firstapp/samples/heat/hello_faafo.yaml - $ openstack stack create -t hello_faafo.yaml \ - --parameter flavor=m1.small\;key_name=test\;image_id=5bbe4073-90c0-4ec9-833c-092459cc4539 hello_faafo - +---------------------+-----------------------------------------------------------------------+ - | Field | Value | - +---------------------+-----------------------------------------------------------------------+ - | id | 0db2c026-fb9a-4849-b51d-b1df244096cd | - | stack_name | hello_faafo | - | description | A template to bring up the faafo application as an all in one install | - | | | - | creation_time | 2015-04-01T03:20:25 | - | updated_time | None | - | stack_status | CREATE_IN_PROGRESS | - | stack_status_reason | | - +---------------------+-----------------------------------------------------------------------+ - -The stack automatically creates a Nova instance, as follows: - -.. code-block:: console - - $ nova list - +--------------------------------------+---------------------------------+--------+------------+-------------+------------------+ - | ID | Name | Status | Task State | Power State | Networks | - +--------------------------------------+---------------------------------+--------+------------+-------------+------------------+ - | 9bdf0e2f-415e-43a0-90ea-63a5faf86cf9 | hello_faafo-server-dwmwhzfxgoor | ACTIVE | - | Running | private=10.0.0.3 | - +--------------------------------------+---------------------------------+--------+------------+-------------+------------------+ - -Verify that the stack was successfully created: - -.. code-block:: console - - $ openstack stack list - +--------------------------------------+-------------+-----------------+---------------------+--------------+ - | ID | Stack Name | Stack Status | Creation Time | Updated Time | - +--------------------------------------+-------------+-----------------+---------------------+--------------+ - | 0db2c026-fb9a-4849-b51d-b1df244096cd | hello_faafo | CREATE_COMPLETE | 2015-04-01T03:20:25 | None | - +--------------------------------------+-------------+-----------------+---------------------+--------------+ - -The stack reports an initial :code:`CREATE_IN_PROGRESS` status. When all -software is installed, the status changes to :code:`CREATE_COMPLETE`. - -You might have to run the :command:`openstack stack list` command a few -times before the stack creation is complete. - -**Show information about the stack** - -Get more information about the stack: - -.. code-block:: console - - $ openstack stack show hello_faafo - -The `outputs` property shows the URL through which you can access the Fractal -application. You can SSH into the instance. - -**Remove the stack** - -.. code-block:: console - - $ openstack stack delete hello_faafo - Are you sure you want to delete this stack(s) [y/N]? - -Verify the nova instance was deleted when the stack was removed: - -.. code-block:: console - - $ nova list - +----+------+--------+------------+-------------+----------+ - | ID | Name | Status | Task State | Power State | Networks | - +----+------+--------+------------+-------------+----------+ - +----+------+--------+------------+-------------+----------+ - -While this stack starts a single instance that builds and runs the Fractal -application as an all-in-one installation, you can make very complicated -templates that impact dozens of instances or that add and remove instances on -demand. Continue to the next section to learn more. - -Work with stacks: Advanced - -With the Orchestration API, the Fractal application can create an auto-scaling -group for all parts of the application, to dynamically provision more compute -resources during periods of heavy utilization, and also terminate compute -instances to scale down, as demand decreases. - -To learn about auto-scaling with the Orchestration API, read these articles: - -* https://superuser.openstack.org/articles/simple-auto-scaling-environment-with-heat -* https://superuser.openstack.org/articles/understanding-openstack-heat-auto-scaling - -Initially, the focus is on scaling the workers because they consume the most -resources. - -The example template depends on the ceilometer project, which is part of the -`Telemetry service `_. - -.. note:: The Telemetry service is not deployed by default in every cloud. - If the ceilometer commands do not work, this example does not work; - ask your support team for assistance. - -To better understand how the template works, use this guide to install the -'ceilometer' command-line client: - -* https://docs.openstack.org/cli-reference/common/cli_install_openstack_command_line_clients.html#install-the-clients - -To set up the necessary variables for your cloud in an 'openrc' file, use this -guide: - -* https://docs.openstack.org/cli-reference/common/cli_set_environment_variables_using_openstack_rc.html - -The Telemetry service uses meters to measure a given aspect of a resources -usage. The meter that we are interested in is the :code:`cpu_util` meter. - -The value of a meter is regularly sampled and saved with a timestamp. - -These saved samples are aggregated to produce a statistic. The statistic that -we are interested in is **avg**: the average of the samples over a given period. - -We are interested because the Telemetry service supports alarms: an alarm is -fired when our average statistic breaches a configured threshold. When the -alarm fires, an associated action is performed. - -The stack we will be building uses the firing of alarms to control the -addition or removal of worker instances. - -To verify that ceilometer is installed, list the known meters: - -.. code-block:: console - - $ ceilometer meter-list - -This command returns a very long list of meters. Once a meter is created, it -is never thrown away! - -Launch the stack with auto-scaling workers: - -.. code-block:: console - - $ wget https://opendev.org/openstack/api-site/raw/firstapp/samples/heat/faafo_autoscaling_workers.yaml - $ openstack stack create -t faafo_autoscaling_workers.yaml \ - --parameters flavor=m1.small\;key_name=test\;image_id=5bbe4073-90c0-4ec9-833c-092459cc4539 \ - faafo_autoscaling_workers - +---------------------+-----------------------------------------------------------------------+ - | Field | Value | - +---------------------+-----------------------------------------------------------------------+ - | id | 0db2c026-fb9a-4849-b51d-b1df244096cd | - | stack_name | faafo_autoscaling_workers | - | description | A template to bring up the faafo application as an all in one install | - | | | - | creation_time | 2015-11-17T05:12:06 | - | updated_time | None | - | stack_status | CREATE_IN_PROGRESS | - | stack_status_reason | | - +---------------------+-----------------------------------------------------------------------+ - - -As before, pass in configuration settings as parameters. - -And as before, the stack takes a few minutes to build! - -Wait for it to reach the :code:`CREATE_COMPLETE` status: - -.. code-block:: console - - $ openstack stack list - +--------------------------------------+---------------------------+-----------------+---------------------+--------------+ - | ID | Stack Name | Stack Status | Creation Time | Updated Time | - +--------------------------------------+---------------------------+-----------------+---------------------+--------------+ - | 0db2c026-fb9a-4849-b51d-b1df244096cd | faafo_autoscaling_workers | CREATE_COMPLETE | 2015-11-17T05:12:06 | None | - +--------------------------------------+---------------------------+-----------------+---------------------+--------------+ - -Run the :code:`nova list` command. This template created three instances: - -.. code-block:: console - - $ nova list - +--------------------------------------+----------+--------+------------+-------------+----------------------+ - | ID | Name | Status | Task State | Power State | Networks | - +--------------------------------------+----------+--------+------------+-------------+----------------------+ - | 0de89b0a-5bfd-497b-bfa2-c13f6ef7a67e | api | ACTIVE | - | Running | public=115.146.89.75 | - | a6b9b334-e8ba-4c56-ab53-cacfc6f3ad43 | services | ACTIVE | - | Running | public=115.146.89.74 | - | 10122bfb-881b-4122-9955-7e801dfc5a22 | worker | ACTIVE | - | Running | public=115.146.89.80 | - +--------------------------------------+----------+--------+------------+-------------+----------------------+ - -Note that the worker instance is part of an :code:`OS::Heat::AutoScalingGroup`. - -Confirm that the stack created two alarms: - -.. code-block:: console - - $ ceilometer alarm-list - +--------------------------------------+---------------------------------------+-------+----------+---------+------------+--------------------------------+------------------+ - | Alarm ID | Name | State | Severity | Enabled | Continuous | Alarm condition | Time constraints | - +--------------------------------------+---------------------------------------+-------+----------+---------+------------+--------------------------------+------------------+ - | 2bc8433f-9f8a-4c2c-be88-d841d9de1506 | testFaafo-cpu_alarm_low-torkcwquons4 | ok | low | True | True | cpu_util < 15.0 during 1 x 60s | None | - | 7755cc9a-26f3-4e2b-a9af-a285ec8524da | testFaafo-cpu_alarm_high-qqtbvk36l6nq | ok | low | True | True | cpu_util > 90.0 during 1 x 60s | None | - +--------------------------------------+---------------------------------------+-------+----------+---------+------------+--------------------------------+------------------+ - -.. note:: If either alarm reports the :code:`insufficient data` state, the - default sampling period of the stack is probably too low for your - cloud; ask your support team for assistance. You can set the - period through the :code:`period` parameter of the stack to match your - clouds requirements. - -Use the stack ID to get more information about the stack: - -.. code-block:: console - - $ openstack stack show 0db2c026-fb9a-4849-b51d-b1df244096cd - -The outputs section of the stack contains two ceilometer command-line queries: - -* :code:`ceilometer_sample_query`: shows the samples used to build the statistics. -* :code:`ceilometer_statistics_query`: shows the statistics used to trigger the alarms. - -These queries provide a view into the behavior of the stack. - -In a new Terminal window, SSH into the 'api' API instance. Use the key pair -name that you passed in as a parameter. - -.. code-block:: console - - $ ssh -i ~/.ssh/test USERNAME@IP_API - - -In your SSH session, confirm that no fractals were generated: - -.. code-block:: console - - $ faafo list - 201-11-18 11:07:20.464 8079 INFO faafo.client [-] listing all fractals - +------+------------+----------+ - | UUID | Dimensions | Filesize | - +------+------------+----------+ - +------+------------+----------+ - -Then, create a pair of large fractals: - -.. code-block:: console - - $ faafo create --height 9999 --width 9999 --tasks 2 - -In the Terminal window where you run ceilometer, run -:code:`ceilometer_sample_query` to see the samples. - -.. code-block:: console - - $ ceilometer sample-list -m cpu_util -q metadata.user_metadata.stack=0db2c026-fb9a-4849-b51d-b1df244096cd - +--------------------------------------+----------+-------+----------------+------+---------------------+ - | Resource ID | Name | Type | Volume | Unit | Timestamp | - +--------------------------------------+----------+-------+----------------+------+---------------------+ - | 10122bfb-881b-4122-9955-7e801dfc5a22 | cpu_util | gauge | 100.847457627 | % | 2015-11-18T00:15:50 | - | 10122bfb-881b-4122-9955-7e801dfc5a22 | cpu_util | gauge | 82.4754098361 | % | 2015-11-18T00:14:51 | - | 10122bfb-881b-4122-9955-7e801dfc5a22 | cpu_util | gauge | 0.45 | % | 2015-11-18T00:13:50 | - | 10122bfb-881b-4122-9955-7e801dfc5a22 | cpu_util | gauge | 0.466666666667 | % | 2015-11-18T00:12:50 | - +--------------------------------------+----------+-------+----------------+------+---------------------+ - -The CPU utilization across workers increases as workers start to create the fractals. - -Run the :code:`ceilometer_statistics_query`: command to see the derived statistics. - -.. code-block:: console - - $ ceilometer statistics -m cpu_util -q metadata.user_metadata.stack=0db2c026-fb9a-4849-b51d-b1df244096cd -p 60 -a avg - +--------+---------------------+---------------------+----------------+----------+---------------------+---------------------+ - | Period | Period Start | Period End | Avg | Duration | Duration Start | Duration End | - +--------+---------------------+---------------------+----------------+----------+---------------------+---------------------+ - | 60 | 2015-11-18T00:12:45 | 2015-11-18T00:13:45 | 0.466666666667 | 0.0 | 2015-11-18T00:12:50 | 2015-11-18T00:12:50 | - | 60 | 2015-11-18T00:13:45 | 2015-11-18T00:14:45 | 0.45 | 0.0 | 2015-11-18T00:13:50 | 2015-11-18T00:13:50 | - | 60 | 2015-11-18T00:14:45 | 2015-11-18T00:15:45 | 82.4754098361 | 0.0 | 2015-11-18T00:14:51 | 2015-11-18T00:14:51 | - | 60 | 2015-11-18T00:15:45 | 2015-11-18T00:16:45 | 100.847457627 | 0.0 | 2015-11-18T00:15:50 | 2015-11-18T00:15:50 | - +--------+---------------------+---------------------+----------------+----------+---------------------+---------------------+ - -.. note:: The samples and the statistics are listed in opposite time order! - -See the state of the alarms set up by the template: - -.. code-block:: console - - $ ceilometer alarm-list - +--------------------------------------+---------------------------------------+-------+----------+---------+------------+--------------------------------+------------------+ - | Alarm ID | Name | State | Severity | Enabled | Continuous | Alarm condition | Time constraints | - +--------------------------------------+---------------------------------------+-------+----------+---------+------------+--------------------------------+------------------+ - | 56c3022e-f23c-49ad-bf59-16a6875f3bdf | testFaafo-cpu_alarm_low-miw5tmomewot | ok | low | True | True | cpu_util < 15.0 during 1 x 60s | None | - | 70ff7b00-d56d-4a43-bbb2-e18952ae6605 | testFaafo-cpu_alarm_high-ffhsmylfzx43 | alarm | low | True | True | cpu_util > 90.0 during 1 x 60s | None | - +--------------------------------------+---------------------------------------+-------+----------+---------+------------+--------------------------------+------------------+ - -Run the :code:`nova list` command to confirm that the -:code:`OS::Heat::AutoScalingGroup` has created more instances: - -.. code-block:: console - - $ nova list - +--------------------------------------+----------+--------+------------+-------------+----------------------+ - | ID | Name | Status | Task State | Power State | Networks | - +--------------------------------------+----------+--------+------------+-------------+----------------------+ - | 0de89b0a-5bfd-497b-bfa2-c13f6ef7a67e | api | ACTIVE | - | Running | public=115.146.89.96 | - | a6b9b334-e8ba-4c56-ab53-cacfc6f3ad43 | services | ACTIVE | - | Running | public=115.146.89.95 | - | 10122bfb-881b-4122-9955-7e801dfc5a22 | worker | ACTIVE | - | Running | public=115.146.89.97 | - | 31e7c020-c37c-4311-816b-be8afcaef8fa | worker | ACTIVE | - | Running | public=115.146.89.99 | - | 3fff2489-488c-4458-99f1-0cc50363ae33 | worker | ACTIVE | - | Running | public=115.146.89.98 | - +--------------------------------------+----------+--------+------------+-------------+----------------------+ - -Now, wait until all the fractals are generated and the instances have idled -for some time. - -Run the :code:`nova list` command to confirm that the -:code:`OS::Heat::AutoScalingGroup` removed the unneeded instances: - -.. code-block:: console - - $ nova list - +--------------------------------------+----------+--------+------------+-------------+----------------------+ - | ID | Name | Status | Task State | Power State | Networks | - +--------------------------------------+----------+--------+------------+-------------+----------------------+ - | 0de89b0a-5bfd-497b-bfa2-c13f6ef7a67e | api | ACTIVE | - | Running | public=115.146.89.96 | - | a6b9b334-e8ba-4c56-ab53-cacfc6f3ad43 | services | ACTIVE | - | Running | public=115.146.89.95 | - | 3fff2489-488c-4458-99f1-0cc50363ae33 | worker | ACTIVE | - | Running | public=115.146.89.98 | - +--------------------------------------+----------+--------+------------+-------------+----------------------+ - -.. note:: The :code:`OS::Heat::AutoScalingGroup` removes instances in creation order. - So the worker instance that was created first is the first instance - to be removed. - -In the outputs section of the stack, you can run these web API calls: - -* :code:`scale__workers_up_url`: A post to this url will add worker instances. -* :code:`scale_workers_down_url`: A post to this url will remove worker instances. - -These demonstrate how the Ceilometer alarms add and remove instances. -To use them: - -.. code-block:: console - - $ curl -X POST "Put the very long url from the template outputs section between these quotes" - -To recap: - -The auto-scaling stack sets up an API instance, a services instance, and an -auto-scaling group with a single worker instance. It also sets up ceilometer -alarms that add worker instances to the auto-scaling group when it is under -load, and removes instances when the group is idling. To do this, the alarms -post to URLs. - -In this template, the alarms use metadata that is attached to each worker -instance. The metadata is in the :code:`metering.stack=stack_id` format. - -The prefix is `metering.` For example, `metering.some_name`. - -.. code-block:: console - - $ nova show - ... - | metadata | {"metering.some_name": "some_value"} | - ... - -You can aggregate samples and calculate statistics across all instances with -the `metering.some_name` metadata that has `some_value` by using a query of -the form: - -.. code-block:: console - - -q metadata.user_metadata.some_name=some_value - -For example: - -.. code-block:: console - - $ ceilometer sample-list -m cpu_util -q metadata.user_metadata.some_name=some_value - $ ceilometer statistics -m cpu_util -q metadata.user_metadata.some_name=some_value -p 6 - -The alarms have the form: - -.. code-block:: console - - matching_metadata: {'metadata.user_metadata.stack': {get_param: "OS::stack_id"}} - -Spend some time playing with the stack and the Fractal app to see how it works. - -.. note:: The message queue can take a while to notice that worker instances have died. - -Next steps ----------- - -You should now be fairly confident working with the Orchestration -service. To see the calls that we did not cover and more, see the -volume documentation of your SDK. Or, try one of these steps in the -tutorial: - -* :doc:`/networking`: Learn about complex networking. -* :doc:`/advice`: Get advice about operations. -* :doc:`/craziness`: Learn some crazy things that you might not think to do ;) diff --git a/firstapp/source/scaling_out.rst b/firstapp/source/scaling_out.rst deleted file mode 100644 index abfd2d329..000000000 --- a/firstapp/source/scaling_out.rst +++ /dev/null @@ -1,536 +0,0 @@ -=========== -Scaling out -=========== - -.. todo:: For later versions of this guide: implement a service within - the fractals app that simply returns the CPU load on the - local server. Then add to this section a simple loop that - checks to see if any servers are overloaded and adds a new - one if they are. (Or do this through SSH and w) - -An often-cited reason for designing applications by using cloud -patterns is the ability to **scale out**. That is: to add additional -resources, as required. Contrast this strategy to the previous one of -increasing capacity by scaling up the size of existing resources. To -scale out, you must: - -* Architect your application to make use of additional resources. -* Make it possible to add new resources to your application. - -.. todo:: nickchase needs to restate the second point - -The :doc:`/introduction` section describes how to build in a modular -fashion, create an API, and other aspects of the application -architecture. Now you will see why those strategies are so important. -By creating a modular application with decoupled services, you can -identify components that cause application performance bottlenecks and -scale them out. Just as importantly, you can also remove resources -when they are no longer necessary. It is very difficult to overstate -the cost savings that this feature can bring, as compared to -traditional infrastructure. - -Of course, having access to additional resources is only part of the -game plan; while you can manually add or delete resources, you get -more value and more responsiveness if the application automatically -requests additional resources when it needs them. - -This section continues to illustrate the separation of services onto -multiple instances and highlights some of the choices that we have -made that facilitate scalability in the application architecture. - -You will progressively ramp up to use up six instances, so make sure that your -cloud account has the appropriate quota. - -The previous section uses two virtual machines - one 'control' service -and one 'worker'. The speed at which your application can generate -fractals depends on the number of workers. With just one worker, you -can produce only one fractal at a time. Before long, you will need more -resources. - -.. note:: If you do not have a working application, follow the steps in - :doc:`introduction` to create one. - -.. todo:: Ensure we have the controller_ip even if this is a new - python session. - -Generate load -~~~~~~~~~~~~~ - -To test what happens when the Fractals application is under load, you -can: - -* Load the worker: Create a lot of tasks to max out the CPU of existing - worker instances -* Load the API: Create a lot of API service requests - -Create more tasks ------------------ - -Use SSH with the existing SSH keypair to log in to the -:code:`app-controller` controller instance. - -.. code-block:: console - - $ ssh -i ~/.ssh/id_rsa USERNAME@IP_CONTROLLER - -.. note:: Replace :code:`IP_CONTROLLER` with the IP address of the - controller instance and USERNAME with the appropriate - user name. - -Call the :code:`faafo` command-line interface to request the -generation of five large fractals. - -.. code-block:: console - - $ faafo create --height 9999 --width 9999 --tasks 5 - -If you check the load on the worker, you can see that the instance is -not doing well. On the single CPU flavor instance, a load average -greater than 1 means that the server is at capacity. - -.. code-block:: console - - $ ssh -i ~/.ssh/id_rsa USERNAME@IP_WORKER uptime - 10:37:39 up 1:44, 2 users, load average: 1.24, 1.40, 1.36 - -.. note:: Replace :code:`IP_WORKER` with the IP address of the worker - instance and USERNAME with the appropriate user name. - - -Create more API service requests --------------------------------- - -API load is a slightly different problem than the previous one regarding -capacity to work. We can simulate many requests to the API, as follows: - -Use SSH with the existing SSH keypair to log in to the -:code:`app-controller` controller instance. - -.. code-block:: console - - $ ssh -i ~/.ssh/id_rsa USERNAME@IP_CONTROLLER - -.. note:: Replace :code:`IP_CONTROLLER` with the IP address of the - controller instance and USERNAME with the appropriate - user name. - -Use a for loop to call the :code:`faafo` command-line interface to -request a random set of fractals 500 times: - -.. code-block:: console - - $ for i in $(seq 1 500); do faafo --endpoint-url http://IP_CONTROLLER create & done - -.. note:: Replace :code:`IP_CONTROLLER` with the IP address of the - controller instance. - -If you check the load on the :code:`app-controller` API service -instance, you see that the instance is not doing well. On your single -CPU flavor instance, a load average greater than 1 means that the server is -at capacity. - -.. code-block:: console - - $ uptime - 10:37:39 up 1:44, 2 users, load average: 1.24, 1.40, 1.36 - -The sheer number of requests means that some requests for fractals -might not make it to the message queue for processing. To ensure that -you can cope with demand, you must also scale out the API capability -of the Fractals application. - -Scaling out -~~~~~~~~~~~ - -Remove the existing app ------------------------ - -Go ahead and delete the existing instances and security groups that -you created in previous sections. Remember, when instances in the -cloud are no longer working, remove them and re-create something new. - -.. only:: shade - - .. literalinclude:: ../samples/shade/scaling_out.py - :language: python - :start-after: step-1 - :end-before: step-2 - -.. only:: fog - - .. literalinclude:: ../samples/fog/scaling_out.rb - :language: ruby - :start-after: step-1 - :end-before: step-2 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/scaling_out.py - :start-after: step-1 - :end-before: step-2 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/ScalingOut.java - :language: java - :start-after: step-1 - :end-before: step-2 - - -Extra security groups ---------------------- - -As you change the topology of your applications, you must update or -create security groups. Here, you re-create the required security -groups. - -.. only:: shade - - .. literalinclude:: ../samples/shade/scaling_out.py - :language: python - :start-after: step-2 - :end-before: step-3 - -.. only:: fog - - .. literalinclude:: ../samples/fog/scaling_out.rb - :language: ruby - :start-after: step-2 - :end-before: step-3 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/scaling_out.py - :start-after: step-2 - :end-before: step-3 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/ScalingOut.java - :language: java - :start-after: step-2 - :end-before: step-3 - -A floating IP helper function ------------------------------ - -Define a short function to locate unused or allocate floating IPs. -This saves a few lines of code and prevents you from reaching your -floating IP quota too quickly. - -.. only:: shade - - .. literalinclude:: ../samples/shade/scaling_out.py - :language: python - :start-after: step-3 - :end-before: step-4 - -.. only:: fog - - .. literalinclude:: ../samples/fog/scaling_out.rb - :language: ruby - :start-after: step-3 - :end-before: step-4 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/scaling_out.py - :start-after: step-3 - :end-before: step-4 - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/ScalingOut.java - :language: java - :start-after: step-3 - :end-before: step-4 - -Split the database and message queue ------------------------------------- - -Before you scale out your application services, like the API service or the -workers, you must add a central database and an :code:`app-services` messaging -instance. The database and messaging queue will be used to track the state of -fractals and to coordinate the communication between the services. - -.. only:: shade - - .. literalinclude:: ../samples/shade/scaling_out.py - :language: python - :start-after: step-4 - :end-before: step-5 - -.. only:: fog - - .. literalinclude:: ../samples/fog/scaling_out.rb - :language: ruby - :start-after: step-4 - :end-before: step-5 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/scaling_out.py - :start-after: step-4 - :end-before: step-5 - - .. only:: jclouds - - .. literalinclude:: ../samples/jclouds/ScalingOut.java - :language: java - :start-after: step-4 - :end-before: step-5 - -Scale the API service ---------------------- - -With multiple workers producing fractals as fast as they can, the -system must be able to receive the requests for fractals as quickly as -possible. If our application becomes popular, many thousands of users -might connect to our API to generate fractals. - -Armed with a security group, image, and flavor size, you can add -multiple API services: - -.. only:: shade - - .. literalinclude:: ../samples/shade/scaling_out.py - :language: python - :start-after: step-5 - :end-before: step-6 - -.. only:: fog - - .. literalinclude:: ../samples/fog/scaling_out.rb - :language: ruby - :start-after: step-5 - :end-before: step-6 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/scaling_out.py - :start-after: step-5 - :end-before: step-6 - - .. only:: jclouds - - .. literalinclude:: ../samples/jclouds/ScalingOut.java - :language: java - :start-after: step-5 - :end-before: step-6 - -These services are client-facing, so unlike the workers they do not -use a message queue to distribute tasks. Instead, you must introduce -some kind of load balancing mechanism to share incoming requests -between the different API services. - -A simple solution is to give half of your friends one address and half -the other, but that solution is not sustainable. Instead, you can use -a `DNS round robin `_ -to do that automatically. However, OpenStack networking can provide -Load Balancing as a Service, which :doc:`/networking` explains. - -.. todo:: Add a note that we demonstrate this by using the first API - instance for the workers and the second API instance for the - load simulation. - - -Scale the workers ------------------ - -To increase the overall capacity, add three workers: - -.. only:: shade - - .. literalinclude:: ../samples/shade/scaling_out.py - :language: python - :start-after: step-6 - -.. only:: fog - - .. literalinclude:: ../samples/fog/scaling_out.rb - :language: ruby - :start-after: step-6 - :end-before: step-7 - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/scaling_out.py - :start-after: step-6 - :end-before: step-7 - - .. only:: jclouds - - .. literalinclude:: ../samples/jclouds/ScalingOut.java - :language: java - :start-after: step-6 - :end-before: step-7 - -Adding this capacity enables you to deal with a higher number of -requests for fractals. As soon as these worker instances start, they -begin checking the message queue for requests, reducing the overall -backlog like a new register opening in the supermarket. - -This process was obviously a very manual one. Figuring out that we -needed more workers and then starting new ones required some effort. -Ideally the system would do this itself. If you build your application -to detect these situations, you can have it automatically request and -remove resources, which saves you the effort of doing this work -yourself. Instead, the OpenStack Orchestration service can monitor -load and start instances, as appropriate. To find out how to set that -up, see :doc:`orchestration`. - -Verify that we have had an impact -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -In the previous steps, you split out several services and expanded -capacity. To see the new features of the Fractals application, SSH to -one of the app instances and create a few fractals. - -.. code-block:: console - - $ ssh -i ~/.ssh/id_rsa USERNAME@IP_API_1 - -.. note:: Replace :code:`IP_API_1` with the IP address of the first - API instance and USERNAME with the appropriate user name. - -Use the :code:`faafo create` command to generate fractals. - -Use the :code:`faafo list` command to watch the progress of fractal -generation. - -Use the :code:`faafo UUID` command to examine some of the fractals. - -The `generated_by` field shows the worker that created the fractal. -Because multiple worker instances share the work, fractals are -generated more quickly and users might not even notice when a worker -fails. - -.. code-block:: console - - root@app-api-1:# faafo list - +--------------------------------------+------------------+-------------+ - | UUID | Dimensions | Filesize | - +--------------------------------------+------------------+-------------+ - | 410bca6e-baa7-4d82-9ec0-78e409db7ade | 295 x 738 pixels | 26283 bytes | - | 66054419-f721-492f-8964-a5c9291d0524 | 904 x 860 pixels | 78666 bytes | - | d123e9c1-3934-4ffd-8b09-0032ca2b6564 | 952 x 382 pixels | 34239 bytes | - | f51af10a-084d-4314-876a-6d0b9ea9e735 | 877 x 708 pixels | 93679 bytes | - +--------------------------------------+------------------+-------------+ - - root@app-api-1:# faafo show d123e9c1-3934-4ffd-8b09-0032ca2b6564 - +--------------+------------------------------------------------------------------+ - | Parameter | Value | - +--------------+------------------------------------------------------------------+ - | uuid | d123e9c1-3934-4ffd-8b09-0032ca2b6564 | - | duration | 1.671410 seconds | - | dimensions | 952 x 382 pixels | - | iterations | 168 | - | xa | -2.61217 | - | xb | 3.98459 | - | ya | -1.89725 | - | yb | 2.36849 | - | size | 34239 bytes | - | checksum | d2025a9cf60faca1aada854d4cac900041c6fa762460f86ab39f42ccfe305ffe | - | generated_by | app-worker-2 | - +--------------+------------------------------------------------------------------+ - root@app-api-1:# faafo show 66054419-f721-492f-8964-a5c9291d0524 - +--------------+------------------------------------------------------------------+ - | Parameter | Value | - +--------------+------------------------------------------------------------------+ - | uuid | 66054419-f721-492f-8964-a5c9291d0524 | - | duration | 5.293870 seconds | - | dimensions | 904 x 860 pixels | - | iterations | 348 | - | xa | -2.74108 | - | xb | 1.85912 | - | ya | -2.36827 | - | yb | 2.7832 | - | size | 78666 bytes | - | checksum | 1f313aaa36b0f616b5c91bdf5a9dc54f81ff32488ce3999f87a39a3b23cf1b14 | - | generated_by | app-worker-1 | - +--------------+------------------------------------------------------------------+ - -The fractals are now available from any of the app-api hosts. To -verify, visit http://IP_API_1/fractal/FRACTAL_UUID and -http://IP_API_2/fractal/FRACTAL_UUID. You now have multiple redundant -web services. If one fails, you can use the others. - -.. note:: Replace :code:`IP_API_1` and :code:`IP_API_2` with the - corresponding floating IPs. Replace FRACTAL_UUID with the UUID - of an existing fractal. - -Go ahead and test the fault tolerance. Start deleting workers and API -instances. As long as you have one of each, your application is fine. -However, be aware of one weak point. The database contains the -fractals and fractal metadata. If you lose that instance, the -application stops. Future sections will explain how to address this -weak point. - -If you had a load balancer, you could distribute this load between the -two different API services. You have several options. The -:doc:`networking` section shows you one option. - -In theory, you could use a simple script to monitor the load on your -workers and API services and trigger the creation of instances, which -you already know how to do. Congratulations! You are ready to create -scalable cloud applications. - -Of course, creating a monitoring system for a single application might -not make sense. To learn how to use the OpenStack Orchestration -monitoring and auto-scaling capabilities to automate these steps, see -:doc:`orchestration`. - -Next steps -~~~~~~~~~~ - -You should be fairly confident about starting instances and -distributing services from an application among these instances. - -As mentioned in :doc:`/introduction`, the generated fractal images are -saved on the local file system of the API service instances. Because -you have multiple API instances up and running, the fractal images are -spread across multiple API services, which causes a number of -:code:`IOError: [Errno 2] No such file or directory` exceptions when -trying to download a fractal image from an API service instance that -does not have the fractal image on its local file system. - -Go to :doc:`/durability` to learn how to use Object Storage to solve -this problem in an elegant way. Or, you can proceed to one of these -sections: - -* :doc:`/block_storage`: Migrate the database to block storage, or use - the database-as-a-service component. -* :doc:`/orchestration`: Automatically orchestrate your application. -* :doc:`/networking`: Learn about complex networking. -* :doc:`/advice`: Get advice about operations. -* :doc:`/craziness`: Learn some crazy things that you might not think to do ;) - -Complete code sample -~~~~~~~~~~~~~~~~~~~~ - -This file contains all the code from this tutorial section. This -comprehensive code sample lets you view and run the code as a single -script. - -Before you run this script, confirm that you have set your -authentication information, the flavor ID, and image ID. - -.. only:: fog - - .. literalinclude:: ../samples/fog/scaling_out.rb - :language: ruby - -.. only:: shade - - .. literalinclude:: ../samples/shade/scaling_out.py - :language: python - -.. only:: libcloud - - .. literalinclude:: ../samples/libcloud/scaling_out.py - :language: python - -.. only:: jclouds - - .. literalinclude:: ../samples/jclouds/ScalingOut.java - :language: java diff --git a/tools/build-all-rst.sh b/tools/build-all-rst.sh index b06ad3a2d..887398c3e 100755 --- a/tools/build-all-rst.sh +++ b/tools/build-all-rst.sh @@ -2,5 +2,4 @@ mkdir -p publish-docs -tools/build-firstapp-rst.sh tools/build-api-quick-start.sh diff --git a/tools/build-firstapp-rst.sh b/tools/build-firstapp-rst.sh deleted file mode 100755 index 116743ef3..000000000 --- a/tools/build-firstapp-rst.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -e - -mkdir -p publish-docs - -# Publish documents to api-ref for developer.openstack.org -for tag in libcloud shade; do - tools/build-rst.sh firstapp \ - --tag ${tag} --target "firstapp-${tag}" -done - -# Draft documents -for tag in dotnet fog openstacksdk pkgcloud jclouds gophercloud; do - tools/build-rst.sh firstapp \ - --tag ${tag} --target "draft/firstapp-${tag}" -done diff --git a/tox.ini b/tox.ini index 7ca32075c..7301db852 100644 --- a/tox.ini +++ b/tox.ini @@ -19,7 +19,6 @@ commands = {posargs} [testenv:linters] commands = - doc8 firstapp doc8 api-quick-start [testenv:checkbuild] @@ -34,8 +33,6 @@ commands = # Prepare documents (without www) so that they can get published on # developer.openstack.org with just copying publish-docs/api-ref over. commands = - # Build and copy RST Guides - {toxinidir}/tools/build-firstapp-rst.sh # Build and copy API Quick Start {toxinidir}/tools/build-api-quick-start.sh # Build website index @@ -74,33 +71,6 @@ commands = {toxinidir}/tools/generatepot-rst.sh api-site 0 {posargs} commands = {toxinidir}/tools/build-all-rst.sh -[testenv:firstapp-libcloud] -commands = sphinx-build -E -W -t libcloud firstapp/source firstapp/build-libcloud/html - -[testenv:firstapp-jclouds] -commands = sphinx-build -E -W -t jclouds firstapp/source firstapp/build-jclouds/html - -[testenv:firstapp-fog] -commands = sphinx-build -E -W -t fog firstapp/source firstapp/build-fog/html - -[testenv:firstapp-dotnet] -commands = sphinx-build -E -W -t dotnet firstapp/source firstapp/build-dotnet/html - -[testenv:firstapp-pkgcloud] -commands = sphinx-build -E -W -t pkgcloud firstapp/source firstapp/build-pkgcloud/html - -[testenv:firstapp-openstacksdk] -commands = sphinx-build -E -W -t openstacksdk firstapp/source firstapp/build-openstacksdk/html - -[testenv:firstapp-todos] -commands = sphinx-build -E -W -t libcloud firstapp/source firstapp/build/html - -[testenv:firstapp-shade] -commands = sphinx-build -E -W -t shade firstapp/source firstapp/build-shade/html - -[testenv:firstapp-gophercloud] -commands = sphinx-build -E -W -t gophercloud firstapp/source firstapp/build-gophercloud/html - [testenv:api-quick-start] commands = {toxinidir}/tools/build-api-quick-start.sh @@ -108,7 +78,7 @@ commands = [doc8] # Settings for doc8: # Ignore target directories -ignore-path = firstapp/build*,common/ +ignore-path = common/ # File extensions to use extensions = .rst,.txt # Ignore lines longer than 79 chars diff --git a/www/index.html b/www/index.html index b12558033..19f95c836 100644 --- a/www/index.html +++ b/www/index.html @@ -15,7 +15,6 @@


Development Environments - Writing your First App Reference Architectures View SDKs View APIs @@ -54,33 +53,6 @@
  • PackStack A simple Puppet driven installation of OpenStack
  • -
    -

    Writing Your First OpenStack Application

    -

    - Want to quickly learn how to manipulate OpenStack using the OpenStack SDKs? -

    -

    OpenStack FirstApp

    - -

    Reference Architectures

    diff --git a/www/templates/sdk_list.tmpl b/www/templates/sdk_list.tmpl index 3c643ab99..c0287984b 100644 --- a/www/templates/sdk_list.tmpl +++ b/www/templates/sdk_list.tmpl @@ -102,11 +102,6 @@ Docs and resources

    - - Getting started - -
    -
    Usage @@ -416,11 +411,6 @@ Docs and resources
    - - Getting started - -
    -
    OpenStack Compute Driver Documentation