Pivotal Cloud Foundry学习笔记(1)

PCF是一个PAAS平台

注册PCF账号

https://account.run.pivotal.io/sign-up

安装cf CLI

访问 https://console.run.pivotal.io/tools 或 https://github.com/cloudfoundry/cli 下载cf CLI

安装下载好的rpm包

# rpm -Uvh cf-cli-installer_6.17.0_x86-64.rpm

查看cf CLI帮助

# cf -h

NAME:
   cf - A command line tool to interact with Cloud Foundry

USAGE:
   cf [global options] command [arguments...] [command options]

VERSION:
   6.17.0+5d0be0a-2016-04-15
   
GETTING STARTED:
   help                                   Show help
   version                                Print the version
   login                                  Log user in
   logout                                 Log user out
   passwd                                 Change user password
   target                                 Set or view the targeted org or space

   api                                    Set or view target api url
   auth                                   Authenticate user non-interactively

APPS:
   apps                                   List all apps in the target space
   app                                    Display health and status for app

   push                                   Push a new app or sync changes to an existing app
   scale                                  Change or view the instance count, disk space limit, and memory limit for an app
   delete                                 Delete an app
   rename                                 Rename an app

   start                                  Start an app
   stop                                   Stop an app
   restart                                Restart an app
   restage                                Restage an app
   restart-app-instance                   Terminate the running application Instance at the given index and instantiate a new instance of the application with the same index

   events                                 Show recent app events
   files                                  Print out a list of files in a directory or the contents of a specific file of an app running on the DEA backend
   logs                                   Tail or show recent logs for an app

   env                                    Show all env variables for an app
   set-env                                Set an env variable for an app
   unset-env                              Remove an env variable

   stacks                                 List all stacks (a stack is a pre-built file system, including an operating system, that can run apps)
   stack                                  Show information for a stack (a stack is a pre-built file system, including an operating system, that can run apps)

   copy-source                            Make a copy of app source code from one application to another.  Unless overridden, the copy-source command will restart the application.

   create-app-manifest                    Create an app manifest for an app that has been pushed successfully

   get-health-check                       Get the health_check_type value of an app
   set-health-check                       Set health_check_type flag to either 'port' or 'none'
   enable-ssh                             Enable ssh for the application
   disable-ssh                            Disable ssh for the application
   ssh-enabled                            Reports whether SSH is enabled on an application container instance
   ssh                                    SSH to an application container instance

SERVICES:
   marketplace                            List available offerings in the marketplace
   services                               List all service instances in the target space
   service                                Show service instance info

   create-service                         Create a service instance
   update-service                         Update a service instance
   delete-service                         Delete a service instance
   rename-service                         Rename a service instance

   create-service-key                     Create key for a service instance
   service-keys                           List keys for a service instance
   service-key                            Show service key info
   delete-service-key                     Delete a service key

   bind-service                           Bind a service instance to an app
   unbind-service                         Unbind a service instance from an app

   bind-route-service                     Bind a service instance to an HTTP route
   unbind-route-service                   Unbind a service instance from an HTTP route

   create-user-provided-service           Make a user-provided service instance available to CF apps
   update-user-provided-service           Update user-provided service instance

ORGS:
   orgs                                   List all orgs
   org                                    Show org info

   create-org                             Create an org
   delete-org                             Delete an org
   rename-org                             Rename an org

SPACES:
   spaces                                 List all spaces in an org
   space                                  Show space info

   create-space                           Create a space
   delete-space                           Delete a space
   rename-space                           Rename a space

   allow-space-ssh                        Allow SSH access for the space
   disallow-space-ssh                     Disallow SSH access for the space
   space-ssh-allowed                      Reports whether SSH is allowed in a space

DOMAINS:
   domains                                List domains in the target org
   create-domain                          Create a domain in an org for later use
   delete-domain                          Delete a domain
   create-shared-domain                   Create a domain that can be used by all orgs (admin-only)
   delete-shared-domain                   Delete a shared domain

   router-groups                          List router groups

ROUTES:
   routes                                 List all routes in the current space or the current organization
   create-route                           Create a url route in a space for later use
   check-route                            Perform a simple check to determine whether a route currently exists or not
   map-route                              Add a url route to an app
   unmap-route                            Remove a url route from an app
   delete-route                           Delete a route
   delete-orphaned-routes                 Delete all orphaned routes (i.e. those that are not mapped to an app)

BUILDPACKS:
   buildpacks                             List all buildpacks
   create-buildpack                       Create a buildpack
   update-buildpack                       Update a buildpack
   rename-buildpack                       Rename a buildpack
   delete-buildpack                       Delete a buildpack

USER ADMIN:
   create-user                            Create a new user
   delete-user                            Delete a user

   org-users                              Show org users by role
   set-org-role                           Assign an org role to a user
   unset-org-role                         Remove an org role from a user

   space-users                            Show space users by role
   set-space-role                         Assign a space role to a user
   unset-space-role                       Remove a space role from a user

ORG ADMIN:
   quotas                                 List available usage quotas
   quota                                  Show quota info
   set-quota                              Assign a quota to an org

   create-quota                           Define a new resource quota
   delete-quota                           Delete a quota
   update-quota                           Update an existing resource quota

   share-private-domain                   Share a private domain with an org
   unshare-private-domain                 Unshare a private domain with an org

