小编emm*_*dee的帖子

解决 AWS 网络 ACL 规则限制

一个 VPC 网络 ACL 最多可以应用 40 条规则。

我有一个包含 50 多个 IP 地址的列表,我需要在我们的系统中明确阻止通过任何端口和任何协议访问这些地址。这是 ACL 的理想用途,但限制阻碍了我完成此任务。

当然,我可以在每个主机上的 IPTables 中执行此操作,但我想阻止任何和所有流量到 VPC 中的所有组件(例如到 ELB)。此外,在一个地方而不是在每个主机上管理这些规则要理想得多。

我希望在系统/平台级别有某种方式我不理解这样做。安全组是明确允许的,没有拒绝操作,所以他们不会成功。

access-control-list amazon-web-services amazon-vpc

14
推荐指数
1
解决办法
2680
查看次数

Terraform:为远程状态文件选择凭据

我在 Terraform 中有现有的基础设施,并且已经使用了一段时间。最近,我交换了本地笔记本电脑的 AWS 凭证(存储在 中的凭证~/.aws/credentials),它停止工作,直到我重新设置这些凭证。

问题是我在 Terraform 源本身中声明了信用,但它似乎根本没有使用它们。

terraform {
  backend "s3" {
    bucket = "example_tf_states"
    key    = "global/vpc/us_east_1/example_state.tfstate"
    encrypt = true
    region     = "us-east-1"
  }
}

provider "aws" {
  access_key = "${var.access_key}"
  secret_key = "${var.secret_key}"
  region = "${var.region}"
}



variable "access_key" {
  default = "<hidden_for_stack_exchange_post>"
}

variable "secret_key" {
  default = "<hidden_for_stack_exchange_post>"
}

variable "region" {
  default = "us-east-1"
}
Run Code Online (Sandbox Code Playgroud)

访问 ID 权限 100% 良好。我使用相同的帐户 ID 和密钥进行aws configure设置,~/.aws/credentials就像我在上面的 Terraform 变量声明中一样。

只要~/.aws/credentials …

terraform

12
推荐指数
1
解决办法
1万
查看次数

Ansible 条件 - 通配符匹配字符串

我在 Ansible 任务中有以下条件:

when: ec2_tag_Name == 'testhost01'
Run Code Online (Sandbox Code Playgroud)

它工作正常,但是我想在ec2_tag_Name场上匹配通配符。

所以像这样

when: ec2_tag_Name == 'testhost*'
Run Code Online (Sandbox Code Playgroud)

目标是匹配诸如testhostx testhost12 testhostABCetc 之类的任何内容testhost,仅匹配字符串开头的任何内容。

这可能吗?似乎无法让它工作。

ansible ansible-playbook

11
推荐指数
2
解决办法
2万
查看次数

使用带有子任务标签的 Ansible include_tasks

安塞布尔2.8.1

在我的剧本tasks/目录中:

main.yml
dev.yml
Run Code Online (Sandbox Code Playgroud)

main.yml我有一个这样的块:

- include_tasks: dev.yml
  when: ec2_tag_env == 'dev'
Run Code Online (Sandbox Code Playgroud)

效果很好


但是,如果我尝试使用标签调用 dev.yml 中的特定任务。它不会在运行期间限定任务

例如,以下标记的任务dev.yml

- name: Pull the latest image
  docker_image:
    name: "{{ dev_image }}"
    source: pull
  tags:
    - container
Run Code Online (Sandbox Code Playgroud)

当我用它运行剧本时,-t container 它将不符合资格,因为该include_tasks步骤没有该标签。


添加标签include_tasks当然可以解决问题,但是当标签添加到子任务中时,我需要跟踪标签并将它们添加到此处:

- include_tasks: dev.yml
  when: ec2_tag_env == 'dev'
  tags:
    - container
Run Code Online (Sandbox Code Playgroud)

问题

  • Ansible 是否可以“知道”include_tasks块内有哪些任务并提取适用的标签?

  • 实现这一目标的最佳实践是什么?

我宁愿不必的事情:

  • 把所有东西都放上main.yml。我在这本剧本中有很多任务,我真的很想将它们组织在文件中。
  • 手动标记我的所有include_tasks块及其所有子标签。听起来像是一场噩梦。

ansible ansible-playbook

10
推荐指数
2
解决办法
2万
查看次数

如何在 OpenVPN 中断开单个客户端连接?

想强行踢一个特定的用户连接。

操作系统是 Ubuntu 16,OVPN 服务器是 OpenVPN 2.3.10

我可以看到它们已连接,/etc/openvpn/openvpn-status.log其中列出了当前的客户端状态。并且他们的持久连接池被保存到/etc/openvpn/ipp.txt

我可以通过简单地循环 openvpn 守护进程来踢所有用户service openvpn restart 但是我想踢一个单一用户

我试过openvpn --helpman openvpn也搜索过谷歌,但没有看到任何东西。

操作系统为 Ubuntu 16,服务器为 OpenVPN 2.3.10

openvpn

