小编Arb*_*zar的帖子

在ansible的单个任务中使用"when"检查多个条件

我想在ansible中使用when评估多个条件,这里是我的剧本:

- name: Check that the SSH Key exists
   local_action:
     module: stat
     path: "/home/{{ login_user.stdout }}/{{ ssh_key_location }}"
   register: sshkey_result

 - name: Generating a new SSH key for the current user it's not exists already
   local_action:
      module: user
      name: "{{ login_user.stdout }}"
      generate_ssh_key: yes 
      ssh_key_bits: 2048
   when: sshkey_result.rc == 1 and  ( github_username is undefined or github_username |lower == 'none' )
Run Code Online (Sandbox Code Playgroud)

这是我的var文件供参考:

---
vpc_region: eu-west-1
key_name: my_github_key
ssh_key_location: .ssh/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)

当我尝试执行此剧本时,我收到此错误:

TASK: [test | Check that the SSH Key exists] ********************************** …
Run Code Online (Sandbox Code Playgroud)

ansible ansible-playbook

33
推荐指数
4
解决办法
11万
查看次数

使用 Terraform 为 IAM 用户设置 AWS 控制台密码

我是 Terraform 的新手,只想问问是否可以使用 Terraform 为 IAM 用户设置 AWS 控制台密码。我能够配置 IAM 用户、组、他们的访问和密钥,但找不到设置控制台密码的方法。请指点我可以让它工作的地方。谢谢

terraform

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

Pycharm使用远程vagrant解释器创建Django项目时出错

我在使用远程vagrant解释器创建Django项目时遇到了问题.

所有步骤都成功了,我能够看到流浪汉口译员但由于这个错误"请选择当地口译员"而无法创建项目.

1-我已经在远程流浪盒上安装了Pip

2-我已经在远程流浪盒上安装了Django

在此输入图像描述

python django interpreter remote-access pycharm

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

允许使用 terraform 访问一个 AWS 安全组到另一个安全组

我想将一个安全组的访问权限授予另一个安全组,但我无法使其工作,有人可以指出我哪里做错了吗?

这是我的模块的main.tf

