小编Tar*_*ung的帖子

如何使用boto获取AWS iam中用户的权限或组详细信息

我已经使用python boto模块从AWS iam成功获取了用户.

码:

import  boto
from boto.iam.connection import IAMConnection


    cfn = IAMConnection(aws_access_key_id='somekeyid',aws_secret_access_key ='secret_here')
    data = cfn.get_all_users()

    for user in data.users:
        print user,"\n"
Run Code Online (Sandbox Code Playgroud)

如何获取用户与之关联的组详细信息或与用户关联的权限类型?

我添加了这行代码来获取与用户关联的组,我收到了下面提到的错误.

新增代码:

group=cfn.get_groups_for_user("Shital")
print group
Run Code Online (Sandbox Code Playgroud)

其中,"Shital"是存在并从上方取出的用户.出于测试目的,我手动将其传递给函数调用.

错误:

Traceback (most recent call last):
  File "getuser.py", line 14, in <module>
    pol=cfn.get_groups_for_user("Shita")
  File "/home/tara/testinghere/IAM/env/local/lib/python2.7/site-packages/boto/iam/connection.py", line 509, in get_groups_for_user
    list_marker='Groups')
  File "/home/tara/testinghere/IAM/env/local/lib/python2.7/site-packages/boto/iam/connection.py", line 102, in get_response
    raise self.ResponseError(response.status, response.reason, body)
boto.exception.BotoServerError: BotoServerError: 403 Forbidden
<ErrorResponse xmlns="https://iam.amazonaws.com/doc/2010-05-08/">
  <Error>
    <Type>Sender</Type>
    <Code>AccessDenied</Code>
    <Message>User: arn:aws:iam::586848946515:user/qa-api-users is not authorized to perform: iam:ListGroupsForUser on resource: user …
Run Code Online (Sandbox Code Playgroud)

python boto amazon-web-services

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

Docker服务公开暴露,但只是将端口暴露给localhost

我创建了一个服务,并将其暴露在我的docker swarm节点中的localhost上,但我可以公开访问该服务.

我删除并重新部署了docker堆栈,但仍然存在同样的问题.

这是我的docker-compose.yml我用来在堆栈中部署服务

version: "3"
networks:
    api-net:
        ipam:
            config:
                - subnet: 10.0.10.0/24

services:
    health-api:
        image: myprivateregistry:5000/healthapi:qa
        ports:
            - "127.0.0.1:9010:9010"
        networks:
            - api-net
        depends_on:
            - config-server
        deploy:
            mode: replicated
            replicas: 1
            placement:
                constraints:
                    - node.role == manager
Run Code Online (Sandbox Code Playgroud)

我没有添加它所依赖的服务,因为我不认为这是问题所在.

很少有人说它在docker swarm模式下不受支持.而不是那种情况下的解决方案.

docker docker-compose docker-swarm

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

在哪里放置php artisan migration命令

试图在docker stack上部署laravel应用程序。我感到困惑或无法弄清的是,我可以在哪里运行此php artisan migrate:fresh生成mysql中所需的表。

服务和任务运行良好

docker-compose.yml

version: '3.3'

networks:
  smstake: 
    ipam:
      config:
        - subnet: 10.0.10.0/24

services:

    db:
        image: mysql:5.7
        networks:
          - smstake
        ports:
          - "3306:3306"
        volumes:
          - db_data:/var/lib/mysql
        environment:
          MYSQL_ROOT_PASSWORD: password
          MYSQL_DATABASE: smstake
          MYSQL_USER: root
          MYSQL_PASSWORD: password
        deploy:
          mode: replicated
          placement:
            constraints:
              - node.role == manager
    app:

        image: smstake:latest          
        ports:
          - 8000:80
        networks:
          - smstake

        command: docker-compose exec app php artisan migrate --seed
        deploy:
          mode: replicated
          replicas: 1
          placement:
            constraints:
              - node.role == manager
volumes:
    db_data:
Run Code Online (Sandbox Code Playgroud)

