我有以下文件夹结构:
\ninfrastructure\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80security-groups\n\xe2\x94\x82 \xe2\x94\x82 main.tf\n\xe2\x94\x82 \xe2\x94\x82 config.tf\n\xe2\x94\x82 \xe2\x94\x82. security_groups.tf\n\xe2\x94\x82 \n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80instances\n \xe2\x94\x82 main.tf\n \xe2\x94\x82 config.tf\n \xe2\x94\x82 instances.tf\n
Run Code Online (Sandbox Code Playgroud)\n我想通过引用来引用 security-groups 文件夹中实例化的安全组 ID。\n我尝试使用以下命令在 security_groups.tf 文件中输出所需的 ID
\noutput "sg_id" {\n value = "${aws_security_group.server_sg.id}"\n}\n
Run Code Online (Sandbox Code Playgroud)\n然后在实例文件中将其添加为模块:
\nmodule "res" {\n source = "../security-groups"\n}\n
Run Code Online (Sandbox Code Playgroud)\n这种方法的问题是,当我在实例文件夹中执行 terraform apply 时,它也会尝试创建安全组(我已经通过在安全组文件夹中执行 terraform apply 创建了安全组),但它失败了,因为 SG 是现存的。
\n在不更改代码结构的情况下引用在不同文件夹中创建的资源的最简单方法是什么?
\n谢谢。
\n我希望我的表单中的textarea字段与文本输入字段相同,跨浏览器.而且我不想强制自定义样式 - 我想在用户的浏览器中使用任何标准样式.
所以我知道我可以使用
textarea {
border-style: inset;
border-width: 2px;
}
Run Code Online (Sandbox Code Playgroud)
然后他们会在Chrom [e,ium]中匹配,但是他们在Firefox/Iceweasel上不匹配.
那么有一种直接的方式可以对浏览器说"请textarea
用你正在使用的任何边框渲染元素input[type="text"]
"吗?
是否有任何 Python 类型提示语法来声明一个函数采用与另一个函数相同的参数(和参数类型)?特别是这对于包装很有用,例如,
async def do_stuff(
param1: str,
param2: int,
param3: int = 14,
):
...
def run_async_thing(*args, **kwargs): # <--- What can I put here to say 'takes args like `do_stuff`'?
return asyncio.get_event_loop().run_until_complete(do_stuff(*args, **kwargs))
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我想向run_async_thing
函数添加类型提示,以标识它期望与函数具有相同的参数类型do_stuff
。
这是可能的,如果是,如何?
想要这个的主要原因是我的工具(特别是 PyCharm/IntellliJ IDEA)可以弄清楚run_async_thing
应该期望/接受什么参数。如果它有助于文档,那是一个奖励,但这主要用于工具。
tl;dr:Ansible 是否有包含当前 Python 解释器的变量?
作为我的剧本的一部分,我正在控制器上创建一个 Python 脚本(由另一个命令运行),并且我希望该脚本由 Ansible 使用的 Python 解释器运行。为此,我试图在脚本的 shebang 中设置解释器。
如果我手动设置解释器,我可以使用该ansible_python_interpreter
变量(我已经让它以这种方式工作)。如果我不手动设置解释器,那么 Ansible 将自动发现一个解释器,但我不能再使用该ansible_python_interpreter
变量,因为它没有设置。
通过查看文档,我无法找到任何方法来查看 Ansible 自动检测到的解释器。有什么我错过了吗?
(Ansible 版本 2.9.10,Python 3.6)
完整情况:
我在 AWX(开源 Ansible Tower)上运行 Ansible,使用自定义虚拟环境作为运行器。我使用 Hashicorp Vault 作为秘密管理系统,而不是在 AWX 中保密。为了访问 Vault,我使用短期访问令牌,这与 AWX 对从 Vault 中提取机密的内置支持不兼容,所以我手动执行(以便我可以在作业启动时提供 Vault 令牌) . 一般来说,这对我来说效果很好。
在这种特殊情况下,我ansible-vault
在控制器上运行(是的,有太多称为“保险库”的东西)来解密秘密。我正在使用该--vault-password-file
参数通过脚本提供解密密码。由于我使用的虚拟环境已经hvac
安装了软件包,我希望只使用一个简短的 Python 脚本从 Hashicorp Vault 中提取密码。一切正常,除了我不知道如何在这个脚本上设置 shebang 以指向 Ansible 正在使用的虚拟环境。
如果我无法得到一个可用的答案,我想我可以改为将密码直接拉入 Ansible,然后使用--ask-vault-pass
标志以这种方式传递密码。在我看来,Ansible 确实应该在某个地方公开解释器,所以我首先尝试这样做。
我正在使用django 1.6和factory-boy。
class UserFactory(factory.Factory):
class Meta:
model = models.User
username = factory.Sequence(lambda n: 'user%d' % n)
Run Code Online (Sandbox Code Playgroud)
这username
是一个简单CharField
的模型。这样,每次调用时,UserFactory()
我都会保存并获取唯一的用户命名对象。
在工厂男孩中,我可以使用factory.SubFactory(SomeFactory)
。
我如何生成SomeFactory
in的列表ParentOfSomeFactory
?
这样,如果我打电话,ParentOfSomeFactory()
我将创建SomeFactory以及ParentOfSomeFactory数据库的列表
的-Wall
以g ++标志包括标志-Wc++0x-compat
,该检查各种如果代码是对新的C++ 11标准编译可能(将)出现的问题.但我想禁用该警告,以便在一系列兼容性警告中不会丢失当前警告.我没有在手册页中找到任何有用的东西,也没有找到谷歌.似乎没有像例如那样的禁用标志-Wunused-variable
.
有任何想法吗?
我有如下代码
//Create acm certificate for livy_cert
resource "aws_acm_certificate" "livy_cert" {
count = local.count
domain_name = "${var.subsystem}-${var.component}-livy.${var.region_fqdn}"
validation_method = "DNS"
lifecycle {
create_before_destroy = true
}
}
//Validation route53
resource "aws_route53_record" "certificate_validation" {
for_each = {
for dvo in aws_acm_certificate.livy_cert[0].domain_validation_options : dvo.domain_name => {
name = dvo.resource_record_name
record = dvo.resource_record_value
type = dvo.resource_record_type
}
}
name = each.value.name
records = [each.value.record]
ttl = 60
type = each.value.type
zone_id = module.core_info.route53_zone_id
}
//Validate certificate before assigning
resource "aws_acm_certificate_validation" "livy_alb_validation_cert" {
count = …
Run Code Online (Sandbox Code Playgroud) 这是我的字符串: 'NE2SW15W2X8E'
我的输出是:
[('N', 1),
('E', 2),
('S', 1),
('W', 15),
('W', 2),
('X', 8),
('E', 1)]
Run Code Online (Sandbox Code Playgroud)
结果基于以下基础:
1)N之后没有任何数字,因此将1作为默认值
2)E之后有一个数字,因此将其取为默认值1而不是默认数字
3)类似地,W和X有数字之后使用它而不是默认值。
在此先感谢您的帮助,我们非常感谢。
python ×3
python-3.x ×2
terraform ×2
ansible ×1
c++ ×1
c++11 ×1
css ×1
django ×1
factory ×1
factory-boy ×1
g++ ×1
html ×1
mypy ×1
type-hinting ×1