Tumgik
sysadminlinux · 6 years
Photo
Tumblr media
Tá precisando de um certificado SSL Wildcard, mas pagar não é uma opção ? você acha isso injusto ainda por cima ?
Eu tb, então vou compartilhar como gerar o seu próprio, válido em qualquer navegador e tudo mais que vc precisar.
É mais simples do que você imagina, porém tem um detalhe muito importante: ele é valido por apenas 90 dias, assim ou você ajusta a integração com o seu provedor de DNS para auto renovar, ou então tem que fazer manualmente a cada trimestre.
Vamos lá:
1 - Clone esse repositório: https://github.com/Neilpang/acme.sh.git 
2 - Dentro dele execute:
# acme.sh  --issue -d '*.seudominio.com'  -d 'seudominio.com'  --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please
3 - O comando acima irá gerar 2 códigos para serem inseridos em seu DNS numa entrada DNS que ele também informará qual é. Isso é feito para verificar se vc é o dono deste domínio.
4 - Aguarde um pouco pela propagação desta entrada de DNS que vc acabou de criar.(Tome um café rápido :)
5 - Novamente dentro do mesmo diretório execute:
# acme.sh  --renew --debug -d '*.seudominio.com'  -d 'seudominio.com'  --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please
Se tudo deu certo o comando lhe responderá com o path para os arquivos que já estarão na sua máquina. Se não, aguarde mais um pouco para a propagação ou então recomece :D
Até a próxima.
abs
1 note · View note
sysadminlinux · 8 years
Photo
Tumblr media
Enviar alertas nem sempre é uma coisa simples. SMS, email, ligação, fumaça etc. O objetivo é se fazer ouvido, chamar atenção.
Pra isso existe o pagerduty, não conhece ? se cadastra lá!
Bom, ele tem umas mil integrações, mas logo o que eu precisava não tinha (como tudo na vida né!), então era necessário utilizar a API, para poder abrir incidentes, porém esbarro na burrice e falta de conhecimento em usar API, só seu usar CURL.
Então caso você também só saiba CURL, e eu acho bem simples, vou deixar aqui uma dica de como utiliza-lo, pois não foi nada fácil encontrar a resposta.
Neste link você tem os campos que pode utilizar para abrir ou fechar um incidente.
Eu vou utilizar apenas os obrigatórios, pois o objetivo é alarmar e não dar uma palestra.
Meu exemplo:
curl -H "Content-Type: application/json" -X POST -d \'{"service_key": "605bc544b078978959e684ecf3ba1e2","event_type": "trigger","description": "Aqui vai o texto do alarme"}\' https://events.pagerduty.com/generic/2010-04-15/create_event.json
Para pegar essa “service_key” , basta em seu painel, no serviço ao qual deseja acrescentar esse alarme, criar uma nova “integration” do tipo API.
É isso. abraços.
0 notes
sysadminlinux · 8 years
Photo
Tumblr media
Alguma vez você já fez um monte de commit, ai começou a dar pau, e vc começa a fazer commit sem comment, e ai só ladeira a baixo….
Então, mas no final da história vc chega a algum lugar, finalmente faz o commit que chega ao resultado. O que fazer com toda aquela sujeira ?
SQUASH!!!!
Esse processo vai “fundir” seus commits em apenas um.
Como fazê-lo?
Pegue o ID do commit até o qual deseja “voltar”, então use o comando:
$ git rebase -i IdDoSeUcOmMiT
Isto lhe trará uma tela do editor de texto com algo assim:
pick f392171 Added new feature X
pick ba9dd9a Added new elements to page design
pick df71a27 Updated CSS for new elements
Então basta trocar o “pick” no inicio da linha desejada por “squash” e este commit será “fundido” com o único que vc deixar como “pick”.
Após isso, salve as alterações e faça um push forçado para o repositório e pronto!
Ainda existem outras possibilidades, como alterar a msg de commit e outros.
Quer saber mais ?
GIT - distributed-is-the-new-centralized
0 notes
sysadminlinux · 8 years
Photo
Tumblr media
Cluster RabbitMQ
O nome pode até assustar de entrada, mas não é nenhum bicho de 7 pele !
Passos são bem simples:
0 - Instalar os pacotes da mesma versão exata em todos os servidores que farão parte do cluster, master e nodes. Aqui tem os how-to oficiais!
1 - Iniciar cada node de forma isolada
rabbitmq-server -detached       Saída (Warning: PID file not written; -detached was passed.)
2 -  Deixar todos os hosts com o mesmo arquivo /opt/rabbitmq35/var/lib/rabbitmq/.erlang.cookie
      (dica : faça SCP do master para os slaves)
