命令行工具

输入 flynn help 列出所有可用的命令。

安装

OS X 和 Linux 系统中,在终端运行以下命令:

  1. L=/usr/local/bin/flynn && curl -sSL -A "`uname -sp`" https://dl.flynn.io/cli | zcat >$L && chmod +x $L

Windows 系统,在 PowerShell 中运行以下命令:

  1. (New-Object Net.WebClient).DownloadString('https://dl.flynn.io/cli.ps1') | iex

应用程序管理

用法:

  1. flynn apps

列出所有应用程序。

例子

  1. $ flynn apps
  2. ID NAME
  3. f1e85f5392454a329929e3f27f7a5644 gitreceive
  4. 4c6325c1f13547059e5496c91a6a97dd router
  5. 8cfd94d040b14bd8aecc086c8f5f5e0d blobstore
  6. f488cfb478f54edea497bf6347c2eb80 postgres
  7. 9d5be7be873c41b9898032c08aa87597 controller

集群管理

用法:

  1. flynn cluster
  2. flynn cluster add [-f] [-d] [-g <githost>] [--git-url <giturl>] [--no-git] [-p <tlspin>] <cluster-name> <domain> <key>
  3. flynn cluster remove <cluster-name>
  4. flynn cluster default [<cluster-name>]
  5. flynn cluster migrate-domain <domain>
  6. flynn cluster backup [--file <file>]

命令参数

如果不带任何命令参数,将显示配置的集群列表。

  • add 增加一个群集到 〜/.flynnrc 配置文件中
  1. 选项:
  2. -f, --force 强制添加集群
  3. -d, --default 设置为默认集群
  4. -g, --git-host=<githost> git 主机 (只支持传统的 SSH)
  5. --git-url=<giturl> git URL
  6. --no-git 跳过 git 配置
  7. -p, --tls-pin=<tlspin> 集群 TLS 证书的 SHA256 哈希值
  • remove 从 〜/.flynnrc 配置文件中删除集群
  • default 不带参数,则显示默认的集群;后面带集群名,则将它设置为默认集群
  • migrate-domain 将集群当前的基本域迁移到指定的域。迁移过程中,将为控制器/控制板生成一个新证书,同时会为每个应用添加 <app-name>.<domain> 模式的路由。
  • backup 备份集群
  1. 当通过 'flynn-host bootstrap --from-backup' 命令创建一个新集群时,该备份可以被恢复。
  2. 选项:
  3. --file=<backup-file> 指定备份文件的名称(默认为输出到标准输出)

例子

  1. $ flynn cluster add -p KGCENkp53YF5OvOKkZIry71+czFRkSw2ZdMszZ/0ljs= default dev.localflynn.com e09dc5301d72be755a3d666f617c4600
  2. Cluster "default" added.
  1. $ flynn cluster migrate-domain new.example.com
  2. Migrate cluster domain from "example.com" to "new.example.com"? (yes/no): yes
  3. Migrating cluster domain (this can take up to 2m0s)...
  4. Changed cluster domain from "example.com" to "new.example.com"

创建

用法:

  1. flynn create [-r <remote>] [-y] [<name>]

在 flynn 中创建应用程序。如果没有提供 [<name>] 参数,将生成一个随机名。

如果使用 Git 仓库来创建一个应用,那么名为 ‘flynn’ 的远程仓库连接将被创建或替换,同样允许 git 用这个远程仓库来部署应用。

选项

选项 描述
-r —remote=<remote> 要创建的 Git 远程仓库名称,空字符串代表使用默认值。 [默认:flynn]
-y —yes 如果该仓库已经存在,跳过确认提示

例子

  1. $ flynn create
  2. Created turkeys-stupefy-perry

删除

用法:

  1. flynn delete [-y] [-r <remote>]

删除一个应用。假如该应用使用了名为 'flynn' 的远程 git 仓库连接,该连接同样也会被删除。

选项

标志 描述
-r —remote=<remote> 要删除的 Git 远程仓库名称,没有空字符串。 [默认:flynn]
-y —yes 跳过确认提示。

例子

  1. $ flynn -a turkeys-stupefy-perry delete
  2. Are you sure you want to delete the app "turkeys-stupefy-perry"? (yes/no): yes
  3. Deleted turkeys-stupefy-perry

