小编Sha*_*han的帖子

Boto3从S3 Bucket下载所有文件

我正在使用boto3从s3存储桶中获取文件.我需要类似的功能aws s3 sync

我目前的代码是

#!/usr/bin/python
import boto3
s3=boto3.client('s3')
list=s3.list_objects(Bucket='my_bucket_name')['Contents']
for key in list:
    s3.download_file('my_bucket_name', key['Key'], key['Key'])
Run Code Online (Sandbox Code Playgroud)

只要存储桶只有文件,这工作正常.如果存储桶中存在文件夹,则会抛出错误

Traceback (most recent call last):
  File "./test", line 6, in <module>
    s3.download_file('my_bucket_name', key['Key'], key['Key'])
  File "/usr/local/lib/python2.7/dist-packages/boto3/s3/inject.py", line 58, in download_file
    extra_args=ExtraArgs, callback=Callback)
  File "/usr/local/lib/python2.7/dist-packages/boto3/s3/transfer.py", line 651, in download_file
    extra_args, callback)
  File "/usr/local/lib/python2.7/dist-packages/boto3/s3/transfer.py", line 666, in _download_file
    self._get_object(bucket, key, filename, extra_args, callback)
  File "/usr/local/lib/python2.7/dist-packages/boto3/s3/transfer.py", line 690, in _get_object
    extra_args, callback)
  File "/usr/local/lib/python2.7/dist-packages/boto3/s3/transfer.py", line 707, in _do_get_object
    with self._osutil.open(filename, 'wb') as f:
  File "/usr/local/lib/python2.7/dist-packages/boto3/s3/transfer.py", …
Run Code Online (Sandbox Code Playgroud)

python amazon-s3 amazon-web-services boto3

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

Terraform初始状态文件创建

有没有办法从现有的基础架构创建terraform状态文件.例如,AWS账户附带了一些服务(例如:默认VPC).

但是terraform,似乎只知道它创造的资源.所以,

  1. 将现有AWS Infrastructure迁移到Terraform代码的最佳方法是什么
  2. 是否可以手动添加资源并手动修改状态文件(不良影响?)

更新

Terraform 0.7.0支持导入单个资源.

amazon-web-services terraform

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

HAProxy动态acl

在 HAProxy 中,是否可以为虚拟主机重定向编写 ACL(适用于所有虚拟主机的一条规则)

例子说

如果标头包含backend-name.domain.com---> 使用带有名称的后端backend-name

它应该像这样工作,

a.domain.com -----> backend a
b.domain.com -----> backend b
Run Code Online (Sandbox Code Playgroud)

无需分别为 a 和 b 明确编写 ACL。

在这里,我需要为所有基于域的路由使用一个 ACL,因为我使用通配符 DNS 将 domain.com 的所有子域解析为 HAProxy IP。

我动态添加和删除后端,很难使用脚本为每个新前端编写 ACL。

提前致谢。

acl haproxy

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

Jenkins amazon-ecr插件问题

我正在amazon-ecr为詹金斯使用插件,它很长时间都很顺利,今天突然破了

ERROR: Build step failed with exception
net.sf.json.JSONException: A JSONObject text must begin with '{' at character 0 of 
    at net.sf.json.util.JSONTokener.syntaxError(JSONTokener.java:499)
    at net.sf.json.JSONObject._fromJSONTokener(JSONObject.java:919)
    at net.sf.json.JSONObject._fromString(JSONObject.java:1145)
    at net.sf.json.JSONObject.fromObject(JSONObject.java:162)
    at net.sf.json.JSONObject.fromObject(JSONObject.java:132)
    at org.jenkinsci.plugins.docker.commons.credentials.DockerRegistryToken$1.call(DockerRegistryToken.java:91)
    at org.jenkinsci.plugins.docker.commons.credentials.DockerRegistryToken$1.call(DockerRegistryToken.java:71)
    at hudson.remoting.LocalChannel.call(LocalChannel.java:45)
    at org.jenkinsci.plugins.docker.commons.credentials.DockerRegistryToken.newKeyMaterialFactory(DockerRegistryToken.java:71)
    at org.jenkinsci.plugins.docker.commons.credentials.DockerRegistryEndpoint.newKeyMaterialFactory(DockerRegistryEndpoint.java:204)
    at org.jenkinsci.plugins.docker.commons.credentials.DockerRegistryEndpoint.newKeyMaterialFactory(DockerRegistryEndpoint.java:193)
    at com.cloudbees.dockerpublish.DockerBuilder$Perform.executeCmd(DockerBuilder.java:404)
    at com.cloudbees.dockerpublish.DockerBuilder$Perform.executeCmd(DockerBuilder.java:382)
    at com.cloudbees.dockerpublish.DockerBuilder$Perform.buildAndTag(DockerBuilder.java:326)
    at com.cloudbees.dockerpublish.DockerBuilder$Perform.exec(DockerBuilder.java:274)
    at com.cloudbees.dockerpublish.DockerBuilder$Perform.access$100(DockerBuilder.java:254)
    at com.cloudbees.dockerpublish.DockerBuilder.perform(DockerBuilder.java:225)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:782)
    at hudson.model.Build$BuildExecution.build(Build.java:205)
    at hudson.model.Build$BuildExecution.doRun(Build.java:162)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
    at hudson.model.Run.execute(Run.java:1738)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:410)
