小编ofi*_*ule的帖子

Terraform depends_on 与模块

我是 terraform 的新手,我在模块结构上创建了一个自定义的 azure 策略。每个策略代表一个自定义模块。我创建的模块之一是为创建的任何新 azure 资源启用诊断日志。但是,我需要一个存储帐户。(在启用诊断设置之前,我如何实现“depends_on”?或任何其他方法? 我想首先创建存储帐户,然后创建诊断设置模块。在main.tf(调用所有其他模块的地方)或资源内部(模块)?

谢谢您的帮助!!:)

下面的代码代表 main.tf 文件:

//calling the create storage account name

module "createstorageaccount" {

source = "./modules/module_create_storage_account"
    depends_on = [
    "module_enable_diagnostics_logs"
  ]

}
Run Code Online (Sandbox Code Playgroud)

这个代表创建存储帐户模块

resource "azurerm_resource_group" "management" {


  name     = "management-rg"
  location = "West Europe"
}

resource "azurerm_storage_account" "test" {
  name                     = "diagnostics${azurerm_resource_group.management.name}"
  resource_group_name      = "${azurerm_resource_group.management.name}"
  location                 = "${azurerm_resource_group.management.location}"
  account_tier             = "Standard"
  account_replication_type = "LRS"

  tags = {
    environment = "diagnostics"
  }
}

    depends_on = [
    "module_enable_diagnostics_logs"
  ]

Run Code Online (Sandbox Code Playgroud)

azure terraform terraform-provider-azure

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

Python re用于自定义序列类型

我有一个类似序列的自定义对象s,该对象继承collections.Sequence并实现了custom __len____getitem__。它代表一大串字符串(> 4GB),并且延迟加载(我无法负担全部加载到内存中)。

我想对它进行RE匹配re.compile('some-pattern').match(s),但是失败了TypeError: expected string or buffer

在实践中,模式并不是'.*'需要整个s加载的东西。通常需要前几十个字节来匹配;但是,我无法事先告知确切的字节数,并且我希望将其保持通用,因此我不想做类似的事情re.compile('some-pattern').match(s[:1000])

关于如何创建str被接受的类似对象的任何建议re

以下代码说明了我的失败尝试。继承str也不起作用。

In [1]: import re, collections

In [2]: class MyStr(collections.Sequence):
    def __len__(self): return len('hello')
    def __getitem__(self, item): return 'hello'[item]
   ...:

In [3]: print(re.compile('h.*o').match(MyStr()))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-3-df08913b19d7> in <module>()
----> 1 print(re.compile('h.*o').match(MyStr()))

TypeError: expected string or buffer
Run Code Online (Sandbox Code Playgroud)

如果字符串的一大团来自单个大文件,那么我可以使用mmap它,它应该可以工作。但是,我的情况比较复杂。我有多个大文件,mmap每个文件都有一个,并有一个自定义类,它们是它们的串联视图。我实际上想从视图中的任何给定位置开始执行RE匹配。我在原始问题中忽略了这些细节,但是对于想了解为什么我有这样奇怪要求的人来说,这可能会有所帮助。

python regex python-2.7

13
推荐指数
1
解决办法
314
查看次数

终止原因:Client.InternalError:启动时出现客户端错误

请帮忙

如何确保 EC2 使用自定义 KMS 密钥;我们使用 terraform 部署 EC2 实例,每次在自动缩放组中启动 EC2 实例时,它都会崩溃并出现以下错误。似乎 EC2 实例无法访问 KMS 密钥

错误: 终止原因:Client.InternalError:启动时出现客户端错误

resource "aws_autoscaling_group" "autoscaling-group" {
  name                 = var.name
  availability_zones   = var.availability_zones
  min_size             = var.min_size
  desired_capacity     = var.desired_capacity
  max_size             = var.max_size
  health_check_type    = "EC2"
  launch_configuration = aws_launch_configuration.launch_configuration.name
  vpc_zone_identifier  = local.subnet_id
  termination_policies = ["OldestInstance"]
}