resource "aws_security_group" "rds_sg" {
    name = "${var.name}-${var.environment}-rds"
    description = "Security Group ${var.name}-${var.environment}"
    vpc_id = "${var.vpc_id}"
    tags {
        Name = "${var.name}-${var.environment}-rds"
        environment =  "${var.environment}"
    }

    // allows traffic from the SG itself
    ingress {
        from_port = 0
        to_port = 0
        protocol = "-1"
        self = true
    }

    // allow traffic for TCP 3306
    ingress {
        from_port = 3306
        to_port = 3306
        protocol = "tcp"
        security_group_id = "${var.security_group_id}"
    }

    // outbound internet access
    egress {
        from_port = 0 …
Run Code Online (Sandbox Code Playgroud)

terraform

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

source 命令未使用 shell 脚本将变量导出到 zsh 环境

我有一个非常简单的 shell 脚本,它在 bash 上运行得非常好,并将变量导出到当前的 bash 环境,但不幸的是它没有将变量导出到 zsh 环境。

#!/bin/bash
export AWS_ACCESS_KEY_ID=$(echo $RESULT | jq --raw-output .Credentials.AccessKeyId)
export AWS_SECRET_ACCESS_KEY=$(echo $RESULT | jq --raw-output .Credentials.SecretAccessKey)
export AWS_SECURITY_TOKEN=$(echo $RESULT | jq --raw-output .Credentials.SessionToken)
Run Code Online (Sandbox Code Playgroud)

我正在这样运行这个脚本:

source myscript.sh
Run Code Online (Sandbox Code Playgroud)

或者

. ./myscript.sh
Run Code Online (Sandbox Code Playgroud)

请指教,我怎样才能让它在 zsh 环境下工作?

linux bash shell zsh oh-my-zsh

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

如何使用Ansible在启动时传递EC2用户数据来安装软件包

我想通过在启动时将它作为用户数据传递给ec2实例来安装nginx.我这样传递它

- name: WebServer | Create the WebServer Instance(s)
  local_action:
    module: ec2
    region: "{{ vpc_region }}"
    group: "{{ ec2_security_groups[1].sg_name }}"
    keypair: "{{ key_name }}"
    instance_type: "{{ web_instance_type }}"
    ****user_data: "sudo apt-get install nginx -y"****
    image: "{{ imgae_id.ami }}"
    vpc_subnet_id: "{{ public_subnet }}"
    assign_public_ip: True
    wait: True
    wait_timeout: 600
Run Code Online (Sandbox Code Playgroud)

但是上面的方法对我来说不起作用,虽然它已经成功创建了EC2实例但没有安装nginx.

你能指点我正确的方向吗?谢谢

amazon-ec2 amazon-web-services ansible ansible-playbook

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

在ansible apt中state = installed意味着什么?

state=installed在ansible apt 中意味着什么?

- name: Install Node.js
  apt:
    pkg:
      - nodejs
    state: installed
    update_cache: yes
Run Code Online (Sandbox Code Playgroud)

在文档中或其他地方没有提到它.

ansible

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

回调插件不适用于Ansible v2.0

我正在使用Ansible v2.0并使用此插件,它显示每个任务消耗的时间,这是我的目录struture:

.
??? aws.yml
??? callback_plugins
?   ??? profile_tasks.py  
??? inventory
?   ??? hosts
??? roles
?   ??? ec2instance
?   ?   ??? defaults
?   ?   ?   ??? main.yml
?   ?   ??? tasks
?   ?       ??? main.yml
?   ??? ec2key
?   ?   ??? defaults
?   ?   ?   ??? main.yml
?   ?   ??? tasks
?   ?       ??? main.yml
?   ??? ec2sg
?   ?   ??? defaults
?   ?   ?   ??? main.yml
?   ?   ??? tasks
?   ?       ??? main.yml
? …
Run Code Online (Sandbox Code Playgroud)

ansible

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

在terraform中循环变量

我对terraform真的很陌生,想要做这个工作.我能够创建vpc,公共子网并获取它们的ID,现在我想在每个子网内创建一个ec2实例,当我尝试运行ec2模块时,它只在第一个子网内创建实例并忽略其他子网.这是我的代码片段.

输出子网ID:

output "public_subnets_id" {
  value = "${join(",", aws_subnet.public.*.id)}"
}
Run Code Online (Sandbox Code Playgroud)

这里的示例输出:

public_subnets_id = subnet-84aae6f4,subnet-a12124e8
Run Code Online (Sandbox Code Playgroud)

这是我的代码,我试图将其拆分并在每个子网内创建实例,但只能创建到第一个子网.

subnet_id = "${element(split(",", var.subnet_id), count.index)}"
Run Code Online (Sandbox Code Playgroud)

terraform

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

在 Linux shell 中声明 -A 做什么?

我对declare -A这里的内容感到困惑,有人可以解释一下吗?

declare -A deploy
roles="test1 test2 test3 test4"

for role in $roles; do
    deploy[$role]=${!role}
done
Run Code Online (Sandbox Code Playgroud)

更迷惑 ${!role}

linux bash shell

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

使用 boto 将 AMI 从一个 AWS 账户复制到另一个 AWS 账户

我做了一些 RnD,但没有找到关于这个主题的任何答案或提示。如果可以使用 boto 将 AMI 从一个 AWS 账户复制到另一个账户,任何人都可以给出提示或答案。

python boto amazon-web-services python-2.7 amazon-ami

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

避免破坏先前创建的资源

我想避免terraform破坏我之前创建的资源,而是创建新的资源。

我/想要使用这样的地形:

  • 创建AWS IAM组和策略
  • 将用户附加到这些组
  • 我想通过提供外部var文件来创建新的组和用户,就像我为上述用户和组所做的那样

但是,当我尝试传递新的var文件时,我创建了新资源并删除了前一个资源,因此我想创建一个新资源,但仍要保留旧资源,直到我提到要删除它为止。它。

这真的让我感到困惑,有人可以指出我如何实现这一目标吗?

提前致谢

terraform

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

如何在github上找到我的组织ID?

如何找到我的GitHub组织ID?

理想情况下,我可以通过脚本或命令来解析其输出。

github github-api

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