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-109833

Itai Ganot's questions

Martin Hope
Itai Ganot
Asked: 2020-03-09 07:08:48 +0800 CST

Usando o inventário dinâmico do Consul como inventário do Ansible e gostaria de definir um usuário ssh específico, como é feito?

  • 2

Minha configuração:

Todo servidor físico na rede tem o consul-client instalado e eu gerencio esses servidores usando o script consul_dynamic_inventory que editei para permitir o uso de opções de agrupamento específicas com base na versão principal do sistema operacional, por exemplo, e outras coisas.

Exemplo:

(base) ➜  ansible git:(master) ✗ ansible centos6 -m ping -e ansible_ssh_user=root
Sunday 08 March 2020  16:55:10 +0200 (0:00:00.101)       0:00:00.102 **********
agent-c6-06.node.company.consul | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
agent-c6-01.node.company.consul | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
agent-c6-05.node.company.consul | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}

O exemplo acima é possível porque eu configurei /etc/ansible/ansible.cfga diretiva "inventory" para apontar para o script consul_dynamic_inventory para não precisar adicionar explicitamente o "-i inventário_arquivo" ao comando.

Meu problema:

Gostaria de adicionar o "ansible_ssh_user=root" aos padrões para não precisar fornecer essa opção sempre que executar o ansible.

Normalmente, para adicioná-lo a todos os hosts, no arquivo de inventário eu adicionaria:

[all:vars]
ansible_ssh_user=root

Mas como meu inventário é na verdade um script, não tenho certeza de onde adicioná-lo, pois adicioná-lo ao script obviamente interrompe sua execução.

Eu tentei adicioná-lo nas seguintes partes do ansible.cfgarquivo:

[defaults]
[inventory]
[ssh_connection]

Mas sem sucesso.

Minha pergunta:

Onde seria o lugar certo para adicioná-lo?

ansible consul
  • 1 respostas
  • 1163 Views
Martin Hope
Itai Ganot
Asked: 2018-12-31 09:03:49 +0800 CST

Como arquivar automaticamente buckets inteiros do AWS S3 no S3 Glacier?

  • 1

Sou obrigado a arquivar cerca de 200 buckets do AWS S3 no S3 Glacier e gostaria de fazer isso automaticamente, mas não consigo descobrir como isso pode ser feito com aws-cli.

O único método que encontrei, é através da AWS UI... ir para cada bucket manualmente e dentro dele, marcar cada diretório -> clique com o botão direito e escolha "change storage type" e escolha Glacier.

Alguém tem alguma experiência com isto?

amazon-web-services
  • 3 respostas
  • 1855 Views
Martin Hope
Itai Ganot
Asked: 2017-12-05 07:12:39 +0800 CST

AWS Cli não inclui switch de comando específico, embora a documentação mostre que deveria, alguma ideia de como resolvê-lo?

  • 1

A AWS anunciou há 5 dias que agora oferece suporte ao emparelhamento de VPC em diferentes regiões.

Fonte: https://aws.amazon.com/about-aws/whats-new/2017/11/announcing-support-for-inter-region-vpc-peering/

Em relação ao comando AWS Cli que ajuda você a obter essa conexão de emparelhamento, verifique este link: http://docs.aws.amazon.com/cli/latest/reference/ec2/create-vpc-peering-connection.html

Você verá que o comando foi estendido e agora pode obter um novo switch "[--peer-region value]", mas depois de atualizar meu aws-cli para a versão mais recente, o switch não está incluído lá.

Estes são os interruptores que tenho:

NAME
       describe-vpc-peering-connections -

DESCRIPTION
       Describes one or more of your VPC peering connections.

       See also: AWS API Documentation

SYNOPSIS
            describe-vpc-peering-connections
          [--filters <value>]
          [--dry-run | --no-dry-run]
          [--vpc-peering-connection-ids <value>]
          [--cli-input-json <value>]
          [--generate-cli-skeleton <value>]

A versão do AWS Cli que instalei é:

aws-cli/1.14.2 Python/2.7.10 Darwin/16.4.0 botocore/1.8.6

O Python 3.6 aws-cli também não possui essa opção.

Pode ser que a documentação oficial da AWS tenha sido atualizada, mas a AWS Cli não?

Alguém mais se deparou com esse problema?

amazon-web-services
  • 1 respostas
  • 43 Views
Martin Hope
Itai Ganot
Asked: 2017-12-04 08:34:10 +0800 CST

Rotear o tráfego entre uma VPC em uma região para uma VPC em outra região

  • 2

Para permitir que instâncias em uma VPC no Oregon (us-west-2) entrem em contato com instâncias em outra VPC na Irlanda (eu-west-1), instalei máquinas de gateway OpenSwan em ambas as regiões e estabeleci um túnel IPSEC entre as duas regiões que funciona corretamente.

Details:
Oregon VPC CIDR: 172.31.0.0/16
Ireland VPC CIDR: 172.91.0.0/16

