AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-8061983

kcantrel's questions

Martin Hope
kcantrel
Asked: 2024-10-23 05:34:23 +0800 CST

Como escolher certos campos em um loop sem toneladas de linhas "pulando"

  • 6

Estou tentando criar uma matriz no Ansible que contém todas as regiões da AWS habilitadas na minha conta que oferecem suporte ao FSx para NetApp ONTAP (FSxN).

Sei que posso usar o seguinte para habilitar a lista de regiões na minha conta:

    - name: Get all the opted in regions.
      amazon.aws.aws_region_info:
      register: region_info

    - name: Just get region names
      set_fact:
        opted_in_regions: "{{ [item.region_name] + opted_in_regions }}"
      loop: "{{ region_info.regions }}"

Mas há momentos, geralmente quando uma nova região fica online, em que algumas regiões não oferecem suporte ao FSxN.

A única maneira que encontrei de saber quais regiões oferecem suporte a serviços específicos é baixar o guia de preços https://api.regional-table.region-services.aws.a2z.com/index.jsone procurar regiões que tenham "Amazon FSx for NetApp ONTAP" como "aws:serviceName". O formato desse arquivo é:

{
  "prices": [
    {
      "attributes": {
        "aws:region": "ap-east-1",
        "aws:serviceName": "Amazon Translate",
        "aws:serviceUrl": "https://aws.amazon.com/translate/"
      },
      "id": "translate:ap-east-1"
    },
    {
      "attributes": {
        "aws:region": "ap-northeast-1",
        "aws:serviceName": "Amazon Translate",
        "aws:serviceUrl": "https://aws.amazon.com/translate/"
      },
      "id": "translate:ap-northeast-1"
    },

Então, o que eu fiz foi criar uma variável com o conteúdo do arquivo:

    - name: Get the capabilities of all regions.
      set_fact:
        regions_capabilities: "{{lookup('ansible.builtin.url', 'https://api.regional-table.region-services.aws.a2z.com/index.json', split_lines=false)}}"

A próxima "tarefa" é percorrer todos os valores e adicionar a outra matriz aqueles que têm a string específica no aws:serviceNamecampo.

    - name: Get the intersection of opted in regions and regions that support FSxN.
      when: item['attributes']['aws:serviceName'] == "Amazon FSx for NetApp ONTAP" and item['attributes']['aws:region'] in opted_in_regions
      set_fact:
        fsxnRegions: "{{ [item['attributes']['aws:region']] + fsxnRegions }}"
      loop: "{{ regions_capabilities.prices }}"

Enquanto funciona, essas when:declarações geram MUITAS (milhares) de skipping...linhas na saída. E é dolorosamente lento.

Então, a questão é: existe uma maneira melhor de criar o array de regiões que suportam FSxN? E se não, como posso suprimir essa skippingmensagem, mas SOMENTE para essa tarefa?

Aqui está o manual completo do Ansible:

# Title: generate report
---
- hosts: localhost
  collections:
    - amazon.aws
  gather_facts: false
  name: Playbook to generate a report on all the FSxNs
  vars:
    fsxnRegions: []
    opted_in_regions: []

  tasks:
    - name: Get all the opted in regions.
      amazon.aws.aws_region_info:
      register: region_info

    - name: Just get region names
      set_fact:
        opted_in_regions: "{{ [item.region_name] + opted_in_regions }}"
      loop: "{{ region_info.regions }}"

    - name: Get the capabilities of all regions.
      set_fact:
        regions_capabilities: "{{lookup('ansible.builtin.url', 'https://api.regional-table.region-services.aws.a2z.com/index.json', split_lines=false)}}"

    - name: Get the intersection of opted in regions and regions that support FSxN.
      when: item['attributes']['aws:serviceName'] == "Amazon FSx for NetApp ONTAP" and item['attributes']['aws:region'] in opted_in_regions
      set_fact:
        fsxnRegions: "{{ [item['attributes']['aws:region']] + fsxnRegions }}"
      loop: "{{ regions_capabilities.prices }}"

    - name: Output
      debug:
        msg: "fsxnRegions={{ fsxnRegions }}"
ansible
  • 1 respostas
  • 49 Views
Martin Hope
kcantrel
Asked: 2024-04-05 01:32:22 +0800 CST

Como limitar os sistemas de arquivos FSxN que um processo pode ver?

  • 5

Estou tentando limitar um processo para poder listar apenas determinados sistemas FSx. Tenho uma função anexada à minha instância EC2 que inclui uma declaração como segue.

"Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "fsx:Describe*",
                "fsx:List*",
                "fsx:UpdateFileSystem"
            ],
            "Resource": [
                "arn:aws:fsx:us-west-2:75xxxxxxx648:file-system/fs-0e8d9xxxxxxxef3b",
                "arn:aws:fsx:us-west-2:75xxxxxxx648:file-system/fs-07bcxxxxxxxx5e43"
            ]
        }