部署

用法:

  1. flynn deployment

管理应用的部署

命令参数

不带任何参数,显示已部署列表。

例子

  1. $ flynn deployment
  2. ID STATUS CREATED FINISHED
  3. 37a63fb05fe946f18f11f741aed74d60 running 4 seconds ago
  4. 51cbf2bba1204e94b1d847ae0122c647 complete 16 seconds ago 14 seconds ago
  5. 12875d153f5c4c6cb64e263c4b422e8c failed About a minute ago About a minute ago
  6. 21d4a8174a4240a0b1dcb6303f40cad5 complete 4 minutes ago 4 minutes ago

环境

用法

  1. flynn env [-t <proc>]
  2. flynn env set [-t <proc>] <var>=<val>...
  3. flynn env unset [-t <proc>] <var>...
  4. flynn env get [-t <proc>] <var>

管理应用程序的环境变量。

选项

标志 描述
-t —process-type=<proc> 设置或读取指定进程类型的环境变量

命令参数

不带任何参数,显示所有环境变量列表。

  • set 设置一个或多个环境变量
  • unset 删除一个或多个环境变量
  • get 返回环境变量的值

例子

  1. $ flynn env set FOO=bar BAZ=foobar
  2. Created release 5058ae7964f74c399a240bdd6e7d1bcb.
  1. $ flynn env
  2. BAZ=foobar
  3. FOO=bar
  1. $ flynn env get -t web FOO
  2. bar
  1. $ flynn env unset FOO
  2. Created release b1bbd9bc76d6436ea2fd245300bce72e.

导出

用法

  1. flynn export [options]

导出应用配置和数据。

应用的元数据(metadata)、部署策略(deploy strategy)、版本配置(release configuration)、slug、结构(formation)、Postgres 数据库将被导出到一个 tar 压缩文件。

选项

标志 描述
-f —file=<file> 存储导出数据的文件名(默认为标准输出)
-q —quiet 不显示进度

git 授权(git-credentials)

用法:

  1. flynn git-credentials <operation>

导入

用法:

  1. flynn import [options]

使用已导出的配置和数据来创建一个新应用。将使用所提供导出文件中的应用的元数据(metadata)、部署策略(deploy strategy)、版本配置(release configuration)、slug、结构(formation)、Postgres 数据库,来构建新的应用。

选项

标志 描述
-f —file=<file> 数据来源文件名(默认为标准输入)
-n —name=<name> 待创建的应用名称(默认为导出文件的原应用名)
-q —quiet 不显示进度
-r —routes 导入路由

信息

显示应用的信息

  1. flynn info

例子

  1. $ flynn info
  2. === example
  3. Git URL: https://git.dev.localflynn.com/example.git
  4. Web URL: http://example.dev.localflynn.com
  1. $ flynn -a example info
  2. === example
  3. Git URL: https://git.dev.localflynn.com/example.git
  4. Web URL: http://example.dev.localflynn.com

安装

启动安装器的 web 界面服务。

  1. flynn install

例子

  1. $ flynn install

停止任务(Kill)

  1. flynn kill <job>

杀掉一个任务进程

资源限制

用法:

  1. flynn limit [-t <proc>]flynn limit set <proc> <var>=<val>...

管理应用程序的资源配置。

选项

标志 描述
-t —process-type=<proc> 设置或读取指定进程类型的限制

命令

不带任何参数,即显示资源限制列表。

  • set 设置一个或多个资源限制

例子

  1. $ flynn limit
  2. web: max_fd=10000 memory=1GB
  3. worker: max_fd=10000 memory=1GB
  1. $ flynn limit set web memory=512MB max_fd=12000
  2. Created release 5058ae7964f74c399a240bdd6e7d1bcb
  1. $ flynn limit
  2. web: max_fd=12000 memory=512MB
  3. worker: max_fd=10000 memory=1GB
  1. $ flynn limit set web memory=256MB
  2. Created release b39fe25d0ea344b6b2af5cf4d6542a80
  1. $ flynn limit
  2. web: max_fd=12000 memory=256MB
  3. worker: max_fd=10000 memory=1GB

日志