Na Irlanda, usei um modelo do CloudFormation que escrevi para criar uma nova pilha que, entre outras coisas, cria uma nova VPC isolada e uma das tarefas que o CloudFormation está executando é fazer o peering entre a VPC padrão da Irlanda e a recém-criada (isolada ) VPC.

The new isolated VPC CIDR: 172.52.0.0/16.

No momento, se eu executar um comando ping de uma instância que reside na VPC padrão no Oregon (172.31.xx) em direção a uma instância que reside na VPC padrão da Irlanda (172.91.xx), ele funciona como um encanto.

Em seguida, gostaria que as máquinas na nova VPC isolada (172.52.xx) pudessem acessar instâncias na VPC padrão no Oregon (172.31.xx).

A tabela de rotas associada à VPC padrão no Oregon está configurada para rotear o tráfego:

to: 172.52.0.0/16 GW: Interface of the OpenSwan server in Oregon.
to: 172.91.0.0/16 GW: Interface of the OpenSwan server in Oregon.

A tabela de rotas associada à VPC padrão na Irlanda está configurada para rotear o tráfego:

to: 172.31.0.0/16 GW: Interface of the OpenSwan server in Ireland.
to: 172.52.0.0/16 GW: The peering connection ID (between 172.52.x.x and 172.91.x.x)

Grupo de segurança que está anexado à instância do OpenSwan @ Oregon:

Allows all traffic to 172.52.x.x/16, 172.91.x.x/16, 172.31.x.x/16.
Allows UDP 500 and 4500 to the EIP of the OpenSwan instance in Ireland.

Grupo de segurança anexado à instância do OpenSwan @ Irlanda:

Allows all traffic to 172.52.x.x/16, 172.91.x.x/16, 172.31.x.x/16.
Allows UDP 500 and 4500 to the EIP of the OpenSwan instance in Oregon.

ipsec.conf:

version 2.0     # conforms to second version of ipsec.conf specification

# basic configuration
config setup
        protostack=netkey
        nat_traversal=yes
        virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:172.91.0.0/16,%v4:172.52.0.0/16,%v4:25.0.0.0/8,%v4:172.31.0.0/16,%v4:172.59.0.0/20,%v6:fd00::/8,%v6:fe80::/10
        oe=off