8
推荐指数
1
解决办法
2万
查看次数

AWS EC2 - 克隆加入域的 Windows Server 计算机

首先,我使用这些作为基本指南:http : //docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ami-create-standard.html http://reduktor.net/2014/09/autoscale- ec2-instances-ad-aws/

其次,我们地区不支持AWS目录服务

设想

我希望为我们拥有的一组应用程序服务器创建一个“基本 AMI”。我可能需要基于此映像部署 1 个或多个新服务器。

这些实例最初是从 EC2 Windows Server 2008 R2 数据中心基础 AMI 创建的(由亚马逊创建)

应用程序本身是静态的,许可是完全可重新分发的,并且不需要在一台机器上与另一台机器上更改配置。

一台机器与另一台机器唯一不同的是主机名和网络配置。网络配置由 EC2 处理,因此主机名实际上是唯一需要从一个实例更改为另一个实例的内容

这些计算机是 Active Directory 的一部分,并且具有应用于计算机的特定 OU 组策略规则。他们都将加入同一个 OU。

目标:

我的目标是拥有一个基础 AMI。当此 AMI 启动时,它会自动加入域或已加入域。

从机器运行的应用程序需要域帐户才能运行 Windows 服务。所以我不能有一个没有加入域的图像。

我有一个想法(明天将测试):

  • 创建默认/通用主机名“server-xy”,加入域并创建我的 AMI。关闭源 VM,然后从 AMI 部署。启动后,将其重命名为最终主机名“server-02”。然后从 AMI 部署另一个,重命名,冲洗并重复 - 听起来可行吗?编辑:这不起作用,因为重命名它会使域级别的原始主机名无效。似乎我想做的事情可能不可行。

active-directory windows-server-2008-r2 amazon-ec2 amazon-web-services

7
推荐指数
1
解决办法
3139
查看次数

Jenkins + LDAP 插件 --- 有什么办法可以有一个登录后门?

每当我使用 LDAP/AD 对系统进行身份验证时,我都希望至少有一个“本地”管理员可以进入,即使目录服务出现故障/出现问题。本质上是一个“后门”,以防目录服务出现问题。

这在詹金斯有可能吗?我一次只能看到启用 1 种身份验证方法的选项。

active-directory ldap jenkins

6
推荐指数
1
解决办法
3242
查看次数

如何查看 Docker 容器重启的 HISTORY

我正在尝试查找容器重新启动的历史记录。

当然STATUS, a 上的字段docker ps将显示当前的正常运行时间。

但是,如果我有一个带有重启策略的容器,例如restart: unless-stopped并且它经历了多次重启 -如何检查重启/正常运行时间历史记录?

如果 docker 引擎本身没有跟踪这个 - 有没有已知的好方法来处理这个问题?

docker

6
推荐指数
1
解决办法
1万
查看次数

Jenkins:通过流水线脚本使用参数化触发器插件

我需要从另一个作业触发 Jenkins 作业并将各种值传递给它以供以后的条件逻辑使用。看来参数化触发器插件将完全满足我的需求。( https://plugins.jenkins.io/parameterized-trigger )

然而,这个插件我在文档和语法构建器中都没有看到任何关于管道语法的内容。

我使用过的大多数插件都允许在管道脚本中使用。(詹金斯文件)。他们很少有语法文档,但我通常可以使用 Jenkins 中的语法构建器来获得正确的管道语法来使用插件。

是否可以在管道中使用此插件(具体是多分支管道)?

如果没有,那么有没有其他方法可以从 Jenkins 管道中完成我需要做的事情?(在向其传递一些值/参数时触发另一个作业)。

jenkins jenkins-multibranch

6
推荐指数
1
解决办法
1万
查看次数

Jenkins 管道文件 - 将 Jenkinsfile 变量传递到进一步的命令中

问题:

在将 Jenkinsfile 中声明的变量传递给shssh 并在远程主机上执行的命令时,变量内容不会保留在远程主机上。

内置 Jenkins 变量在本地和远程主机上都保持良好。我定义的变量在本地工作正常,但不能在远程主机上转换。

尽管这个问题引用了 Docker,但这实际上是 100% 基于 Jenkins 管道的,因为它可以应用于任何有或没有 Docker 的示例。

背景:

我正在尝试根据当前构建标记动态创建一个图像名称,并将该名称放入一个变量中。

然后我将该变量传递到sh远程到 Docker 主机的步骤中,并使用定义的名称运行构建步骤。

Jenkinsfile 适用部分的片段...

// The below stage just echo's out some stuff into a file dockerimgname.jenkins.out
stage ('Construct Img name') {
  sh '''echo ${BUILD_TAG} | awk '{print tolower($0)}' | sed 's/jenkins-//' > dockerimgname.jenkins.out'''
}

// This stage reads that file from previous stage and puts the value into variable.
// The variable is echo'd locally which …
Run Code Online (Sandbox Code Playgroud)

jenkins jenkins-multibranch

5
推荐指数
1
解决办法
6万
查看次数