resource "aws_launch_configuration" "launch_configuration" {
  name                        = var.name
  image_id                    = var.ami
  instance_type               = var.instance_type
  iam_instance_profile        = var.iam_instance_profile_name
  security_groups             = [aws_security_group.security_group.id]
  associate_public_ip_address = true
}

resource "aws_autoscaling_policy" "autoscaling-policy" {
  name                      = var.name …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 terraform terraform-provider-aws

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

Kubernetes Pod 中的 OpenVPN 客户端

我正在研究如何使 OpenVPN 客户端在 Pod 的容器上工作,我解释了我所做的事情,但是您可以跳过我的所有解释并直接提供您的解决方案,如果可行的话,我不在乎将以下所有内容替换为您的步骤,我想让我的容器以外部和内部网络都可以工作的方式使用 VPN(例如 ExpressVPN)。

我有一个作为 OpenVPN 客户端的 docker 镜像,它可以与以下命令配合使用:

docker run --rm -it --cap-add=NET_ADMIN --device=/dev/net/tun my-app /bin/bash
Run Code Online (Sandbox Code Playgroud)

docker 镜像有一个入口点 bash 脚本:

curl https://vpnvendor/configurations.zip -o /app/configurations.zip
mkdir -p /app/open_vpn/ip_vanish/config
unzip /app/configurations.zip -d /app/open_vpn/config
printf "username\npassword\n" > /app/open_vpn/vpn-auth.conf
cd /app/open_vpn/config
openvpn --config ./config.ovpn --auth-user-pass /app/open_vpn/vpn-auth.conf

Run Code Online (Sandbox Code Playgroud)

它工作正常,但是当我将它部署为 K8S Pod 中的容器时,它崩溃了,这是可以理解的,K8S 集群需要节点之间的内部网络通信,因此 VPN 破坏了它......我该如何让它工作?谷歌搜索很令人沮丧,没有一个解决方案有效,而且只有几个,有一个有类似的问题:OpenVPN-Client Pod on K8s - Local network unreachable 但不太明白,请帮忙。

由于 IPVanish 众所周知,让我们以他们的 ovpn 为例,我使用其他供应商,但可以访问 IPVanish 帐户,但它也不起作用:

client
dev tun
proto udp
remote lon-a52.ipvanish.com 443
resolv-retry infinite
nobind …
Run Code Online (Sandbox Code Playgroud)

vpn networking openvpn kubernetes

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

如何使用从一个 Terraform 计划创建到另一个 Terraform 计划的 VPC id 和子网 id 值

我已经在一个 Terraform 计划中创建了 VPC、子网和安全组(我们称之为Plan A)。它执行得很好,状态也存储在远程 S3 后端。

现在我有了一个新的 Terraform 计划(我们称之为Plan B),我需要在其中启动一个 EC2 实例。为此,我需要从Plan ATerraform 输出中获取 VPC、子网 ID 。

有没有推荐的方法来做到这一点?

amazon-web-services terraform terraform-provider-aws

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

scapy 没有发送数据包

我尝试创建 scapy 工具来测试嗅探,这是我的代码:

def scan(ip):
    arp_req = sc.ARP(pdst=ip)
    bc = sc.Ether(dst="ff:ff:ff:ff:ff:ff")
    arp_req_bc = bc/arp_req
    answer = sc.srp(arp_req_bc, timeout=1, verbose=True)[0]
    print("IP\t\t\tMAC Address\n-----------------------")
    for element in answer:
        print(element[1].psrc + "\t\t" + element[1].hwsrc)

scan("192.168.43.1/24")
Run Code Online (Sandbox Code Playgroud)

输出是:

    "Sniffing and sending packets is not available at layer 2: "
RuntimeError: Sniffing and sending packets is not available at layer 2: winpcap is not installed. You may use conf.L3socket orconf.L3socket6 to access layer 3
Run Code Online (Sandbox Code Playgroud)

python scapy python-3.x

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

使用 reposurgeon 将多项目 Subversion 存储库迁移到 Git

我正在尝试使用 reposurgeon 将 Subversion 存储库转换为 Git,该存储库包含多个具有以下布局的项目:

<groupname>/<projectname>/{trunk,tags,branches}
Run Code Online (Sandbox Code Playgroud)

我试过这个 reposurgeon 脚本:

read <svnrepository.dump
sourcetype svn
prefer git
rebuild myrepository
Run Code Online (Sandbox Code Playgroud)

但结果是每个组都有一个分支的 Git 存储库。

有没有办法将转换限制为单个项目?

svn git reposurgeon

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

terraform 代码用于在 10 天后删除存储桶中的对象

我必须在 10 天后删除存储桶中的对象。这意味着存储桶中超过 10 天的所有对象都需要使用 terraform 删除。

无论我在哪里找到删除它的代码,它都有前缀。如果我必须应用于存储桶中的所有对象而不是前缀,需要做什么。

amazon-s3 terraform terraform-provider-aws

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

Sbt-native-packager 无法连接到 Docker 守护进程

这是我的配置,它工作了一年多但突然停止工作。

variables:
  DOCKER_DRIVER: overlay2
  DOCKER_TLS_CERTDIR: ""


  stage: deploy
  image: "hseeberger/scala-sbt:11.0.9.1_1.4.4_2.13.4"
  before_script:
    - apt-get update
    - apt-get install sudo
    - apt-get install apt-transport-https ca-certificates curl software-properties-common -y
    - curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
    - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
    - apt-get update
    - apt-get install docker-ce -y
    - sudo service docker start
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY

  script:
    - sbt docker:publishLocal
Run Code Online (Sandbox Code Playgroud)

GitlabCI 中的错误如下:

[warn] [1] sbt-native-packager wasn't able to identify the docker …
Run Code Online (Sandbox Code Playgroud)

scala docker sbt-native-packager gitlab-ci

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

Terraform 中的 Azure SQL 备份设置

尝试在 Terraform 文件中设置参数来备份 Azure SQL 服务器。

\n\n

在AWS中我可以添加一个密钥,例如:

\n\n
      allocated_storage = 1000\n      engine_version = \xe2\x80\x9c13.00.4451.0.v1\xe2\x80\x9d\n      backup_window = \xe2\x80\x9c18:00-18:30\xe2\x80\x9d\n      backup_retention_period = 14\n
Run Code Online (Sandbox Code Playgroud)\n\n

我找不到类似的密钥来备份 Azure SQL。以下是我在 Terraform Docs 和网络上找到的备份密钥:

\n\n
  resource "azurerm_sql_server" "some_erver" {\n    administrator_login          = "some_login"\n    administrator_login_password = "some_password"\n    location                     ="some_location"\n    name                         = "some_server"\n    resource_group_name          = "some_resource"\n    version                      = "some_version"\n\n  tags = {\n    environment  = "t"\n    stack-name   = "name"\n    stack-number = "number"\n    app-number   = "app-number"\n    logicmonitor = "bool"\n  }\n  backup {\n    frequency = "Daily"\n    time      = "04:00"\n  }\n\n  retention_daily {\n …
Run Code Online (Sandbox Code Playgroud)

terraform azure-sql-server terraform-provider-azure

4
推荐指数
1
解决办法
8772
查看次数

Hashicorp-Vault AppRole 身份验证方法和用户密码身份验证方法之间的主要区别是什么?

Hashicorp-Vault AppRole 身份验证方法和用户密码身份验证方法之间的主要区别是什么?

在文档中,我看到approle主要供机器或应用程序使用,而userpass供用户使用。

明显的是略有不同的 API 和一些不同的命名:

在安全性、性能等方面还有哪些其他主要区别?

authentication hashicorp-vault

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

如何使用 terraform 自动为我的 ec2 实例创建备份计划

鉴于我有 2 个由 terraform 创建的实例

resource "aws_instance" "web1" {
  ami           = data.aws_ami.ubuntu.id
  instance_type = "t3.micro"

  tags = {
    Name = "web1"
  }
}

resource "aws_instance" "web2" {
  ami           = data.aws_ami.ubuntu.id
  instance_type = "t3.micro"

  tags = {
    Name = "web2"
  }
}
Run Code Online (Sandbox Code Playgroud)

我如何使用 terraform 为他们创建备份计划?

backup amazon-web-services terraform terraform-provider-aws

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