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