应用程序的日志流。

  1. flynn log [-f] [-j <id>] [-n <lines>] [-r] [-s] [-t <type>]

选项

标志 描述
-f —follow 新的日志流
-j —job=<id> 过滤出特定任务的 ID 的日志
-n —number=<lines> 从日志缓冲区中提取至多 N 行日志
-r —raw-output 输出没有前缀的原始日志信息
-s —split-stderr 将标准错误流发送到 stderr
-t —process-type=<type> 过滤出特定进程类型的日志

元数据

管理应用元数据

  1. flynn meta
  2. flynn meta set <var>=<val>...
  3. flynn meta unset <var>...

例子

  1. $ flynn meta
  2. KEY VALUE
  3. foo bar
  1. $ flynn meta set foo=baz bar=qux
  1. $ flynn meta
  2. KEY VALUE
  3. foo baz
  4. bar qux
  1. $ flynn meta unset foo
  1. $ flynn meta
  2. KEY VALUE
  3. bar qux

pg

  1. flynn pg psql [--] [<argument>...]
  2. flynn pg dump [-q] [-f <file>]
  3. flynn pg restore [-q] [-f <file>]

选项

标志 描述
-f —file=<file>dump 备份文件的名称
-q —quiet 不显示进度

命令

  • psql 打开一个 flynn的 Postgres 数据库控制台。可以使用任何有效的 PSQL 命令参数。
  • dump 备份 Postgres 数据库。如果没有指定文件,备份将输出到标准输出。
  • restore 从数据库备份中还原 Postgres 数据库。如果没有指定文件,将通过标准输入获取还原备份。

例子

  1. $ flynn pg psql
  2. $ flynn pg psql -- -c "CREATE EXTENSION hstore"
  3. $ flynn pg dump -f db.dump
  4. $ flynn pg restore -f db.dump

提供程序

管理与控制器相关的资源提供程序。

  1. flynn provider
  2. flynn provider add <name> <url>

命令

不带任何参数,即显示当前提供程序

  • add 添加新提供程序

ps

列出所有 flynn 进程。

  1. flynn ps

例子

  1. $ flynn ps
  2. ID TYPE RELEASE
  3. flynn-bb97c7dac2fa455dad73459056fabac2 web b69d7fb5308a4684a09b160b82d267ec
  4. flynn-c59e02b3e6ad49809424848809d4749a web b69d7fb5308a4684a09b160b82d267ec
  5. flynn-46f0d715a9684e4c822e248e84a5a418 web b69d7fb5308a4684a09b160b82d267ec

发布

管理应用程序的发布。

  1. flynn release
  2. flynn release add [-t <type>] [-f <file>] <uri>
  3. flynn release show [<id>]

选项

标志 描述
-q —quiet 只打印发布ID
-t <type> 发布类型。目前只支持 “docker”。 [默认为:docker]
-f —file=<file> 配置文件
—json 打印json格式的配置信息

命令

如果不带任何参数,将列出应用相关的所有版本。

  • add 添加一个新发布从 Docker 镜像中创建一个新的版本。还可添加文件参数,它是 JSON 格式的配置文件的文件路径。这主要用于指定版本环境和流程(类似于Procfile)。可以使用任何控制版本类型可使用的参数。
  • show显示版本信息如果省略ID,则显示当前发布信息。

例子

比如以 flynn/slugbuilder 镜像为基础发布一个 echo 服务器,用来运行 socat。

  1. $ cat config.json
  2. {
  3. "env": {"MY_VAR": "Hello World, this will be available in all process types."},
  4. "processes": {
  5. "echo": {
  6. "cmd": ["socat -v tcp-l:$PORT,fork exec:/bin/cat"],
  7. "entrypoint": ["sh", "-c"],
  8. "env": {"ECHO": "This var is specific to the echo process type."},
  9. "ports": [{"proto": "tcp"}]
  10. }
  11. }
  12. }
  13. $ flynn release add -f config.json https://registry.hub.docker.com?name=flynn/slugbuilder&id=15d72b7f573b
  14. Created release 427537e78be4417fae2e24d11bc993eb.
  1. $ flynn release
  2. ID Created
  3. 427537e78be4417fae2e24d11bc993eb 11 seconds ago
  1. $ flynn release show
  2. ID: 427537e78be4417fae2e24d11bc993eb
  3. Artifact: docker+https://registry.hub.docker.com?name=flynn/slugbuilder&id=15d72b7f573b
  4. Process Types: echo
  5. Created At: 2015-05-06 21:58:12.751741 +0000 UTC
  6. ENV[MY_VAR]: Hello World, this will be available in all process types.