include /etc/ipsec.d/*.conf

Consigo pingar uma instância que reside na VPC padrão do Oregon de cada uma das máquinas OpenSwan (Oregon/Irlanda) e vice-versa, mas não consigo pingar essa instância de uma instância que reside na sub-rede 172.52.xx/16 .

Qual rota você acha que estou perdendo? Preciso permitir que instâncias na VPC isolada na Irlanda alcancem a VPC padrão em Oregon.

amazon-ec2
  • 2 respostas
  • 873 Views
Martin Hope
Itai Ganot
Asked: 2017-10-26 23:08:48 +0800 CST

Quando uso uniq -u, não recebo saída, mas por quê?

  • 0

Quando executo o seguinte comando, espero obter os endereços IP das instâncias do membro ASG:

current_servers=$(aws ec2 describe-instances --instance-ids $(aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names "${asgname}" --region $region | grep InstanceId | awk -F: '{print $2}' | tr -d '\"|,' | tr -d '\n') --region $region | grep "PrivateIpAddress" | grep -v '\[' | awk -F: '{print $2}' | uniq -u | tr -d '\"|,' )

Por algum motivo, não recebo saída.

Mas se eu alterar o uniq -ucomando para apenas uniq, obterei a saída correta.

Do homem do uniq:

-u, --unique
              only print unique lines

Sem o comando uniq, a saída é:

 172.51.39.73
 172.51.39.73
 172.51.39.73

Portanto, parece (pelo homem do uniq) que, se eu quiser obter apenas uma ocorrência da saída, tenho que usar uniq -u.

Alguém sabe por que o comando age assim? que está me dando nenhuma saída se eu usar a opção "-u"?

linux
  • 1 respostas
  • 59 Views
Martin Hope
Itai Ganot
Asked: 2017-10-25 02:28:31 +0800 CST

Como gerenciar a associação de VPC à zona hospedada do Route53 usando o CloudFormation?

  • 2

Eu escrevi um modelo CloudFormation que cria um vpc, sub-redes, rotas, asg's e instâncias.

Desejo que o CloudFormation lide com a associação do vpc recém-criado com uma zona hospedada do Route53 existente, mas não consigo encontrar como fazê-lo no CloudFormation.

Usando o aws cli, isso pode ser feito executando (no script user_data):

aws route53 associate-vpc-with-hosted-zone --hosted-zone-id AAZZZ123AA --vpc VPCRegion=us-west-2,VPCId=$vpcid

Mas eu quero que o CloudFormation gerencie essas associações para que, quando a pilha for excluída, a associação vpc também seja excluída.

Não consegui encontrar on-line como isso pode ser feito com o CloudFormation, então alguém sabe se isso pode ser feito?

amazon-web-services
  • 1 respostas
  • 1847 Views
Martin Hope
Itai Ganot
Asked: 2017-10-19 01:47:32 +0800 CST

Não tenho certeza de quais arquivos devo gerar a partir do certificado do pacote, alguém sabe?

  • -1

Comprei um novo certificado curinga e recebi um arquivo zip que contém os seguintes arquivos:

star.domain.com.crt
star.domain.com.ca-bundle
star.domain.com.p7b

O prestador de serviços que requer os certificados quer que eu lhe envie o novo certificado nos seguintes formatos:

Private key
Public key (CSR)
Intermediate certificate

Não tenho certeza de como gerar esses arquivos dos que recebi do provedor SSL.

Eu executei alguns comandos openssl para tentar gerar os arquivos necessários, mas não tenho certeza se os arquivos gerados se qualificam para o serviço para o qual preciso enviar os certificados.

Edit: executei o seguinte comando para criar o arquivo .pem:

openssl pkcs7 -in star.domain.com.p7b -text -out star.domain.com.pem -print_certs

Essa é a maneira correta de criar o pem?

Alguém se importa em me ajudar com isso por favor?

ssl-certificate
  • 2 respostas
  • 95 Views
Martin Hope
Itai Ganot
Asked: 2017-10-17 23:29:43 +0800 CST

Como expandir o mapeamento de grupos de segurança para adicionar outro nível por região em um modelo do CloudFormation?

  • 0

Eu escrevi um modelo CloudFormation que cria um AutoScaling Group que, por sua vez, inicia servidores por ambiente.

Até hoje a empresa trabalha na região us-west-2 e o mapeamento de SecurityGroups ficou assim:

"SecurityGroupMap" : {
    "DEV"  : { "sg" : "sg-d111acbe" },
    "Load"  : { "sg" : "sg-d111acbe" },
    "Staging"   : { "sg" : "sg-d123acbe" },
    "Prod-US" : { "sg" : "sg-d145acbe" }
},

Agora há uma nova motivação, meu chefe quer que possamos começar a construir esse modelo do CloudFormation em outra região.

Como é outra região, precisarei criar manualmente os SecurityGroups necessários e atualizar seu ID no modelo.

Eu queria saber se esse método de escrita funcionaria:

"SecurityGroupMap" : {
    "RegionMap": {
        "us-east-1" : { "DEV" : "sg-1", "Load" : "sg-2", "Staging" : "sg-3", "Prod-US" : "sg-4" },
        "us-east-2" : { "DEV" : "sg-1", "Load" : "sg-2", "Staging" : "sg-3", "Prod-US" : "sg-4" },
        "us-west-1" : { "DEV" : "sg-1", "Load" : "sg-2", "Staging" : "sg-3", "Prod-US" : "sg-4" },
        "us-west-2" : { "DEV" : "sg-d143acbe", "Load" : "sg-d143acbe", "Staging" : "sg-d143acbe", "Prod-US" : "sg-d143acbe" },
        "eu-west-1" : { "DEV" : "sg-1", "Load" : "sg-2", "Staging" : "sg-3", "Prod-US" : "sg-4" },
        "eu-central-1" : { "DEV" : "sg-1", "Load" : "sg-2", "Staging" : "sg-3", "Prod-US" : "sg-4" },
        "eu-west-2" : { "DEV" : "sg-1", "Load" : "sg-2", "Staging" : "sg-3", "Prod-US" : "sg-4" }
    },

E se sim, como seria o [ { "Fn::FindInMap" : } ]testamento?

amazon-cloudformation
  • 1 respostas
  • 209 Views
Martin Hope
Itai Ganot
Asked: 2017-10-17 03:45:37 +0800 CST

Como quebrar o certificado da AWS para chaves públicas/privadas e certificado intermediário? [duplicado]

  • 1
Essa pergunta já tem respostas aqui :
Baixe o certificado SSL do gerenciador de certificados aws (4 respostas)
Fechado há 4 anos .

Emiti um certificado curinga na AWS para instalar no site da empresa (que está armazenado em uma distribuição do CloudFront).

Há um serviço de suporte ao cliente que a empresa usa e, quando você navega para support.company.com, ele o leva a esse site de serviço.

Até hoje, o acesso ao site de suporte era feito em protocolo HTTP e gostaríamos de alterá-lo para HTTPS.

Para isso, preciso carregar para esse site do provedor de serviços de suporte ao cliente o novo certificado, eles exigem chave privada, chave pública e certificado intermediário.

Eu executei o seguinte comando para obter os certificados:

aws iam get-server-certificate --server-certificate-name wild_company.com_10072019

Mas a saída me mostra o "CertificateChain" - todos os certificados são exibidos em uma linha e outro "CertificateBody" que também é exibido em uma linha.

O CertificateBody é mais fácil de distinguir pelos "--- Begin certificate ---" e "---END certificate---" que aparecem apenas uma vez, mas no CertificateChain existem muitas marcas de início/fim e não estou saiba como transformá-lo em chaves públicas/privadas e certificado intermediário.

Alguma ideia de como pode ser feito?

amazon-web-services
  • 1 respostas
  • 126 Views
Martin Hope
Itai Ganot
Asked: 2017-10-17 00:54:11 +0800 CST

O redirecionamento do CloudFront com ssl dá erro de "certificado inválido" ao acessar https://company.com, mas por quê?

  • 2

Configurei um redirecionamento do AWS CloudFront (com SSL) usando [este guia]. 1

Configurei um registro A com Alias ​​que aponta company.com. ao nome de domínio do CloudFront.

Quando acesso o nome de domínio do CloudFront, o site é carregado com sucesso e parece protegido.

Mas quando eu acesso o site por https://company.comrecebo um erro de certificado que diz que o certificado não é válido.

O certificado que comprei é para *.company.com.

No chrome, recebo o seguinte erro:

Your connection is not private

Attackers might be trying to steal your information from angelsense.com (for example, passwords, messages, or credit cards). 
Learn more
NET::ERR_CERT_COMMON_NAME_INVALID

Automatically send some system information and page content to Google to help detect dangerous apps and sites. Privacy policy

Como pode ser corrigido?

ssl-certificate
  • 1 respostas
  • 2061 Views
Martin Hope
Itai Ganot
Asked: 2017-10-16 22:52:09 +0800 CST

Como excluir automaticamente a linha de chave de known_hosts quando uma sessão é fechada?

  • 1

Estou trabalhando na automação de um ambiente inteiro usando o AWS CloudFormation e durante o período de teste sou obrigado a matar e recriar os servidores com muita frequência.

Os servidores estão configurados para definir seus endereços IP de um pool dedicado, o que significa que na primeira vez que me conecto a eles, tenho que aceitar a verificação da chave do host (a pergunta sim/não) e, quando excluo o servidor e recrio isso, eu tenho que excluir a chave do servidor do arquivo known_hosts toda vez.

Minha pergunta é:

É possível excluir a chave de known_hosts automaticamente quando fecho a sessão? existe tal configuração que eu perdi?

linux
  • 3 respostas
  • 1933 Views
Martin Hope
Itai Ganot
Asked: 2017-07-20 05:34:16 +0800 CST

Não é possível se conectar a um servidor membro em uma rede VPN ou vice-versa, mas por quê?

  • 1

Criei uma VPC de teste na AWS para uma prova de conceito do OpenVPN.

Nesta VPC eu almocei um servidor membro linux e uma AMI de servidor OpenVPN do AWS Marketplace, instalei e configurei.

Como cliente, consigo me conectar à rede VPN e ao sshservidor OpenVPN usando cada um de seus 3 ip's, mas o problema é que não consigo sshentrar no servidor membro na sub-rede principal da VPC.

A rede está totalmente estabelecida entre o servidor OpenVPN e o servidor membro.

Os detalhes são:

VPC CIDR: 172.16.0.0/16
VPC Main Subnet CIDR: 172.16.200.0/24 
VPN CIDR: 172.16.201.0/24

OVPN server: 
Main Subnet interface: 172.16.200.66
VPN Server interface: 172.16.201.1
VPN Client interface: 172.16.201.129

Member server:
Main Subnet interface: 172.16.200.71

My Client IP: 172.16.201.131-134 (disconnected a few times)

Configurei o servidor OpenVPN assim: E:insira a descrição da imagem aqui insira a descrição da imagem aqui

Além disso, tentei usar o NAT, mas sem sucesso.

Quando executo tcpdumpa partir do servidor OVPN enquanto tento sshda máquina cliente para o servidor membro:

openvpnas@openvpnas2:~$ sudo tcpdump -i as0t1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on as0t1, link-type RAW (Raw IP), capture size 262144 bytes
11:21:52.668974 IP 172.16.201.131.59009 > 172.16.200.71.ssh: Flags [SEW], seq 2266158529, win 65535, options [mss 1252,nop,wscale 5,nop,nop,TS val 758529356 ecr 0,sackOK,eol], length 0
11:21:53.681875 IP 172.16.201.131.59009 > 172.16.200.71.ssh: Flags [S], seq 2266158529, win 65535, options [mss 1252,nop,wscale 5,nop,nop,TS val 758530357 ecr 0,sackOK,eol], length 0

Eu posso ver que o servidor OVPN está tentando encaminhar os pacotes para o servidor membro, mas ao executar tcpdumpna interface do servidor membro, vejo que nenhum pacote chega.

Rotas no servidor OVPN:

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.200.1    0.0.0.0         UG    0      0        0 eth0
172.16.200.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
172.16.201.0    0.0.0.0         255.255.255.128 U     0      0        0 as0t0
172.16.201.128  0.0.0.0         255.255.255.128 U     0      0        0 as0t1

Rotas no servidor membro:

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.200.1    0.0.0.0         UG    0      0        0 eth0
172.16.200.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
172.16.201.0    172.16.200.66   255.255.255.0   UG    0      0        0 eth0

Rotas no cliente (meu laptop), algumas delas foram adicionadas manualmente por mim:

netstat -nr | grep tun
172.16.200/24      172.16.201.134     UGSc            4        4   utun2
172.16.201/24      172.16.200.66      UGSc            1        2   utun2
172.16.201.134     172.16.201.134     UH              3        4   utun2

Interfaces de rede no servidor OVPN:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 02:fb:99:4a:67:04 brd ff:ff:ff:ff:ff:ff
    inet 172.16.200.66/24 brd 172.16.200.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::fb:99ff:fe4a:6704/64 scope link
       valid_lft forever preferred_lft forever
3: pr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether 36:ce:f1:ac:59:42 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::34ce:f1ff:feac:5942/64 scope link
       valid_lft forever preferred_lft forever
21: as0t0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 200
    link/none
    inet 172.16.201.1/25 brd 172.16.201.127 scope global as0t0
       valid_lft forever preferred_lft forever
22: as0t1: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 200
    link/none
    inet 172.16.201.129/25 brd 172.16.201.255 scope global as0t1
       valid_lft forever preferred_lft forever

Interface de rede no servidor membro:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 02:c5:62:3b:ef:02 brd ff:ff:ff:ff:ff:ff
    inet 172.16.200.71/24 brd 172.16.200.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::c5:62ff:fe3b:ef02/64 scope link
       valid_lft forever preferred_lft forever

Mais alguns pontos:

pingdo meu cliente para o servidor membro:

$ ping 172.16.200.71
PING 172.16.200.71 (172.16.200.71): 56 data bytes
Request timeout for icmp_seq 0

pingdo meu cliente para o servidor OVPN (usando a sub-rede VPC Main):

$ ping 172.16.200.66
PING 172.16.200.66 (172.16.200.66): 56 data bytes
64 bytes from 172.16.200.66: icmp_seq=0 ttl=64 time=87.657 ms

pingdo meu cliente para o ip da VPN da OVPN também funciona.

A tabela de roteamento desta VPC na AWS: insira a descrição da imagem aqui

Estas são as minhas perguntas:

  1. Devo criar uma sub-rede de "172.16.201.0" (a sub-rede vpn) na VPC? (Eu tenho, mas não resolveu o problema... é apenas uma das coisas que tentei).

  2. Parece que está faltando alguma coisa, talvez na configuração na AWS, você pode tentar encontrar o meu problema?

linux
  • 1 respostas
  • 234 Views
Martin Hope
Itai Ganot
Asked: 2017-03-06 02:40:13 +0800 CST

Proxmox: É possível criar contêineres lógicos e colocar VMs sob eles para melhor visibilidade?

  • 1

Tenho cerca de 50 servidores em meu servidor Proxmox que estão sendo executados em um cluster de 8 hosts Proxmox.

Gostaria de criar um contêiner lógico chamado, por exemplo, "Produto 1" e colocar todas as VMs relevantes nesse contêiner lógico.

Isso é possível? Não consegui encontrar a resposta online.

linux proxmox
  • 1 respostas
  • 41 Views
Martin Hope
Itai Ganot
Asked: 2017-02-21 05:14:36 +0800 CST

Ubuntu: Não é possível alterar o limite de número de arquivos abertos para root (todos os usuários), qual poderia ser o motivo?

  • 2

Eu tenho um servidor Ubuntu 16.04.

Quando executo como root, ulimit -nobtenho 1024.

Quando eu o executo como meu usuário, recebo 65535.

Mas quero ter certeza de que todos os usuários, incluindo root, tenham o limite de arquivos abertos definido como 65535.

O problema é que já fiz de tudo para alterar e mesmo assim, pelo root dá 1024.

Aqui estão as coisas que fiz:

root@sensu:/etc/security/limits.d# cat 90-nofiles.conf
* soft     nproc          65535
* hard     nproc          65535
* soft     nofile         65535
* hard     nofile         65535

root@sensu:/etc/security# grep nofile limits.conf
#        - nofile - max number of open files
*   soft     nofile         65535
*   hard     nofile         65535

root@sensu:/etc/security# grep file-max  /etc/sysctl.conf
fs.file-max = 65536

Claro que corri sysctl -p.

O processo problemático é redis:

root@sensu:/proc# grep "open files" /proc/1487/limits
Max open files            4096                 4096                 files

Olhando para o arquivo init do redis:

root@sensu:/proc# grep ulimit /etc/init.d/redis-server
    ulimit -n 100001

Como você vê nos exemplos, não tem porque esse limite ser 1024 e mesmo assim... é 1024.

Qual seria a razão? Onde está aquela configuração que estou perdendo?

linux limits ubuntu-16.04
  • 1 respostas
  • 2312 Views
Martin Hope
Itai Ganot
Asked: 2016-08-04 06:02:51 +0800 CST

Jenkins: Tentando adicionar um escravo burro, mas a opção está faltando, alguma ideia de como adicioná-lo?

  • 11

Instalei o Jenkins 2.x em um servidor e agora estou tentando adicionar um "Dumb slave", mas está faltando a opção.

Nesse tutorial oficial do Jenkins diz que ao criar um novo nó a opção deve aparecer mas a única opção que tenho é:

Agente Permanente

Captura de tela: insira a descrição da imagem aqui

E não consigo encontrar a maneira de adicionar esse recurso.

Alguém sabe como adicioná-lo?

jenkins centos6
  • 1 respostas
  • 12737 Views
Martin Hope
Itai Ganot
Asked: 2016-06-15 00:28:08 +0800 CST

Como configurar pam sshd para permitir regras diferentes em diferentes usuários/grupos?

  • 2

Estou configurando a autenticação de dois fatores do Google em um servidor de saída na empresa em que trabalho.

Aqui estão as configurações relevantes: /etc/ssh/sshd_config:

ubuntu@stage-itai-1:~$ egrep -v '^#' /etc/ssh/sshd_config  | sed '/^\s*$/d'
Port 22
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
UsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 1024
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication yes
PasswordAuthentication no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes
Match Group gauth
    AuthenticationMethods publickey,keyboard-interactive

/etc/pam.d/sshd:

ubuntu@stage-itai-1:~$ egrep -v '^#' /etc/pam.d/sshd  | sed '/^\s*$/d'
auth required pam_google_authenticator.so nullok
account    required     pam_nologin.so
@include common-account
session [success=ok ignore=ignore module_unknown=ignore default=bad]        pam_selinux.so close
session    required     pam_loginuid.so
session    optional     pam_keyinit.so force revoke
@include common-session
session    optional     pam_motd.so  motd=/run/motd.dynamic noupdate
session    optional     pam_motd.so # [1]
session    optional     pam_mail.so standard noenv # [1]
session    required     pam_limits.so
session    required     pam_env.so # [1]
session    required     pam_env.so user_readenv=1 envfile=/etc/default/locale
session [success=ok ignore=ignore module_unknown=ignore default=bad]        pam_selinux.so open
@include common-password

Os usuários que são membros do grupo "gauth" devem ser forçados a fornecer a chave pública e o código de verificação do Google, que é intencional e está funcionando.

Os usuários que não são membros do grupo "gauth" devem ser forçados a fornecer a chave pública, mas na realidade eles são capazes de se conectar à máquina sem fornecer uma chave pública nem uma senha.

Há um usuário especial na máquina que é chamado de "resgate" e este usuário deve ser obrigado a fornecer apenas uma senha e seu objetivo é nunca ficar bloqueado fora da máquina, mas na realidade o usuário é capaz de se conectar sem um senha em tudo.

Minha pergunta é: como faço para impor minhas "supostas" regras, o que significa que:

  • os usuários do grupo "gauth" devem fornecer a chave pública e o Google OTP
  • os usuários que não são membros do grupo "gauth" devem poder efetuar login apenas fornecendo uma chave pública.
  • o usuário "resgate" deve ser capaz de efetuar login apenas fornecendo uma senha (ou também fornecendo uma chave pública).

Como pode ser feito?

Edição nº 1:

Seguindo a resposta do FaCe, configurei /etc/ssh/sshd_configassim:

Alterei PasswordAuthentication de volta para "Yes" e "ChallengeResponseAuthentication" de volta para "No" para todo o arquivo e, em seguida, adicionei na parte inferior do arquivo as seguintes linhas:

Match Group guath
    PasswordAuthentication no
    ChallengeResponseAuthentication yes
    AuthenticationMethods publickey,keyboard-interactive
Match User rescue
    PasswordAuthentication yes
    ChallengeResponseAuthentication no
    AuthenticationMethods password

Depois de redefinir o serviço ssh, não consigo fazer login, independentemente do usuário que estou usando, recebo o seguinte erro:

ssh_exchange_identification: Connection closed by remote host

E nada é exibido em /var/log/auth.log.

Alguém pode por favor lançar alguma luz sobre o assunto?

authentication ssh pam google-authenticator
  • 2 respostas
  • 5907 Views
Martin Hope
Itai Ganot
Asked: 2016-06-02 03:26:29 +0800 CST

Ansible: É possível "arquivo cat" e exportar sua saída para a tela durante a reprodução de um playbook e não como depuração?

  • 26

Escrevi um manual que instala e configura o Google Authenticator por usuário.

Eu quero a última etapa do playbook para cato arquivo de configuração google_authenticator.

Usando o módulo "debug", consigo que os dados sejam exibidos na tela, mas apenas como mensagem de depuração:

TASK: [debug var=details.stdout_lines] ****************************************
ok: [localhost] => {
    "details.stdout_lines": [
        "ZKMFTE2ADYA2OYCH",
        "\"RATE_LIMIT 3 30",
        "\" DISALLOW_REUSE",
        "\" TOTP_AUTH",
        "12920994",
        "88224784",
        "69464205",
        "38144121",
        "45634120"
    ]
}

Eu li online que posso fazer algo assim:

  - name: Print to screen google authenticator details
    command: /bin/cat {{ google_authenticator_secret_file_location }}
    register: details
    tags: google_2fa_user

  - debug: msg="{{ details.stdout_lines }}"

Mas recebo um erro ao executá-lo:

TASK: [Print to screen google authenticator details] **************************
changed: [localhost]

TASK: [debug msg="{{details.stdout_lines}}"] **********************************
fatal: [localhost] => Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/ansible/runner/__init__.py", line 532, in _executor
    exec_rc = self._executor_internal(host, new_stdin)
  File "/usr/lib/python2.7/dist-packages/ansible/runner/__init__.py", line 629, in _executor_internal
    return self._executor_internal_inner(host, self.module_name, self.module_args, inject, port, complex_args=complex_args)
  File "/usr/lib/python2.7/dist-packages/ansible/runner/__init__.py", line 815, in _executor_internal_inner
    result = handler.run(conn, tmp, module_name, module_args, inject, complex_args)
  File "/usr/lib/python2.7/dist-packages/ansible/runner/action_plugins/debug.py", line 41, in run
    kv = utils.parse_kv(module_args)
  File "/usr/lib/python2.7/dist-packages/ansible/utils/__init__.py", line 526, in parse_kv
    vargs = [x.decode('utf-8') for x in shlex.split(args, posix=True)]
  File "/usr/lib/python2.7/shlex.py", line 279, in split
    return list(lex)
  File "/usr/lib/python2.7/shlex.py", line 269, in next
    token = self.get_token()
  File "/usr/lib/python2.7/shlex.py", line 96, in get_token
    raw = self.read_token()
  File "/usr/lib/python2.7/shlex.py", line 172, in read_token
    raise ValueError, "No closing quotation"
ValueError: No closing quotation


FATAL: all hosts have already failed -- aborting

PLAY RECAP ********************************************************************

O erro diz: "Sem cotação de fechamento", embora seja citado. Também tentei:

 - debug: msg= "{{ details.stdout_lines }}"

Alguma ideia do que poderia ser o problema?

debug ansible ansible-playbook
  • 4 respostas
  • 65852 Views
Martin Hope
Itai Ganot
Asked: 2016-04-27 01:09:35 +0800 CST

Como criar um fato local no manual do Ansible que pulará etapas que já foram executadas em execuções anteriores?

  • 0

Eu escrevi um manual que clona do git três repositórios e os compila da fonte.

Sempre que provisiono uma máquina que usa este playbook, os repos são clonados, não importa se a cópia local do repo já está atualizada.

Eu gostaria que o git clone acontecesse apenas na primeira vez e nas demais vezes quando eu executar o playbook, eu quero que o Ansible pule esta etapa.

Eu li sobre "fatos locais" nos documentos do Ansible, mas estou tendo dificuldade para entender como isso deve ser implementado.

Este é o manual que escrevi:

---
  - name: Install required packages
    apt:  name={{item}} state=installed
    with_items:
         - "librdkafka-dev"
         - "libyajl-dev"
         - "librdkafka1"
         - "cmake"
    sudo: yes
    tags: kafkacat

  - name: Git clone kafkacat
    git:  repo=git://github.com/company/kafkacat.git
          dest={{ kafkacat_installdir }} accept_hostkey=yes force=yes
    tags: kafkacat

  - name: Git clone librdkafka
    git:  repo=git://github.com/company/librdkafka.git
          dest={{ kafkacat_installdir }}/librdkafka force=yes version={{ librdkafka_git_version }}
    tags: kafkacat

  - name: Git clone yajl
    git:  repo=git://github.com/company/yajl
          dest={{ kafkacat_installdir }}/yajl force=yes version={{ yajl_git_version }}
    tags: kafkacat

  - name: librdkafka compilation (configure)
    command: chdir={{ kafkacat_installdir }}/librdkafka {{ kafkacat_installdir }}/librdkafka/configure 
    tags: kafkacat

  - name: librdkafka compilation (make)
    command: chdir={{ kafkacat_installdir }}/librdkafka make
    tags: kafkacat

  - name: librdkafka compilation (make install)
    command: chdir={{ kafkacat_installdir }}/librdkafka make DESTDIR={{ kafkacat_installdir }}/tmp-bootstrap install
    tags: kafkacat

  - name: yajl compilation (configure)
    command: chdir={{ kafkacat_installdir }}/yajl {{ kafkacat_installdir }}/yajl/configure 
    tags: kafkacat

  - name: yajl compilation (make)
    command: chdir={{ kafkacat_installdir }}/yajl make
    tags: kafkacat

  - name: yajl compilation (make install)
    command: chdir={{ kafkacat_installdir }}/yajl make DESTDIR={{ kafkacat_installdir }}/tmp-bootstrap install
    tags: kafkacat

  - name: Set vagrant user & group as the owner of the folder
    file: path={{ kafkacat_installdir }} owner={{ kafkacat_owner }} group={{ kafkacat_group }} state=directory recurse=yes
    sudo: yes
    tags: kafkacat

  - name: kafkacat compilation (configure)
    command: chdir={{ kafkacat_installdir }} {{ kafkacat_installdir }}/configure --enable-json --enable-static
    environment: env
    tags: kafkacat
    #- debug: var=env

  - name: kafkacat compilation (make)
    command: chdir={{ kafkacat_installdir }} make
    environment: env
    tags: kafkacat
    #- debug: var=env

  - name: kafkacat compilation (make install)
    command: chdir={{ kafkacat_installdir }} make install
    sudo: yes
    tags: kafkacat

Sua ajuda é muito apreciada.

ansible ansible-playbook github
  • 1 respostas
  • 501 Views
Martin Hope
Itai Ganot
Asked: 2016-04-26 07:13:59 +0800 CST

Qual é a maneira correta de exportar valores ambientais por meio do ansible playbook?

  • 2

Eu escrevi um playbook ansible que deve instalar uma ferramenta chamada kafkacat.

A maioria das tarefas do playbook funciona, exceto uma (a mais importante).

Estou compilando a ferramenta a partir do código-fonte e a instalei manualmente usando as etapas que estou construindo no ansible.

A parte relevante do manual é:

- name: Install kafkacat (configure)
    command: chdir={{ kafkacat_installdir }} {{ kafkacat_installdir }}/configure --enable-json --enable-static
    sudo: yes

  - name: Install kafkacat (make)
    command: chdir={{ kafkacat_installdir }} make
    environment:
      CPPFLAGS: ' -Itmp-bootstrap/usr/local/include'
      STATIC_LIB_yajl: ' tmp-bootstrap/usr/local/lib/libyajl_s.a'
      STATIC_LIB_rdkafka: ' tmp-bootstrap/usr/local/lib/librdkafka.a'
      LIBS: ' -lpthread -lrt '
    sudo: yes

  - name: Install kafkacat (make install)
    command: chdir={{ kafkacat_installdir }} make install
    sudo: yes

É necessário que o processo "make" funcione, para saber as exportações que especifiquei na tarefa, mas por algum motivo parece que os valores não são exportados corretamente e isso faz com que o playbook falhe:

failed: [kafka-1] => {"changed": true, "cmd": ["make"], "delta": "0:00:00.422669", "end": "2016-04-25 15:10:16.085697", "rc": 2, "start": "2016-04-25 15:10:15.663028", "warnings": []}
stderr: /usr/bin/ld: cannot find -lyajl
/usr/bin/ld: cannot find -lyajl
collect2: error: ld returned 1 exit status
make: *** [kafkacat] Error 1
stdout: gcc -MD -MP  -Itmp-bootstrap/usr/local/include -g -O2 -Wall -Wfloat-equal -Wpointer-arith -g -O2 -Wall -Wfloat-equal -Wpointer-arith  -c kafkacat.c -o kafkacat.o
gcc -MD -MP  -Itmp-bootstrap/usr/local/include -g -O2 -Wall -Wfloat-equal -Wpointer-arith -g -O2 -Wall -Wfloat-equal -Wpointer-arith  -c format.c -o format.o
gcc -MD -MP  -Itmp-bootstrap/usr/local/include -g -O2 -Wall -Wfloat-equal -Wpointer-arith -g -O2 -Wall -Wfloat-equal -Wpointer-arith  -c json.c -o json.o

A razão pela qual -lyajl não foi encontrado é porque a exportação não está funcionando.

Eu também tentei fazer algo assim:

  - name: Install kafkacat (configure)
    command: chdir={{ kafkacat_installdir }} CPFLAGS='CPPFLAGS= -Itmp-bootstrap/usr/local/include' STATIC_LIB_yajl='tmp-bootstrap/usr/local/lib/libyajl_s.a' STATIC_LIB_rdkafka='tmp-bootstrap/usr/local/lib/librdkafka.a' LIBS=' -lpthread -lrt' {{ kafkacat_installdir }}/configure --enable-json --enable-static

Sua ajuda é muito apreciada e obrigado antecipadamente,

ansible kafka
  • 2 respostas
  • 219 Views
Martin Hope
Itai Ganot
Asked: 2016-04-25 08:58:25 +0800 CST

Como executar ./configure de uma pasta diferente?

  • 1

Estou escrevendo um playbook ansible que deve compilar da fonte alguma ferramenta e instalá-la.

Ao verificar meu manual, tentei executar os comandos relevantes manualmente para verificar sua saída.

Então, no meu livro de jogos ansible, configurei isso:

- name: Configure kafkacat
      command: . {{ install_dest }}/configure arg1
        args:
          enable_json: "--enable-json"
      sudo: yes

Mas antes de executar o playbook, executei manualmente: o . /tmp/kafkacat/configure --enable-jsonque deveria ser equivalente a executar ./configureno diretório atual, mas o comando falha e recebo um erro.

Então, como isso pode ser feito? desde já, obrigado

bash configuration
  • 2 respostas
  • 1231 Views

Sidebar

Stats

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

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

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