这是用于生成映像的dockerfile

FROM alpine

ENV …
Run Code Online (Sandbox Code Playgroud)

php laravel docker docker-stack

13
推荐指数
3
解决办法
6054
查看次数

使用prometheus和alertmanager在松弛状态下不显示警报消息

我试图通过使用alertmanager获得Prometheus发现的警报以获得松弛通知.

这是alert.rules文件,工作正常

groups:
- name: Instances
  rules:
  # Alert for any instance that is unreachable for >5 minutes.
  - alert: InstanceDown
    expr: up == 0
    for: 5m
    labels:
      severity: page
    # Prometheus templates apply here in the annotation and label fields of the alert.
    annotations:
      description: '{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes.'
      summary: 'Instance {{ $labels.instance }} down'
Run Code Online (Sandbox Code Playgroud)

它成功地显示了一个实例. 在此输入图像描述

但是我的alertmanager.yml中的问题是它没有向slack发送通知.我也成功设置了松弛的webhook,甚至测试了钩子是否正常工作,同时创建了一个钩子与松弛提供的服务

alertmanager.yml

groups: …
Run Code Online (Sandbox Code Playgroud)

alert monitoring docker-compose prometheus

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

如何使用警报管理器配置普罗米修斯?

docker-compose.yml: 这是运行 prometheus、node-exporter 和 alert-manager 服务的 docker -compose。所有服务都运行良好。甚至prometheus的目标菜单中的健康状况也显示正常。

version: '2'

services:

    prometheus:
        image: prom/prometheus
        privileged: true
        volumes:
            - ./prometheus.yml:/etc/prometheus/prometheus.yml
            - ./alertmanger/alert.rules:/alert.rules
        command:
            - '--config.file=/etc/prometheus/prometheus.yml'
        ports:
            - '9090:9090'

    node-exporter:
        image: prom/node-exporter
        ports:
            - '9100:9100'

    alertmanager:
        image: prom/alertmanager
        privileged: true
        volumes:
             - ./alertmanager/alertmanager.yml:/alertmanager.yml
        command:
            - '--config.file=/alertmanager.yml'
        ports:
            - '9093:9093'
Run Code Online (Sandbox Code Playgroud)

普罗米修斯.yml

这是带有目标和警报目标集的 prometheus 配置文件。警报管理器目标网址工作正常。

global:
  scrape_interval: 5s
  external_labels:
    monitor: 'my-monitor'

# this is where I have simple alert rules
rule_files:
  - ./alertmanager/alert.rules

scrape_configs:
    - job_name: 'prometheus'
      static_configs: 
        - targets: ['localhost:9090']

    - job_name: …
Run Code Online (Sandbox Code Playgroud)

docker-compose prometheus

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

虽然令牌被传递,但在web api调用上获得not_authed松弛错误

我已成功在slack api中添加了一个应用程序,其权限范围设置为管理团队:

我已从Legacy令牌生成器生成令牌.我正在使用邮递员的以下信息进行api调用.

端点:https://slack.com/api/users.list

方法:GET

头:

关键=令牌

value =令牌生成

它回复了我以下的回应

{
  "ok": false,
  "error": "not_authed"
}
Run Code Online (Sandbox Code Playgroud)

使用curl尝试相同的东西是有效的,但使用POST方法,并不适用于GET方法

curl -X POST https://slack.com/api/users.list --data "token=codehere"
Run Code Online (Sandbox Code Playgroud)

我到底哪里错了.

slack-api slack

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

未在管理器节点中运行时,Docker服务laravel应用程序未运行

docker-compose.yml 这是我的docker -compose文件,用于使用docker -stack在多个实例中部署服务.正如您所看到的那样,应用程序服务是在两个节点中运行的laravel和其中一个节点中的数据库(mysql).

完整代码存储库: https ://github.com/taragurung/Ci-CD-docker-swarm

version: '3.4'
networks:
  smstake:   
    ipam:
      config:
        - subnet: 10.0.10.0/24