仓库

创建一个可以通过 git 来部署应用的仓库。如果没有提供仓库名称,默认使用'flynn'

  1. flynn remote add [<remote>] [-y]

选项

标志 描述
-y —yes 假如该仓库存在,则跳过确认提示

例子

  1. $ flynn -a turkeys-stupefy-perry remote add
  2. Created remote flynn with url https://git.dev.localflynn.com/turkeys-stupefy-perry.git
  1. $ flynn -a turkeys-stupefy-perry remote add staging
  2. Created remote staging with url https://git.dev.localflynn.com/turkeys-stupefy-perry.git

资源

管理应用程序资源。

  1. flynn resource
  2. flynn resource add <provider>
  3. flynn resource remove <provider> <resource>

命令

不带任何参数,即显示资源列表。

  • add 通过 为使用应用程序添加一个新资源。
  • remove 通过 删除已存在的资源

路由

管理应用程序的路由。

  1. flynn route
  2. flynn route add http [-s <service>] [-c <tls-cert> -k <tls-key>] [--sticky] <domain>
  3. flynn route add tcp [-s <service>] [-p <port>]
  4. flynn route update <id> [-s <service>] [-c <tls-cert> -k <tls-key>] [--sticky] [--no-sticky]
  5. flynn route remove <id>

选项

标志 描述
-s —service=<service> 路由域的服务名称(默认为APPNAME-web)
-c —tls-cert=<tls-cert> TLS 的 PEM 编码证书路径, - 为标准输入(只支持HTTP)
-k —tls-key=<tls-key TLS 的 PEM 编码私钥路径, - 为标准输入(只支持HTTP)
—sticky 支持基于 Cookie 的粘性路由(只支持HTTP)
—no-sticky 不支持基于 Cookie 的粘性路由(只支持更新HTTP)
-p —port=<port> 通信端口(只支持TCP)

命令

不带任何参数,即显示路由的列表。

  • add 给应用程序增加路由
  • remove 删除路由

例子

  1. $ flynn route add http example.com
  2. $ flynn route add tcp

运行

运行任务。

  1. flynn run [-d] [-r <release>] [-e <entrypoint>] [--] <command> [<argument>...]

选项

选项 描述
-d —detached 不连接 IO 流运行任务
-r <release> 以版本 ID 来运行(默认为当前应用程序版本)
-e <entrypoint> 覆盖版本镜像的默认入口点
-l —enable-log 把输出传入日志流

scale

scale 改变一个版本中每种进程的任务数量。省略参数即显示当前 scale。

  1. flynn scale [options] [<type>=<qty>...]

选项

标志 描述
-n —no-wait 不等待扩展事件发生
-r —release=<release> 待扩展的版本ID(默认为当前应用程序的版本)
-a —all 显示所有版本的结构

例子

  1. $ flynn scale
  2. web=4 worker=2
  1. $ flynn scale --all
  2. 496d6e74-9db9-4cff-bcce-a3b44015907a (current)
  3. web=1 worker=2

632cd907-85ab-4e53-90d0-84635650ec9a web=2

  1. $ flynn scale web=2 worker=5
  2. scaling web: 4=>2, worker: 2=>5

02:28:34.333 ==> web flynn-3f656af6f1e44092aa7037046236b203 down 02:28:34.466 ==> web flynn-ee83def0b8e4455793a43c8c70f5b34e down 02:28:35.479 ==> worker flynn-84f70ca18c9641ef83a178a19db867a3 up 02:28:36.508 ==> worker flynn-a3de8c326cc542aa89235e53ba304260 up 02:28:37.601 ==> worker flynn-e24760c511af4733b01ed5b98aa54647 up scale completed in 3.944629056s

版本

显示flynn版本信息。

  1. flynn version

原文: http://doc.oschina.net/flynn?t=54124