小编hfr*_*nco的帖子

Ansible - 使用with_items并在有条件时使用

我有一堆服务器上有四个物理驱动器(/ dev/sda,sdb,sdc和sdd).sda上安装了操作系统.

我需要格式化除sda之外的每个驱动器.我需要检查每个驱动器上是否有数据.如果是的话,我不应该格式化它.

# This will get all physical disks (sda, sdb, sdc, etc) and assign them to disk_var
- name: Get disks
  set_fact: disk_var="{{hostvars[inventory_hostname]["ansible_devices"].keys()|list}}"

- name: Check if the disk is partitioned and also ignore sda
  stat: path=/dev/{{item}}1
  with_items: disk_var
  when: item != 'sda'
  register: base_secondary_partition_{{item}}

- name: Create GPT partition table
  command: /sbin/parted -s /dev/{{item}} mklabel gpt
  with_items: disk_var
  when: item != 'sda' and base_secondary_partition_{{item}}.stat.exists == false
Run Code Online (Sandbox Code Playgroud)

格式化这些驱动器显然涉及更多步骤,但在创建GPT分区表时,它在上一个任务中失败了.

这是它运行时的样子.您将看到它在上一个任务中失败:

TASK: [role | Get disks] ******************************************************
ok: [server1.com]

TASK: …
Run Code Online (Sandbox Code Playgroud)

ansible

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

如何使用aws ec2 describe-instances获取服务器名称

我能够将实例ID,实例类型和公共IP地址转换为表格格式.但是我无法解析标签名称.我们为所有服务器插入名称,以便更容易识别.

这是我到目前为止所提出的一个例子

aws ec2 describe-instances --query 'Reservations[].Instances[].[InstanceId,InstanceType,PublicIpAddress]' --output table

------------------------------------------------
|               DescribeInstances              |
+------------+-------------+-------------------+
|  i-64629700|  m1.small   |  54.227.243.165   |
|  i-2d300249|  m3.xlarge  |  23.23.166.230    |
|  i-7422c909|  m1.small   |  23.21.105.175    |
|  i-08c76e24|  m3.xlarge  |  54.235.253.163   |
|  i-99a20a72|  m3.medium  |  23.23.184.200    |
|  i-6053991b|  m1.large   |  54.221.250.189   |
Run Code Online (Sandbox Code Playgroud)

我不确定如何在表格中添加这样的内容

'Reservations[].Instances[].Tags[?Key==`Name`].Value[]'
Run Code Online (Sandbox Code Playgroud)

command-line-interface amazon-ec2 amazon-web-services

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

Bash脚本来读取文件

不知道为什么最后一行没有削减"从脚本:

#!/bin/bash

FILENAME=$1
while read line
do
cut -d '"' -f2
echo $line
done < $FILENAME

$ cat file

"1" test
"2" test
"3" test
"4" test
"5" test
Run Code Online (Sandbox Code Playgroud)

如果我使用以下命令运行此脚本:

$ ./test file

2
3
4
5
"1" test
Run Code Online (Sandbox Code Playgroud)

linux bash

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

Terraform - 创建多个存储桶

创建存储桶非常简单。

resource "aws_s3_bucket" "henrys_bucket" {
  bucket                  = "${var.s3_bucket_name}"
  acl                     = "private"
  force_destroy           = "true"
}
Run Code Online (Sandbox Code Playgroud)

最初我以为我可以为s3_bucket_name变量创建一个列表,但出现错误:

Error: bucket must be a single value, not a list
Run Code Online (Sandbox Code Playgroud)

——

variable "s3_bucket_name" {
  type = "list"
  default  = ["prod_bucket", "stage-bucket", "qa_bucket"]
}
Run Code Online (Sandbox Code Playgroud)

如何在不重复代码的情况下创建多个存储桶?

amazon-s3 amazon-web-services terraform

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

如何在 while 循环中“读取”多个变量

如何使用 while read 行读取多个变量?我正在尝试从这些多行变量创建一个 csv 文件。

不确定这是否是最好的方法。

例如:

1st_list=$(..code..)
2nd_list=$(..code..)

while read line_from_1, line_from_2
do
    echo "$line_from_1,$line_from_2" >> outputfile.csv

done < $1st_list,$2nd_list
Run Code Online (Sandbox Code Playgroud)

variables bash while-loop

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

如何循环 ansible_devices[elements]

我可以从主机收集事实,并且可以查看我的驱动器。如何使用 ansible_devices 变量仅获取驱动器(sda、sdb 等)?

我正在尝试做类似的事情:

tasks:
- debug: msg={{item.mount}}
  with_items: ansible_mounts
Run Code Online (Sandbox Code Playgroud)

我尝试了以下调试消息,但我能看到的唯一变量只是一个驱动器:

debug: msg={{ hostvars[inventory_hostname]["ansible_devices"] }}
Run Code Online (Sandbox Code Playgroud)

 "ansible_devices": {
        "sda": {
            "holders": [],
            "host": "Serial Attached SCSI controller: LSI Logic / Symbios Logic SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (rev 03)",
            "model": "Crucial_CT480M50",
            "partitions": {
                "sda1": {
                    "sectors": "2097152",
                    "sectorsize": 512,
                    "size": "1.00 GB",
                    "start": "2048"
                },
                "sda2": {
                    "sectors": "8388608",
                    "sectorsize": 512,
                    "size": "4.00 GB",
                    "start": "2099200"
                },
                "sda3": {
                    "sectors": "927213568",
                    "sectorsize": 512,
                    "size": "442.13 GB",
                    "start": "10487808"
                } …
Run Code Online (Sandbox Code Playgroud)

ansible

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