Apenas nos Slaves :
3 -  rabbitmqctl stop_app
      Saída (Stopping node 'rabbit@..... )
4 -  rabbitmqctl join_cluster rabbit@NomeDoHostMaster
      Saída (Clustering node 'rabbit@.....' with 'rabbit@.....' )
Verificando :
5 - rabbitmqctl cluster_status       A saída desse comando deve listar todas as slaves :D
Dúvidas ? RTFM
0 notes
sysadminlinux · 8 years
Photo
Tumblr media
Se você está em uma rede fechada, sem acesso a internet, mas tem que trazer imagens e outras coisas da internet, o que você fará ?
Chamará o proxy, ele lhe dará a possibilidade de se comunicar com a internet, porém lhe dará a proteção que uma rede fechada lhe promete.
Então com os passos abaixo, você configura seu docker-engine para usar o proxy para internet:
- Editar o arquivo de service sed -i ’/\[Service\]/a EnvironmentFile=/etc/sysconfig/docker’ /usr/lib/systemd/system/docker.service
- Adicionar os proxys no arquivo /etc/sysconfig/docker http_proxy=“http://PrOxY:pOrTa” https_proxy=“https://PrOxY:pOrTa”
- Exportar os proxys para o bash profile, para serem usados pelo compose e pelos containers ~/.bashrc # The Web proxy server used by this account http_proxy=“http://PrOxY:pOrTa” https_proxy=“http://PrOxY:pOrTa” export http_proxy export https_proxy
- Caso esteja usando Docker-Compose adicionar no yaml os args para o build:
Context:
args:
    - http_proxy    - https_proxy
0 notes
sysadminlinux · 8 years
Video
Uma ótima palestra, que vale muito a pena assistir da "DevOps Dimenssion" que é um programa da Microsoft sobre DevOps, melhores práticas e cultura.
Deixe o preconceito de lado e assista grandes profissionais falando sobre o assunto do momento, mas de uma forma prática e sem puxar sardinhas.
0 notes
sysadminlinux · 8 years
Photo
Tumblr media
http://oss.oetiker.ch/smokeping/index.en.html
http://xmodulo.com/2013/01/how-to-measure-network-latency-packet-loss-and-jitter-on-linux.html
http://xmodulo.com/2013/01/how-to-install-tcpping-on-linux.html
0 notes
sysadminlinux · 8 years
Text
Espelhamento com ChironFS
Espelhamento de um FileSystem Completo, é isso que ele faz.
Um sistema baseado no FUSE que pode replicar mesmo que remotamente, sistema vencedor do  Concurso do SourceForge de 2008 ChironFS.
Ok, mas para isso é necessário usar o sshfs, que mostro aqui neste outro post.
Sabendo disso, vamos ao uso do ChironFS.
- Montar os diretórios remotos onde vai replicar
sshfs 192.168.1.10:/home /mnt/Replica0 sshfs 192.168.1.11:/home /mnt/Replica1 
E então mandar bala chironfs --fsname NomeProCompartilhamento /home=/mnt/Replica0=/mnt/Replica1 /DiretorioEspelhado
E só, já vai replicar, no site tem mais documentação.
0 notes
sysadminlinux · 9 years
Video
youtube
Project Shield - By Jigsaw
Parece que os amiguinhos que gostam de DDOS tem um grande inimigo, e por sua vez as “pessoas normais” tem um grande aliado, apenas o Google, que entra nessa luta, num monento oportuno, onde qquer cloud provê a infraestrutura que pode ser usada para o conhecimento e sua difusão , mas também como fonte de ataques e Negação de Serviços.
O Google aparece como uma interface de proteção contra quem deseja que a informação não seja propagada, ou quem deseja censura-la ao seu bel-prazer.
Parabéns ao Google por mais essa iniciativa!
Acesse e saiba mais.
0 notes
sysadminlinux · 9 years
Video
youtube
Como trabalhar em equipe como o Spotify ?
Saiba tudo, explicado passo-a-passo nesse vídeo incrível!
0 notes
sysadminlinux · 9 years
Photo
Tumblr media
Descobrir qual seu IP não é nenhuma tarefa difícil, mas coloca-lo em scripts, ou ainda mais, colocar seu ip de saída , caso seja dinâmico, em um script pode ser algo um pouco trabalhoso, a menos que você utilize uma ferramenta como o ifconfig.co ( mil vezes mais rápido que ifconfig.me) mas o cara que desenvolveu, foi ainda mais longe do que apenas colocar o código no github, ele colocou num Dockerfile.
Tá mas o que isso muda ? o serviço já está no ar e vc pode usa-lo, e eu digo, sim, mas e se você precisar desse serviço em produção ? você vai arriscar seu serviço a sorte de um serviço de teste, ou hobbie ?
Então , assim você facilmente pode subir esse docker em sua estrutura, e ter o mesmo serviço , com a mesma performance e com o mesmo resultado, com você, e no seu controle!
 Então aproveito para compartilhar a dica, e um plus é que escrevi um playbook de Ansible que você pode subir um servidor na AWS já instalado todos os requisitos para o Docker, então basta apontar para este docker e pronto.
0 notes
sysadminlinux · 9 years
Photo
Tumblr media
Árvore de Diretórios  {MKDIR -p}
Talvez você já saiba disso, mas eu poupei muito tempo com essa dica, então quero compartilhar.
Como criar uma estrutura de diretórios , sei que você vai pensar que basta usar o parâmetro ( -p ) no mkdir e pronto, mas isso não é tudo quando o problema é um pouco mais complexo.
Exemplo:
Você precisa criar a estrutura de diretórios de home padrão para 5 usuários, então talvez pensaria em um script para fazê-lo, e várias regras, mas com o uso de chaves {} você pode fazer tudo isso com apenas um comando.
mkdir -p /home/{joao,maria,jose,lucas,paulo}/{Docs,Videos,Imagens}
1 note · View note
sysadminlinux · 10 years
Photo
Tumblr media
Crontab, 
Não sei pra vocês mas parece que sempre que vou fazer um novo crontab esbarro em alguma coisa diferente...
Da última vez foi o path, e não me lembrava que ou deveria declarar o path na variável ou colocar o comando com o path completo:
Desta vez foram aspas e chaves, no shell, você pode executar um comando com aspas simples, e mesmo assim ele conseguirá executar a troca por variáveis de ambiente ou coisas do gênero, porém dentro do cron não.
Dentro do crontab, para utilização com variáveis de ambiente , é necessário utilizar aspas duplas, e para a troca ou execução de comandos internos, deverá utilizar cifrão e colchetes ${....} , e não chaves como uso comum no shell.
0 notes
sysadminlinux · 10 years
Photo
Tumblr media
SyncDrive,
Você tem vários ambientes diferentes de trabalho, e precisa sincronizar seus arquivos entre eles, então como quase todo o planeta, confia cegamente nos serviços do GOOGLE, e tem seus arquivos mais importantes nele, então é ai que entra o SyncDrive, ele tem uma interface muito amigável e prática, com apenas um pequeno BUG que já ensino a corrigir na instalação, para ter todos seus arquivos sincronizados e evitar retrabalho!
Bom Vamos primeiro a instalação, muito simples 3 passos:
1. Adicione o repositório do aplicativo :
sudo add-apt-repository ppa:noobslab/pear-apps
2. Atualize o Apt:
sudo apt-get update
3. A instalação enfim:
sudo apt-get install syncdrive bless
  Agora vem a parte da hora, se você foi apressado e já tentou ir executando o SyncDrive (igual eu fiz no começo), recebeu um erro assim:
[45] File or directory does not exist. FMain.Form_Open.125
Então você deve ter percebido que temos dois aplicativos instalados ali nas linhas acima, e um deles é o bless, um editor hexadecimal, e você me pergunta o porque disso, e eu te respondo, para editar o arquivo e corrigir o erro:
Como root, execute
# bless /usr/bin/syncdrive
e abrirá um utilitário de edição de texto e então clique em "Search & Replace" para substituir pear-news.fr por syncdrive.fr então o programa executará sem problemas. Um probleminha bem simples que na verdade o domínio foi alterado e não no programa.
Então agora é só autorizar o acesso a sua conta e pronto!
0 notes
sysadminlinux · 11 years
Text
NICE's
Alterar prioridade de processos, prioridade de CPU ,as vezes é necessário para que uma tarefa venha a frente de outras ou atrás, o comando é bem simples:
nice -prioridade PID
A prioridade vai de -20 prioridade mais alta até 19 que seria a prioridade mais baixa.
Temos também o renice, este serve para alterar a prioridade de processos em andamento, a ideia é a mesma, mas tem também a opção de alterar a prioridade de processos de um usuário, exemplo:
renice +1 987 -u daemon root -p 32
Neste exemplo, estamos alterando a prioridade dos processos 987 e do processo 32, e de todos os processos dos usuários root e daemon.
E temos também como alterar a prioridade de uso de I/O, e este também bem simples, mas que tem muita serventia.
Sintaxe:
ionice -c[] -p PID
-c => classe, podem ser 3 Ocioso [3], Normal [2], Tempo Real [1]
Exemplo:
ionice -c 3 -p 89
Aqui você manda o processo 89 para um estado ocioso, mais baixo que o normal, para que não gere impacto em outras atividades, por exemplo, um backup em horário de produção.
0 notes
sysadminlinux · 11 years
Text
GREP
Esse comando apesar de simples, é muito completo e muito usado, não pretendo explora-lo aqui, apenas umas dicas que uso, ou pra que eu mesmo me lembre de vez em quando... heheh
Opções que mais uso:
-v : Procura inversa, mostra o que não corresponde a busca
-i : Ignora case sensitive
-E : Habilita expressões regulares = Possibilidades Infinitas :D
-r : Procura recursiva
-A ou -B : Exibe N linhas antes(Before) ou depois(After) 
--color : adivinha só o que faz ???
Dicas:
Encontrar string em arquivos = > grep -R StRiNg DiReToRiO/
Encontrando uma ou outra coisa = > grep -E 'coisa1|coisa2' DiReToRiO/
0 notes
sysadminlinux · 11 years
Text
DD
Um comando bem simples, mas útil, que copia bite a bite dados de um arquivo para outro, com ele é possível fazer uma copia de um HD completo ou mesmo um backup da MBR:
Exemplos simples:
Clonar HD -> # dd if=/dev/hda of=/dev/hdb
Backup MBR -> # dd if=/dev/hda of=/dev/fd0/mbr.backup bs=512 count=1
Ele possui muitas outras opções, mas a sintaxe básica é esta:
$ dd if=texto1.txt of=texto2.txt 
====================================================
Sending a USR1 signal to a running `dd' process makes it print I/O sta‐ tistics to standard error and then resume copying.
$ dd if=/dev/zero of=/dev/null& pid=$! $ kill -USR1 $pid; sleep 1; kill $pid
18335302+0 records in 18335302+0 records out 9387674624 bytes (9.4 GB) copied, 34.6279 seconds, 271 MB/s
=====================================================
Então abro aqui um parênteses para informar á você que acreditava que o comando Kill só servia para matar aquele processo do mal, não senhor, ele na verdade é um comando que envia sinais de diversos tipos, inclusive o de terminar, como muito utilizado "kill -9 PID", muitos são os sinais, como o de espera, o de parada etc, e temos até 2 espaços para sinais definidos pelos usuários, que será nosso caso aqui.
Neste caso, desejamos saber o progresso, assim, os ilustres criadores do DD Mr. Paul Rubin, Mr. David MacKenzie, and Mr. Stuart Kemp, deixaram que o sinal USR1 (Primeiro sinal definido pelo usuário) fosse encarregado desta função.
Assim, para acompanhar o progresso de sua cópia, envie o sinal ao PID de seu processo:
$ pgrep -l '^dd$'
1234 dd
$ kill -USR1 1234
18335302+0 records in 18335302+0 records out 9387674624 bytes (9.4 GB) copied, 34.6279 seconds, 271 MB/s
E ai está, o progresso de seu processo.
Para saber mais sobre sinais -> $ man 7 signal
Para saber mais sobre dd      -> $ man dd
0 notes