运行 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中并且它成功安装但没有不同的结果