SPACE ADMIN:
   space-quotas                           List available space resource quotas
   space-quota                            Show space quota info
   create-space-quota                     Define a new space resource quota
   update-space-quota                     Update an existing space quota
   delete-space-quota                     Delete a space quota definition and unassign the space quota from all spaces
   set-space-quota                        Assign a space quota definition to a space
   unset-space-quota                      Unassign a quota from a space

SERVICE ADMIN:
   service-auth-tokens                    List service auth tokens
   create-service-auth-token              Create a service auth token
   update-service-auth-token              Update a service auth token
   delete-service-auth-token              Delete a service auth token

   service-brokers                        List service brokers
   create-service-broker                  Create a service broker
   update-service-broker                  Update a service broker
   delete-service-broker                  Delete a service broker
   rename-service-broker                  Rename a service broker

   migrate-service-instances              Migrate service instances from one service plan to another
   purge-service-offering                 Recursively remove a service and child objects from Cloud Foundry database without making requests to a service broker
   purge-service-instance                 Recursively remove a service instance and child objects from Cloud Foundry database without making requests to a service broker

   service-access                         List service access settings
   enable-service-access                  Enable access to a service or service plan for one or all orgs
   disable-service-access                 Disable access to a service or service plan for one or all orgs

SECURITY GROUP:
   security-group                         Show a single security group
   security-groups                        List all security groups
   create-security-group                  Create a security group
   update-security-group                  Update a security group
   delete-security-group                  Deletes a security group
   bind-security-group                    Bind a security group to a space
   unbind-security-group                  Unbind a security group from a space

   bind-staging-security-group            Bind a security group to the list of security groups to be used for staging applications
   staging-security-groups                List security groups in the staging set for applications
   unbind-staging-security-group          Unbind a security group from the set of security groups for staging applications

   bind-running-security-group            Bind a security group to the list of security groups to be used for running applications
   running-security-groups                List security groups in the set of security groups for running applications
   unbind-running-security-group          Unbind a security group from the set of security groups for running applications

ENVIRONMENT VARIABLE GROUPS:
   running-environment-variable-group     Retrieve the contents of the running environment variable group
   staging-environment-variable-group     Retrieve the contents of the staging environment variable group
   set-staging-environment-variable-group Pass parameters as JSON to create a staging environment variable group
   set-running-environment-variable-group Pass parameters as JSON to create a running environment variable group

FEATURE FLAGS:
   feature-flags                          Retrieve list of feature flags with status of each flag-able feature
   feature-flag                           Retrieve an individual feature flag with status
   enable-feature-flag                    Enable the use of a feature so that users have access to and can use the feature
   disable-feature-flag                   Disable the use of a feature so that users have access to and can use the feature

ADVANCED:
   curl                                   Executes a request to the targeted API endpoint
   config                                 Write default values to the config
   oauth-token                            Retrieve and display the OAuth token for the current session
   ssh-code                               Get a one time password for ssh clients

ADD/REMOVE PLUGIN REPOSITORY:
   add-plugin-repo                        Add a new plugin repository
   remove-plugin-repo                     Remove a plugin repository
   list-plugin-repos                      List all the added plugin repositories
   repo-plugins                           List all available plugins in specified repository or in all added repositories

ADD/REMOVE PLUGIN:
   plugins                                List all available plugin commands
   install-plugin                         Install CLI plugin
   uninstall-plugin                       Uninstall the plugin defined in command argument

INSTALLED PLUGIN COMMANDS:

ENVIRONMENT VARIABLES:
   CF_COLOR=false                     Do not colorize output
   CF_HOME=path/to/dir/               Override path to default config directory
   CF_PLUGIN_HOME=path/to/dir/        Override path to default plugin config directory
   CF_STAGING_TIMEOUT=15              Max wait time for buildpack staging, in minutes
   CF_STARTUP_TIMEOUT=5               Max wait time for app instance startup, in minutes
   CF_TRACE=true                      Print API request diagnostics to stdout
   CF_TRACE=path/to/trace.log         Append API request diagnostics to a log file
   https_proxy=proxy.example.com:8080 Enable HTTP proxying for API requests

GLOBAL OPTIONS:
   --help, -h                         Show help
   -v                                 Print API request diagnostics to stdout

登陆PCF

# cf login -a https://api.run.pivotal.io

上传并运行APP

在程序根目录下运行这个命令后,cf就会把当前目录包括源代码的所有文件,打包并上传到CF上面,之后CF就会自动分析出APP的语言,根据源代码下载所需的依赖,编译程序并将其重新打包成一个“露珠”(dropplet,可以反复运行并延展的独立程序包)。这一切都是后台自动完成的,无需任何设置。这时候在你设置网段的任何人便可以去浏览我们的APP了。
开发员可以定义APP的名称(name),运行实例的数量(number of instances),内存(Memory Limit),子域名(subdomain),域名(domain),还有可选择绑定的服务(services,会在另一篇文章深入介绍),等等。

# cf push APP

监控和调试APP

显示已经上传的APP以及它们的运行状态。

# cf apps

显示我们上传APP的log,包括env.log, staging_task.log, stderr.log, 和stdout.log。我们的log一般会在stderr或stdout找到,另外两个为系统log。
如果去掉'--recent',cf则会对log进行'tail -f'的功能。

# cf logs APP --recent

显示我们上传APP的根目录文件夹结构,一般会反应我们在本地上传的目录结构。我们还可以运用这个命令查看已上传文件的内容。

# cf files APP

 

posted @ 2016-04-28 02:04  Edward Guan  阅读(2194)  评论(0编辑  收藏  举报