Mas quando tento listar os sistemas de arquivos, recebo erros ao usar a ação de descrição.

ubuntu@ip-10-129-10-194:~$ aws fsx describe-file-systems --region=us-west-2
 
An error occurred (AccessDeniedException) when calling the DescribeFileSystems operation: User: arn:aws:sts::75xxxxxxx648:assumed-role/Cloud-Manager-Operator-399y9hM/i-00d9xxxxxxf16 is not authorized to perform: fsx:DescribeFileSystems on resource: arn:aws:fsx:us-west-2:75xxxxxxx648:file-system/* because no identity-based policy allows the fsx:DescribeFileSystems action

Mesmo se especificar um dos sistemas de arquivos FSxN listados na função, recebo um erro:

ubuntu@ip-10-129-10-194:~$ aws fsx describe-file-systems --region=us-west-2 --file-system-ids fs-07bxxxxxx5e43
 
An error occurred (AccessDeniedException) when calling the DescribeFileSystems operation: User: arn:aws:sts::75xxxxxxx648:assumed-role/Cloud-Manager-Operator-399y9hM/i-00d9bxxxxxff16 is not authorized to perform: fsx:DescribeFileSystems on resource: arn:aws:fsx:us-west-2:75xxxxxxx648:file-system/* because no identity-based policy allows the fsx:DescribeFileSystems action

Alguém sabe como posso fazer com que a AWS ignore silenciosamente os sistemas de arquivos aos quais não tenho acesso?

  • 1 respostas
  • 9 Views
Martin Hope
kcantrel
Asked: 2024-03-16 01:03:54 +0800 CST

Obtendo “Não há conectividade” ao tentar gerenciar um sistema de arquivos FSxN no BlueXP

  • 5

Adicionei um sistema de arquivos FSxN à minha tela BlueXP há algumas semanas e funcionou perfeitamente até ontem. Agora, quando tento "entrá-lo", recebo uma página de erro "Não há conectividade".

insira a descrição da imagem aqui

Confirmei que posso acessar o FSxN do conector pelas portas 22 e 443, então não acho que seja realmente um problema de conectividade. Sem considerar. Verifiquei as regras do Grupo de Segurança e da ACL e não vejo nada que possa impedir o fluxo de tráfego entre os dois sistemas.

Se alguém tiver alguma idéia sobre o que mais poderia estar causando o problema e/ou onde procurar para diagnosticar o problema, agradeceria ouvi-lo.

  • 1 respostas
  • 15 Views
Martin Hope
kcantrel
Asked: 2024-02-14 08:43:49 +0800 CST

Como incluir um objeto quando ele não inclui um campo de uma chamada select()

  • 6

Quero listar alguns campos de uma estrutura JSON, incluindo um opcional, que está potencialmente em uma matriz com outros campos que não desejo exibir. Tenho usado select() para obter o valor do array que desejo, mas se eu tiver um objeto que não possui essa chave opcional, ele será ignorado. Deixe-me mostrar um exemplo. Aqui estão os dados:

[
{"field1":"1", "field2":"x", "Tags":[{"Key": "Name", "Value": "Name1"}, {"Key": "tag1", "Value": "tag1valuea"}]},
{"field1":"2", "field2":"y", "Tags":[{"Key": "Name", "Value": "Name2"}]},
{"field1":"3", "field2":"z", "Tags":[{"Key": "tag2", "Value": "tag2valueb"}]}
]

A saída que eu quero é:

1 x name1
2 y name2
3 z

Eu tentei:

jq -r '.[] | .field1 + " " + .field2 + " " + (.Tags[] | select(.Key == "Name") .Value)'
1 x Name1
2 y Name2

Mas, como você pode ver, ele elimina a terceira entrada porque não possui uma "Chave" definida como "Nome".

Então eu tentei:

jq -r '.[] | .field1 + " " + .field2 + " " + (.Tags[] | if(.Key == "Name") then .Value else null end)'
1 x Name1
1 x
2 y Name2
3 z

Você pode ver que acabei com duas entradas para o primeiro objeto porque ele tem um elemento extra no array com o qual não me importo.

Eu tentei inúmeras permutações das duas opções acima, sem sucesso. Espero que alguém tenha uma maneira inteligente de fazer com que jq não "esvazie" o item se ele não tiver a chave que estou selecionando e/ou repita quando houver itens na matriz que não desejo selecionar.

jq
  • 2 respostas
  • 35 Views
Martin Hope
kcantrel
Asked: 2024-01-30 03:29:02 +0800 CST

Excluir dados de um volume FSxN não liberando espaço

  • 5

Eu tenho um volume em um sistema de arquivos FSx Netapp que, quando excluo arquivos, o espaço livre não está sendo restaurado no volume. Por exemplo. Aqui estou excluindo um arquivo de 8 GB em um volume de 10 GB, mas nenhum espaço está sendo retornado ao sistema de arquivos:

$ df -h .
Filesystem               Size  Used Avail Use% Mounted on
fsxdata:/keith_test_vol  9.5G  8.6G  981M  90% /mnt
$ ls -lh
total 8.1G
-rw-r--r-- 1 root   root   8.0G Jan 26 09:07 bigfile
-rw-rw-r-- 1 ubuntu ubuntu    6 Dec  6 11:30 test
-rw-r--r-- 1 root   root      0 Oct  9 16:54 test2
-rw-r--r-- 1 ubuntu ubuntu    0 Nov  9 11:35 test3
drwxrwxrwx 2 root   root   8.0K Dec 15 09:25 test_qtree
-rw-r--r-- 1 root   root      0 Oct  9 11:53 testfilefromroot
-rw-rw-r-- 1 ubuntu ubuntu    0 Nov  9 11:34 testfromunbuntu
$ rm bigfile
rm: remove write-protected regular file 'bigfile'? y
$ ls -lh
total 8.0K
-rw-rw-r-- 1 ubuntu ubuntu    6 Dec  6 11:30 test
-rw-r--r-- 1 root   root      0 Oct  9 16:54 test2
-rw-r--r-- 1 ubuntu ubuntu    0 Nov  9 11:35 test3
drwxrwxrwx 2 root   root   8.0K Dec 15 09:25 test_qtree
-rw-r--r-- 1 root   root      0 Oct  9 11:53 testfilefromroot
-rw-rw-r-- 1 ubuntu ubuntu    0 Nov  9 11:34 testfromunbuntu
$ df -h .
Filesystem               Size  Used Avail Use% Mounted on
fsxdata:/keith_test_vol  9.5G  8.6G  978M  90% /mnt

Alguém sabe o que está acontecendo aqui?

  • 1 respostas
  • 9 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Reformatar números, inserindo separadores em posições fixas

    • 6 respostas
  • Marko Smith

    Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não?

    • 2 respostas
  • Marko Smith

    Problema com extensão desinstalada automaticamente do VScode (tema Material)

    • 2 respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Martin Hope
    Fantastic Mr Fox Somente o tipo copiável não é aceito na implementação std::vector do MSVC 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant Encontre o próximo dia da semana usando o cronógrafo 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor O inicializador de membro do construtor pode incluir a inicialização de outro membro? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul O C++20 mudou para permitir a conversão de `type(&)[N]` de matriz de limites conhecidos para `type(&)[]` de matriz de limites desconhecidos? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann Como/por que {2,3,10} e {x,3,10} com x=2 são ordenados de forma diferente? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve