Ansible

Ansible - Como utilizar.

Server Ansible - Servidor que se conecta com os demais. (Runner/Manager)
Cliente Ansible - Servidores clientes.

* Server

  • Instalar o ansible.
  • Criar a chave de SSH.
  • Configurar os grupos em /etc/ansible/hosts
[grupo]
hostname1
hostname2:2222
hostname3
some_host         ansible_port=2222     ansible_user=manager
aws_host          ansible_ssh_private_key_file=/home/example/.ssh/aws.pem
jumper              ansible_port=5555 ansible_host=192.0.2.50
Variavel de grupos
[grupo:vars]
ntp_server=ntp.atlanta.example.com
proxy=proxy.atlanta.example.com

ou criar /etc/ansible/groups_vars/<nome grupo> — ntp_server: acme.example.org database_server: storage.example.org

Sub grupos
[web]
hostA

[db]
hostB

[ubuntu:children]
web

Mais informações: http://docs.ansible.com/ansible/intro_inventory.html

** groups_var com usernames diferente.

* Cliente (servidores clientes)

  • Instalar o ansible.
  • Habilitar o ssh para o server ansible chegar.
  • Copiar a chave para o root
  • Cuidado com ssh root com senha (apenas chave)

* Server comandos.

# ansible server_or_group -m module_name -a arguments
# ansible all -m ping 
# ansible all -m shell -a "df -lh"

Não tem chave mas possui senha de root –ask-pass

ansible-playbook <file>.yml --list-hosts 
ansible-playbook <file>.yml

http://docs.ansible.com/ansible/playbooks_intro.html https://www.digitalocean.com/community/tutorials/configuration-management-101-writing-ansible-playbooks

repositorio de yml https://galaxy.ansible.com/list#/roles?page=1&page_size=10

AWX ansible without docker http://yallalabs.com/devops/how-to-install-ansible-awx-without-docker-centos-7-rhel-7/

Install ansible
    1  yum search ansible
    2  yum install centos-release-ansible-29.noarch
    3  yum search ansible
    4  yum install ansible
    5  history 
Install AWX
    1  yum search ansible
    2  yum install centos-release-ansible-29.noarch
    3  yum search ansible
    4  yum install ansible
    5  history 
    6  yum search awx
    7   yum install -y yum-utils device-mapper-persistent-data lvm2    
    8  yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 
    9  yum search docker
   10  yum install docker-ce docker-compose
   11  docker ps
   12  docker start docker
   13  setenforce 0
   14  vim /etc/sysconfig/selinux 
   15  vi /etc/sysconfig/selinux 
   16  docker start docker
   17  docker start docker-ce
   18  systemctl start docker
   19  docker ps
   20  yum install epel-release
   21  yum install yum install -y python-pip
   22  yum install -y python-pip
   23  git clone https://github.com/ansible/awx.git
   24  yum install git
   25  pip install docker-compose
   26  pip install --upgrade pip
   27  pip install docker-compose
   28  yum install python
   29  pip install docker-compose
   30  yum install docker-compose
   31  git clone https://github.com/ansible/awx.git
   32  ls
   33  cd awx/
   34  ls
   35  cd installer/
   36  ls
   37  cat inventory 
   38  vim inventory 
   39  vi inventory 
   40  ansible-playbook -i inventory install.yml 
   41  ls
   42  vim inventory 
   43  yum install vim
   44  ls
   45  #ansible-playbook -i inventory -e docker_registry_password=password install.yml
   46  pip3 upgrade docker-compose
   47  pip3 update docker-compose
   48  pip3 install docker-compose
   49  pip3 upgrade docker-compose
   50  pip3 
   51  docker-compose -v
   52  ls
   53  cd
   54  ls
   55  cd -
   56  ls
   57  ansible-playbook -i inventory -e docker_registry_password=qwepoi32 install.yml
   58  yum search libselinux
   59  yum install libselinux-python libselinux-python2
   60  yum -y install libselinux-python libselinux-python3
   61  kill %1
   62  fg
   64  ansible-playbook -i inventory install.yml
   65  docker ps -a
   66  docker images
   67  #ansible-playbook -i inventory install.yml
   68  ssh localhost
   69  vim /etc/ssh/sshd_config 
   70  systemctl restart sshd
   71  #ansible-playbook -i inventory install.yml
   72  ansible-playbook -i inventory install.yml
   73  netstat -lntp
   74  exit
   75  history 

Adiciona host no arquivo hosts (inventory):

#hosts
www1 ansible_host=172.20.0.25
mysql ansible_host=172.20.0.26

[webservers]
www1

[mysqlserver]
mysql

Test:

$ ansible -i hosts -m ping www1 / webservers
$ ansible -i hosts all -m ping -u root -k -v

Arquivo YAML para playbook:

$ ansible-playbook -i hosts install-httpd.yml webservers

Referencia: https://wiredcraft.com/blog/getting-started-with-ansible-in-5-minutes https://www.ansible.com/resources/videos/quick-start-video

Windows
  • /etc/ansible/hosts
[sec]

143.106.73.151	ansible_connection=ssh ansible_shell_type=cmd ansible_python_interpreter=C:\Python27 ansible_user=administrador

Testando:

ansible sec -m win_ping --extra-vars ansible_ssh_pass='senha1234'
ansible sec -m win_shell -a 'date' --extra-vars ansible_ssh_pass='senha1234'