User Tools

Site Tools


ansible_manager_roles

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

ansible_manager_roles [2025/07/26 17:09] – - Imported by DokuWiki Advanced Plugin wikiadmansible_manager_roles [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
-====== Gerenciar Roles no Ansible ====== 
-Crie uma Role de nome ''conf_base'' 
-<file bash> 
-$ sudo ansible-galaxy role init conf_base 
-- Role conf_base was created successfully 
-</file> 
- 
-<file bash> 
-$ sudo ansible-galaxy role list 
-# /etc/ansible/roles 
-- conf_base, (unknown version) 
-</file> 
- 
-<file bash> 
-$ tree conf_base/ 
-conf_base/ 
-├── README.md 
-├── defaults 
-│   └── main.yml 
-├── files 
-├── handlers 
-│   └── main.yml 
-├── meta 
-│   └── main.yml 
-├── tasks 
-│   └── main.yml 
-├── templates 
-├── tests 
-│   ├── inventory 
-│   └── test.yml 
-└── vars 
-    └── main.yml 
- 
-8 directories, 8 files 
-</file> 
- 
-<file bash> 
-$ sudo cp -r ~/roles/conf-base/* conf_base/ 
-$ sudo cp -r ~/roles/conf-base/*.* conf_base/ 
-</file> 
- 
-Conteúdo do diretório tasks: 
-  * **main.yml:** Arquivo principal responsável em carregar os arquivos hosts.yml, packages.yml e users.yml. 
-  * **hosts.yml:** Arquivo responsável pela padronização do arquivo /etc/hosts; 
-  * **packages.yml:** Arquivo responsável pela instalação de pacotes base; 
-  * **packages.yml:** Arquivo responsável pela padronização de usuários. 
- 
-**Conteúdo do diretório meta:** 
-<file bash> 
-$ cat ~/roles/conf-base/meta/.galaxy_install_info 
-version: 1.0.0 
-</file> 
- 
-<file yaml> 
-$ cat ~/roles/conf-base/meta/main.yml 
---- 
-galaxy_info: 
-  author: 4Linux DevOps 
-  description: Configuracao Base de usuarios, pacotes e hosts 
-  company: 4Linux 
-  license: GPLv3 
-  min_ansible_version: 2.9 
-  platforms: 
-    - name: Ubuntu 
-      versions: 
-        - focal 
-    - name: EL 
-      versions: 
-        - 8 
-  galaxy_tags: 
-    -  users 
-    -  packages 
-    -  hosts 
-dependencies: [] 
-</file> 
- 
-**Conteúdo do diretório tasks:** 
- 
-<file yaml> 
-$ cat ~/roles/conf-base/tasks/main.yml 
---- 
-- name: Padroniza arquivo /etc/hosts 
-  import_tasks: hosts.yml 
- 
-- name: Instala pacotes base 
-  import_tasks: packages.yml 
- 
-- name: Adiciona usuarios HelpDesk e DevOps 
-  import_tasks: users.yml 
-</file> 
- 
-<file bash> 
-$ cat ~/roles/conf-base/tasks/users.yml 
---- 
-- name: Adiciona usuario HelpDesk 
-  user: 
-    name: helpdesk 
-    state: present 
-    shell: /bin/bash 
-    password: $1$Vf3jj9E3$DTibRWkRvP8wJqcDLJNzT1 
-  tags: users 
- 
-- name: Adiciona usuario DevOps 
-  user: 
-    name: devops 
-    state: present 
-    shell: /bin/bash 
-    password: $1$Vf3jj9E3$DTibRWkRvP8wJqcDLJNzT1 
-  tags: users 
-</file> 
- 
-<file yaml> 
-$ cat ~/roles/conf-base/tasks/hosts.yml 
---- 
-- name: Testando entradas no arquivo /etc/hosts 
-  lineinfile: 
-    path: /etc/hosts 
-    line: "10.240.0.200 ansible-server.juntotelecom.com.br ansible-server" 
-  register: etc_hosts_result 
- 
-- name: Limpa o arquivo /etc/hosts 
-  when: etc_hosts_result is changed 
-  shell: echo '' > /etc/hosts 
-  register: etc_hosts_clear 
-  tags: hosts 
- 
-- name: Configuracao do arquivo /etc/hosts 
-  when: etc_hosts_clear is succeeded 
-  lineinfile: 
-    path: /etc/hosts 
-    line: "{{ item.ip }} {{ item.fqdn }} {{ item.alias }}" 
-  with_items: 
-    - { ip: '127.0.0.1', fqdn: 'localhost.localdomain', alias: 'localhost' } 
-    - { ip: '10.240.0.200', fqdn: 'ansible-server.juntotelecom.com.br', alias: 'ansible-server' } 
-    - { ip: '10.240.0.201', fqdn: 'ub-vm-01.juntotelecom.com.br', alias: 'ub-vm-01' } 
-    - { ip: '10.240.0.202', fqdn: 'ol-vm-02.juntotelecom.com.br', alias: 'ol-vm-02' } 
-    - { ip: '10.240.0.203', fqdn: 'de-vm-03.juntotelecom.com.br', alias: 'de-vm-03' } 
-  tags: hosts 
-</file> 
- 
-<file yaml> 
-$ cat ~/roles/conf-base/tasks/packages.yml 
---- 
-- name: Instala pacotes base no Debian/Ubuntu 
-  when: ansible_os_family == "Debian" 
-  apt: 
-    name: "{{ packages_debian }}" 
-    state: present 
-  tags: packages 
- 
-- name: Instala pacotes base no RedHat/CentOS 7 
-  when: 
-    - ansible_os_family == "RedHat" 
-    - ansible_distribution_major_version == "7" 
-  yum: 
-    name: "{{ packages_redhat }}" 
-    state: present 
-  tags: packages 
- 
-- name: Instala pacotes base no RedHat/CentOS 8 
-  when: 
-    - ansible_os_family == "RedHat" 
-    - ansible_distribution_major_version == "8" 
-  dnf: 
-    name: "{{ packages_redhat }}" 
-    state: present 
-  tags: packages 
-</file> 
- 
-**Conteúdo do diretório vars:** 
-<file yaml> 
-$ cat ~/roles/conf-base/vars/main.yml 
---- 
-packages_debian: 
-  - tzdata 
-  - dnsutils 
-  - bash-completion 
-  - unzip 
-  - bzip2 
-  - htop 
-  - vim 
-  - mlocate 
-  - nfs-common 
-packages_redhat: 
-  - tzdata 
-  - bind-utils 
-  - unzip 
-  - bzip2 
-  - vim-enhanced 
-  - mlocate 
-  - htop 
-  - nfs-utils 
-</file> 
- 
-Para finalizar, é preciso criar um arquivo responsável em carregar a Role, e definir em qual máquina ela será aplicada. 
-<file bash> 
-$ cat ~/roles/playbooks/conf-base.yml 
---- 
-- hosts: all 
-  roles: 
-    - conf-base 
-</file> 
- 
-<file bash> 
-$ sudo ansible-playbook --syntax-check ~/roles/playbooks/conf-base.yml 
- 
-playbook: /home/vagrant/roles/playbooks/conf-base.yml 
-</file> 
- 
-<file> 
-$ sudo ansible-playbook ~/roles/playbooks/conf-base.yml 
-</file> 
  
ansible_manager_roles.1753560543.txt.gz · Last modified: by wikiadm