0

运行 terraform 脚本后,正在运行 make inventroy 命令以获取 all.yml 文件中的输出,以准备 yml 文件以运行 ansible 脚本。

以下是“Makemefile”

USER = tf-user

all:
    aws2 ec2 describe-instances \
        --filters "Name=tag:Name,Values=$(USER)*" "Name=instance-state-name,Values=running" \
        --output json \
        | jq ".Reservations[].Instances[].PublicDnsName" -r

z:
    aws2 ec2 describe-instances \
        --filters "Name=tag:Name,Values=$(USER)-tf-zk" "Name=instance-state-name,Values=running" \
        --output json \
        | jq ".Reservations[].Instances[].PublicDnsName" -r

b:
    aws2 ec2 describe-instances \
        --filters "Name=tag:Name,Values=$(USER)-tf-broker" "Name=instance-state-name,Values=running" \
        --output json \
        | jq ".Reservations[].Instances[].PublicDnsName" -r

sr:
    aws2 ec2 describe-instances \
        --filters "Name=tag:Name,Values=$(USER)-tf-sr" "Name=instance-state-name,Values=running" \
        --output json \
        | jq ".Reservations[].Instances[].PublicDnsName" -r

c3:
    aws2 ec2 describe-instances \
        --filters "Name=tag:Name,Values=$(USER)-tf-c3" "Name=instance-state-name,Values=running" \
        --output json \
        | jq ".Reservations[].Instances[].PublicDnsName" -r

connect:
    aws2 ec2 describe-instances \
        --filters "Name=tag:Name,Values=$(USER)-tf-connect" "Name=instance-state-name,Values=running" \
        --output json \
        | jq ".Reservations[].Instances[].PublicDnsName" -r

ksql:
    aws2 ec2 describe-instances \
        --filters "Name=tag:Name,Values=$(USER)-tf-ksql" "Name=instance-state-name,Values=running" \
        --output json \
        | jq ".Reservations[].Instances[].PublicDnsName" -r

hosts:
    aws2 ec2 describe-instances \
        --filters "Name=tag:Name,Values=$(USER)-tf*" "Name=instance-state-name,Values=running" \
        --output json \
        | jq ".Reservations[].Instances[].PublicDnsName" -r

list-tags:
    aws2 ec2 describe-instances \
        --filters "Name=tag:Name,Values=$(USER)*" "Name=instance-state-name,Values=running" \
        --output json \
        | jq ".Reservations[].Instances[] | [.PublicDnsName, .Tags[]] "

inventory:
    terraform output -json \
        | jq  'to_entries[] | {(.key): {hosts: .value.value}} ' \
        | jq -s \
        | json2yaml \
        | sed 's/ - / /g' \
        | sed 's/ "/ /g' \
        | sed 's/"/:/g'

ping:
    ansible -i hosts.yml all -m ping

go:
    ansible-playbook -i hosts.yml ../cp-ansible-aws-nonprod-cp-61/all.yml

cntpart:
    kafka-topics --bootstrap-server ec2-204-236-254-140.compute-1.amazonaws.com:9092  --describe | grep PartitionCount |  egrep -o 'PartitionCount: [0-9]*' | egrep -o '\d+' | awk '{ SUM += $1} END { print SUM }'

运行此命令后:进行库存

出现以下错误;

terraform output -json \
        | jq  'to_entries[] | {(.key): {hosts: .value.value}} ' \
        | jq -s \
        | json2yaml \
        | sed 's/ - / /g' \
        | sed 's/ "/ /g' \
        | sed 's/"/:/g'
/bin/sh: json2yaml: command not found

我怎样才能摆脱这个错误,我试图运行这个命令;pip install python-json2yaml 安装在我的mac中并且它成功安装但没有不同的结果

4

0 回答 0