• 命令行工具
    • 安装
    • 应用程序管理
      • 用法:
      • 例子
    • 集群管理
      • 用法:
      • 命令参数
      • 例子
    • 创建
      • 用法:
        • 选项
      • 例子
    • 删除
      • 用法:
      • 选项
      • 例子
    • 部署
      • 用法:
      • 命令参数
      • 例子
    • 环境
      • 用法
      • 选项
      • 命令参数
      • 例子
    • 导出
      • 用法
      • 选项
    • git 授权(git-credentials)
      • 用法:
    • 导入
      • 用法:
      • 选项
    • 信息
      • 例子
    • 安装
      • 例子
    • 停止任务(Kill)
    • 资源限制
      • 用法:
      • 选项
      • 命令
      • 例子
    • 日志
      • 选项
    • 元数据
      • 例子
    • pg
      • 选项
      • 命令
      • 例子
    • 提供程序
      • 命令
    • ps
      • 例子
    • 发布
      • 选项
      • 命令
      • 例子
    • 仓库
      • 选项
      • 例子
    • 资源
      • 命令
    • 路由
      • 选项
      • 命令
      • 例子
    • 运行
      • 选项
    • scale
      • 选项
      • 例子
    • 版本

    命令行工具

    输入 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