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'