Do Sysadmin ao DevOps

Instalando última versão do Ansible no Ubuntu/Debian

Caso não saiba o que é Ansible, pode dar uma lida nesse post.

A forma mais simples para instalar o Ansible é com o comando abaixo, porém é instalado uma versão mais antiga.

1
2
sudo apt-get update
sudo apt-get install ansible

Agora para baixar uma versão mais atualizada basta seguir os passos abaixo:

1
2
3
sudo aptitude update
sudo aptitude install python-pip
sudo pip install ansible

Identificar sistema operacional com ping

O comando ping utiliza o protocolo icmp e é muito útil para alguns testes de rede. O que pouca gente sabe é que durante a resposta do comando ping, uma informação pode nos informar qual o sistema operacional está respondendo. Essa informação é TTL (Time to Live).

Ex:

1
2
3
4
5
ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.030 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.035 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.041 ms

Podemos ver que nesse exemplo o TTL é 64 que corresponde ao Linux. É bom lembrar que cada vez que um pacote passa por um roteador é reduzido um do valor TTL. Caso a resposta seja 64, significa que o pacote veio de um Linux e passou por 2 roteadores.

Limpar container antigos Docker

Caso sua lista de container esteja muito grande e queira remover alguns containers do seu host, podemos usar o comando abaixo para remover container parados a mais tempo:

1
docker ps --filter "status=exited" | grep 'weeks ago' | awk '{print $1}' | xargs --no-run-if-empty docker rm

Explicando:

1
docker ps --filter "status=exited"

Lista somente os containers parados, que não estão em execução

1
grep 'weeks ago'

Filtra por containers criados a semanas atrás

1
awk '{print $1}'

Exibe a primeira coluna, que refere ao CONTAINER ID

Convertendo arquivos DOS ^M com Vim

Quem nunca passou pela situação de executar um script e o mesmo apresentar erro. Normal, mas algumas vezes o erro ocorre pela formatação, principalmente se foi escrito ou salvo em um Windows. Ocorre de no final de cada linha ele acrescentar um ^M, o que não o Linux não consegue interpretar.

Existem algumas formas de corrigir esse problema, a mais conhecida é usando o aplicativo dos2unix

Mas o quero apresentar hoje é usando o poderoso Vim. Basta estando dentro do arquivo digitar o comando abaixo:

Comando fuser - Quem mexeu no meu arquivo

O fuser é um programa que permite que saibamos qual processo está utilizando determinado arquivo, socket (portas) e sistema de arquivos especificado. Aprender sua manipulação é essencial para poder administrar um servidor para saber o que está acontecendo principalmente nas conexões. É um comando extremamente flexível, vamos ver suas opções e seu uso.

DiretivaDescriçãoExemplo
-a, –allMostra todos os arquivos, inclusive os que estão sem usofuser -a *
-k, –killDesativa/Mata os processos que estão utilizando determinado arquivofuser -k /home/zonebin
-i, –interactivePede confirmação sempre que for matar um processo utilizando um arquivofuser -ik /home/zonebin
-m, –mountEspecifica um sistema de arquivos para descobrir qual processo está sendo utilizadofuser -m /dev/sda1
-s, –silentRealiza as operações indicadas silenciosamente, não use a opção -a, -u, -vfuser -ks /home
-u, –userMostra o nome de usuário que iniciou o processo que está utilizando o arquivofuser -u /var/log/messages
-4, –ipv4Mostra processos de IPV4 somentefuser -4 ssh/tcp -6
-ipv6Mostra somente processos de sockets IPV6fuser -6 25/tcp

Tipos de acesso:
c  Diretório atual
e  Arquivo executável rodando
f  Arquivo aberto (omitido no modo de display padrão)
F  arquivo aberto para escrita (omitido no modo de display padrão)
r  Diretório root
m  Arquivo mapeado ou biblioteca compartilhada

Iniciando Zabbix com Docker Compose

Obviamente precisaremos ter instalado o docker e docker-compose, caso não saiba como instalar pode acessar o link e esse outro link. Precisaremos criar um arquivo docker-compose.yml com o seguinte conteúdo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
persistentDB:
  img "busybox:latest"
  volumes:
    - /var/lib/mysql
zabbixDB:
  img "monitoringartist/zabbix-db-mariadb"
  environment:
    MARIADB_USER: zabbix
    MARIADB_PASS: senha
    PHP_date_timezone: America/Sao_Paulo
    ZS_StartDiscoverers: "5"
    ZS_StartPingers: "5"
  volumes_from:
    - persistentDB
  volumes:
    - "/etc/localtime:/etc/localtime:ro"
    - "/srv/zabbix/backups:/backups"
  hostname: zabbix-db
zabbix:
  img "monitoringartist/zabbix-3.0-xxl:latest"
  ports:
    - "80:80"
    - "10051:10051"
  volumes:
    - "/etc/localtime:/etc/localtime:ro"
  links:
    - "zabbixDB:zabbix.db"
  environment:
    ZS_DBHost: zabbix.db
    ZS_DBUser: zabbix
    ZS_DBPassword: senha
    TERM: xterm

E iremos executar o seguinte comando:

0%