一个 VPC 网络 ACL 最多可以应用 40 条规则。
我有一个包含 50 多个 IP 地址的列表,我需要在我们的系统中明确阻止通过任何端口和任何协议访问这些地址。这是 ACL 的理想用途,但限制阻碍了我完成此任务。
当然,我可以在每个主机上的 IPTables 中执行此操作,但我想阻止任何和所有流量到 VPC 中的所有组件(例如到 ELB)。此外,在一个地方而不是在每个主机上管理这些规则要理想得多。
我希望在系统/平台级别有某种方式我不理解这样做。安全组是明确允许的,没有拒绝操作,所以他们不会成功。
我在 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 …
我在 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
testhostABC
etc 之类的任何内容testhost
,仅匹配字符串开头的任何内容。
这可能吗?似乎无法让它工作。
安塞布尔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
块及其所有子标签。听起来像是一场噩梦。想强行踢一个特定的用户连接。
操作系统是 Ubuntu 16,OVPN 服务器是 OpenVPN 2.3.10
我可以看到它们已连接,/etc/openvpn/openvpn-status.log
其中列出了当前的客户端状态。并且他们的持久连接池被保存到/etc/openvpn/ipp.txt
我可以通过简单地循环 openvpn 守护进程来踢所有用户,service openvpn restart
但是我想踢一个单一用户。
我试过openvpn --help
,man openvpn
也搜索过谷歌,但没有看到任何东西。
操作系统为 Ubuntu 16,服务器为 OpenVPN 2.3.10
首先,我使用这些作为基本指南: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 服务。所以我不能有一个没有加入域的图像。
我有一个想法(明天将测试):
active-directory windows-server-2008-r2 amazon-ec2 amazon-web-services
每当我使用 LDAP/AD 对系统进行身份验证时,我都希望至少有一个“本地”管理员可以进入,即使目录服务出现故障/出现问题。本质上是一个“后门”,以防目录服务出现问题。
这在詹金斯有可能吗?我一次只能看到启用 1 种身份验证方法的选项。
我正在尝试查找容器重新启动的历史记录。
当然STATUS
, a 上的字段docker ps
将显示当前的正常运行时间。
但是,如果我有一个带有重启策略的容器,例如restart: unless-stopped
并且它经历了多次重启 -如何检查重启/正常运行时间历史记录?
如果 docker 引擎本身没有跟踪这个 - 有没有已知的好方法来处理这个问题?
我需要从另一个作业触发 Jenkins 作业并将各种值传递给它以供以后的条件逻辑使用。看来参数化触发器插件将完全满足我的需求。( https://plugins.jenkins.io/parameterized-trigger )
然而,这个插件我在文档和语法构建器中都没有看到任何关于管道语法的内容。
我使用过的大多数插件都允许在管道脚本中使用。(詹金斯文件)。他们很少有语法文档,但我通常可以使用 Jenkins 中的语法构建器来获得正确的管道语法来使用插件。
是否可以在管道中使用此插件(具体是多分支管道)?
如果没有,那么有没有其他方法可以从 Jenkins 管道中完成我需要做的事情?(在向其传递一些值/参数时触发另一个作业)。
问题:
在将 Jenkinsfile 中声明的变量传递给sh
ssh 并在远程主机上执行的命令时,变量内容不会保留在远程主机上。
内置 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)