首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将命令的结果作为盐栈中的变量获取,以修改iptables

将命令的结果作为盐栈中的变量获取,以修改iptables
EN

Stack Overflow用户
提问于 2015-12-08 09:42:21
回答 1查看 229关注 0票数 1

我正在尝试将新规则添加到iptables中。我想要的是将规则放入倒数第二行(即就在DENY ALL语句之前)。例如:

代码语言:javascript
复制
[vagrant@controller ~]$ sudo iptables -L INPUT --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
2    ACCEPT     icmp --  anywhere             anywhere
3    ACCEPT     all  --  anywhere             anywhere
4    ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
5    REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

然后,

代码语言:javascript
复制
sudo iptables -I INPUT 5 -t filter -d 192.168.33.10 -m state --state NEW -j ACCEPT

将是:

代码语言:javascript
复制
[vagrant@controller ~]$ sudo iptables -L --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
2    ACCEPT     icmp --  anywhere             anywhere
3    ACCEPT     all  --  anywhere             anywhere
4    ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
5    ACCEPT     all  --  anywhere             192.168.33.10        state NEW
6    REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

问题是,在不明确知道最后一个行号的情况下,我不知道如何使用salt自动执行此操作?有没有办法在salt堆栈中运行一个命令,并将该命令的结果用作jinja模板的变量?

代码语言:javascript
复制
sudo iptables -L INPUT --line-numbers  | tail -n1 | awk '{print $1}'
EN

回答 1

Stack Overflow用户

发布于 2015-12-08 16:45:57

我不知道有什么简单的方法可以像上面描述的那样做。出现在脑海中的一些变通方法:

  1. 定义最后一个规则,使其依赖于(即require)您需要插入的规则。然后,Salt会确保它们的顺序是正确的。
  2. 创建了一个额外的iptables链。在原始配置中的某个位置插入到新链的跳转,然后根据需要更改链中的规则。这为您提供了大量的flexibility.
  3. Write,一个可以做您想做的事情的shell脚本,并使用cmd.run调用它。相当不优雅,但需要对配置的其他部分进行较少的更改。

这两个选项都不是完美的,可能不适合您的用例。然而,组合第一个to方法会让你走得更远,也会得到一个整体上更整洁的设置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34146571

复制
相关文章

相似问题

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