首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用tmuxinator打开动态数目的窗口

使用tmuxinator打开动态数目的窗口
EN

Stack Overflow用户
提问于 2015-10-01 02:15:47
回答 2查看 471关注 0票数 1

我想设置一个tmuxinator项目来打开一个动态数量的tmux窗口。在我的场景中,我希望在AWS自动缩放组中每个实例都有一个窗口。

我有一个bash函数来列出我想要附加到的每个服务器的私有IP。例如:

代码语言:javascript
运行
复制
$ prod-ips
10.X.X.1
10.X.X.2
10.X.X.3
10.X.X.4

我有一个bash功能,可以隧道到任何一个IP:

代码语言:javascript
运行
复制
$tunnel_to 10.X.X.1
....
works
ec2-user@10.x.x.1 ~ $

如何将从prod-ips返回的IP列表传递到tmuxinator项目,以便它将为每一行输出打开1个窗口?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-02 16:05:24

由于项目文件是首次作为再培训局处理,所以可以执行以下操作:

代码语言:javascript
运行
复制
# ~/.tmuxinator/dyn.yml

name: dyn
root: ~/
windows:
  # just using `echo` as a POC; this is where you'd make your function call
  <%- `echo "111,222,333"`.split(',').each do |ip| %>
  - tunnel-to-<%= ip.chomp %>: echo tunnel_to <%= ip %>
  <%- end %>
票数 1
EN

Stack Overflow用户

发布于 2015-11-15 09:53:55

谢谢@pdoherty926 926,我正在寻找的是ERB语法。

看起来,在我的bash_profile中定义的函数不起作用,但是如果我在tmuxinator conf中将这些函数写出来,那么所有这些函数都能工作:

此工作( echo是合并成一行的prod的输出):

代码语言:javascript
运行
复制
windows:
  <%- `echo 10.250.XX.X1,10.250.XX.X2,10.250.XX.X3`.split(',').each do |ip| %>
    - ip-<%= ip.chomp %>: tunnel_to <%= ip %>
  <%- end %>

但是这个命令不起作用:

代码语言:javascript
运行
复制
windows:
  <%- `prod-ips`.split("\n").each do |ip| %>
    - ip-<%= ip.chomp %>: tunnel_to <%= ip %>
  <%- end %>

但是,如果我在文件中定义了prod-ips长手,那么tmuxinator命令可以工作:

代码语言:javascript
运行
复制
windows:  
  <%- `aws ec2 describe-instances | jq '.Reservations[].Instances[] | select(has("SecurityGroups")) | select(.SecurityGroups | length > 0) | select(.SecurityGroups[0].GroupName | test("<SECURITYGROUPFILTER>")) | .PrivateIpAddress' | sed -e 's/"//g'`.split("\n").each do |ip| %>    
    - ip-<%= ip.chomp %>: tunnel_to <%= ip %>
  <%- end %>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32878441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档