Build step 'Docker Build and Publish' marked …
Run Code Online (Sandbox Code Playgroud)

plugins amazon-web-services jenkins docker

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

在 Jenkins 上使用 Groovy 配置 amazon-ecs slave 插件

我正在尝试使用init.groovy脚本为 Jenkins 配置 amazon-ecs-plugin ,但找不到它的文档。我是基于 groovy 的配置自动化的新手

试图获取所有使用的属性

import jenkins.model.*
import com.cloudbees.jenkins.plugins.amazonecs.*
ECSCloud.metaClass.properties.each {println it.name+":\t"+it.type }
Run Code Online (Sandbox Code Playgroud)

输出:

regionName:           class java.lang.String
searchName:           class java.lang.String
slaveTimoutInSeconds: int
searchIndex:          interface hudson.search.SearchIndex
ACL:                  class hudson.security.ACL
descriptor:           class hudson.model.Descriptor
credentialsId:        class java.lang.String
search:               class hudson.search.Search
ecsService:           class com.cloudbees.jenkins.plugins.amazonecs.ECSService
class:                class java.lang.Class
searchUrl:            class java.lang.String
tunnel:               class java.lang.String
templates:            interface java.util.List
cluster:              class java.lang.String
jenkinsUrl:           class java.lang.String
amazonECSClient:      class com.amazonaws.services.ecs.AmazonECSClient
displayName:          class java.lang.String
Run Code Online (Sandbox Code Playgroud)

但是,不确定如何处理子类,例如 ecsService: class com.cloudbees.jenkins.plugins.amazonecs.ECSService

不确定,如何定义该属性

def ecs-cloud = new ECSCloud(
  regionName="String" …
Run Code Online (Sandbox Code Playgroud)

groovy amazon-ecs jenkins

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

Kubernetes:带有 StatefulSet 的 NFS

我正在尝试将现有的 NFS 与 StateFulSets 一起使用。

PresistentVolumeClaim使用 似乎自动创建volumeClaimTemplates

问题:

但是,由于PresistentVolumeClaim索赔整个PresistentVolume. 我必须PresistentVolume手动创建所有副本。有没有办法在 Kubernetes 中动态配置 NFS 持久卷?

注意: NFS Server 本身是静态的,只需要在 K8s 中动态创建卷,而不是 NFS Server 本身。

我正在使用 mongo statefulset 示例:

---
apiVersion: v1
kind: Service
metadata:
  name: mongo
  labels:
    name: mongo
spec:
  ports:
  - port: 27017
    targetPort: 27017
  clusterIP: None
  selector:
    role: mongo
---
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: mongo
spec:
  serviceName: "mongo"
  replicas: 3
  template:
    metadata:
      labels:
        role: mongo
    spec:
      terminationGracePeriodSeconds: 10 …
Run Code Online (Sandbox Code Playgroud)

nfs kubernetes persistent-volumes persistent-volume-claims statefulset

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

Apache Mesos + Docker + Karaf Cellar Cluster

我正在使用Marathon启动并运行Mesos群集(1个Master和2个Slave).我使用docker作为Mesos/Marathon中的容器.我有一个卡拉夫码头将在马拉松作为集群发射.我打算使用Cellar of Fabric作为Karaf的聚类解决方案.我的问题是

  1. 由于我在Marathon中使用随机端口映射,我不知道如何让Hazel-cast的自动发现工作.使用随机从站上的随机docker实例.任何建议或解决方案/方法

  2. 使用保险丝面料代替酒窖可以轻松实现这一点 - 我对此完全失明.请提供一些关于Karaf的链接/见解

提前致谢

marathon docker fusefabric mesos karaf

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