services:
    db:
        image: mysql:5.7
        networks:
          - smstake
        ports:
          - "3306"
        env_file:
          - configuration.env
        environment:
          MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
          MYSQL_DATABASE: ${DB_NAME}
          MYSQL_USER: ${DB_USER}
          MYSQL_PASSWORD: ${DB_PASSWORD}
        volumes:
          - mysql_data:/var/lib/mysql
        deploy:
          mode: replicated
          replicas: 1

    app:
        image: SMSTAKE_VERSION
        ports:
          - 8000:80
        networks:
          - smstake
        depends_on:
          - db
        deploy:
          mode: replicated
          replicas: 2
Run Code Online (Sandbox Code Playgroud)

我面临的问题. 1.虽然当我检查服务日志时服务处于运行状态,但我可以看到仅在一个节点中成功迁移而在另一个节点中没有运行.请参阅下面的日志

  1. 当我使应用程序服务仅在管理器节点中运行限制时,应用程序运行良好.我可以登录页面并执行所有操作但是当我使用复制品在任何节点中运行应用程序服务时,登录页面显示但是当尝试登录时重定向到 NOT FOUND页面 …

docker docker-compose docker-swarm laravel-5.3 docker-stack

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

子进程没有运行该命令生成的命令在终端上工作

cmd= ["sudo", "cat", "{filepath}".format(filepath=filepath), "|","egrep", "-v","\'{filteruser}\'".format(filteruser=filteruser)]
Run Code Online (Sandbox Code Playgroud)

fileformat和filteruser也可以是空白的

配置文件如下

[plugin_haproxy]
user= tara
host=localhost
filepath=/etc/haproxy/haproxy.global.inc
filter=
Run Code Online (Sandbox Code Playgroud)

这是我想在子进程上运行的命令,用pdb检查上面的变量值显示波纹管值并且看起来很棒

['sudo', 'cat', '/etc/haproxy/haproxy.global.inc', '|', 'egrep', '-v', "''"]
Run Code Online (Sandbox Code Playgroud)

Manullay运行代码sudo cat /etc/haproxy/haproxy.global.inc | 终端上的egrep -v"''"很棒

为什么子进程无法处理它.

"cat:|:没有这样的文件或目录\n \ncat:egrep:没有这样的文件或目录\n \ncat:

python subprocess

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

获取类型为"bind"的无效mount配置:docker中不存在绑定源路径

我正在尝试将以下docker-compose部署到docker swarm集群中.

version: '3.2'
services:
  jenkins:
    image: jenkins/jenkins:lts
    ports:
      - 8080:8080
    volumes:
      - ./data_jenkins:/var/jenkins_home
    deploy:
      mode: replicated
      replicas: 1
Run Code Online (Sandbox Code Playgroud)

我确实在docker -compose所在的相同位置有data_jenkins,并将该路径作为卷传递.但为什么抛出源路径不存在.究竟是什么问题.

此外,如果目录不存在-v应该创建它正确.为什么不呢?

docker docker-compose docker-swarm docker-stack

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

无法使AWS ECS服务通过服务发现进行通信

我正在尝试使2个服务通过AWS ECS服务中的服务发现终端节点进行通信。

例:

Service1:运行任务定义以运行nginx和phpfpm

Service2:运行任务定义以运行Redis

现在,我需要使service1容器与service2容器通信

根据互联网上的文档和资源。这是我所做的,无法满足需要。

  1. 我们需要打开服务发现(完成
  2. 设置适当的服务名称和名称空间,它们将用作服务发现端点(完成
  3. 使用以上属性集创建任务定义并创建服务(完成
  4. 现在,AWS将在Route53上生成SRV记录(确定

现在,当使用服务发现端点时,通常采用以下格式 service_discovery_service_name.service_discovery_namespace.

错误日志显示,无法解析名称。

在此处输入图片说明

service-discovery amazon-web-services amazon-ecs devops

6
推荐指数
2
解决办法
782
查看次数