角色是什麼
角色:
ansible 引用變量要用雙引號引起來
defaults —main.yml主文件 默認變量
files 存放要拷貝靜態文件
handlers ----main.yml
meat —main.yml 定義信息,依賴
tasks定義任務
templates 模版 .j2 模版
vars --main.yml 定義變量
角色裏面的優先級高
主要就是將原來的文件分區域管理,顯得更有條例,對應文件放在對應目錄下,代碼大體沒有變化,只有格式發生了小部分變化
**舉個例子
**
[devops@server1 ansible]$ pwd
/home/devops/ansible
[devops@server1 ansible]$mkdir roles
[devops@server1 ansible]$cd roles
[devops@server1 roles]$ ansible-galaxy init apache
- Role apache was created successfully
[devops@server1 roles]$ ls
apache
[devops@server1 roles]$cd /home/devops/ansible
[devops@server1 ansible]$ cd roles/apache
[devops@server1 apache]$ ls
defaults files handlers meta README.md tasks templates tests vars
[devops@server1 apache]$ ansible-galaxy list
# /usr/share/ansible/roles
# /etc/ansible/roles
[WARNING]: - the configured path /home/devops/.ansible/roles does not exist.
[devops@server1 apache]$ ll
total 4
drwxrwxr-x. 2 devops devops 22 Nov 23 19:54 defaults
drwxrwxr-x. 2 devops devops 6 Nov 23 19:54 files
drwxrwxr-x. 2 devops devops 22 Nov 23 19:54 handlers
drwxrwxr-x. 2 devops devops 22 Nov 23 19:54 meta
-rw-rw-r--. 1 devops devops 1328 Nov 23 19:54 README.md
drwxrwxr-x. 2 devops devops 22 Nov 23 19:54 tasks
drwxrwxr-x. 2 devops devops 6 Nov 23 19:54 templates
drwxrwxr-x. 2 devops devops 39 Nov 23 19:54 tests
drwxrwxr-x. 2 devops devops 22 Nov 23 19:54 vars
[devops@server1 apache]$ cd tasks/
[devops@server1 tasks]$ ls
main.yml
[devops@server1 tasks]$ vim main.yml
---
- name: install apache
yum:
name: httpd
state: present
- name: config apache
template:
src: httpd.conf.j2
dest: /etc/httpd/conf/httpd.conf
notify: restart apache
- name: start apache
service:
name: httpd
state: started
- name: copy index.html
copy:
src: index.html
dest: /var/www/html/index.html
[devops@server1 ansible]$ pwd
/home/devops/ansible
[devops@server1 ansible]$ cd roles/apache/te
templates/ tests/
[devops@server1 ansible]$ cd roles/apache/te
templates/ tests/
[devops@server1 ansible]$ cd roles/apache/templates/
[devops@server1 templates]$ ls
httpd.conf
[devops@server1 templates]$ mv httpd.conf httpd.conf.j2
[devops@server1 templates]$ vim httpd.conf.j2
[devops@server1 templates]$ ll
total 12
-rw-r--r--. 1 root root 11753 Nov 23 20:08 httpd.conf.j2
[devops@server1 templates]$ exit
exit
You have new mail in /var/spool/mail/root
[root@server1 mnt]# chgrp devops ansible/
ansible.cfg hosts ssh.yml zabbix/
[root@server1 mnt]# chgrp devops /home/devops/ansible/roles/apache/templates/httpd.conf.j2
[root@server1 mnt]# chown devops /home/devops/ansible/roles/apache/templates/httpd.conf.j2
[root@server1 mnt]# su devops
[devops@server1 mnt]$ cd
[devops@server1 ~]$ cd ansible/roles/apache/
[devops@server1 apache]$ ls
defaults files handlers meta README.md tasks templates tests vars
[devops@server1 apache]$ vim templates/httpd.conf.j2
42 Listen {{ http_host }}:{{ http_port }}
[devops@server1 apache]$ vim vars/main.yml
---
http_host: "{{ ansible_hostname }}"
http_port: 80
[devops@server1 apache]$ cd ..
[devops@server1 roles]$ ls
apache
[devops@server1 roles]$ cd ..
[devops@server1 ansible]$ ls
ansible.cfg apache hosts roles ssh.yml zabbix
[devops@server1 ansible]$ vim apache.yml
[devops@server1 ansible]$ cat hosts
[db]
172.25.62.2
[web]
172.25.62.3
[zabbix:children]
db
web
#[webserver:vars]
#http_port=80
[devops@server1 ansible]$ ls
ansible.cfg apache apache.yml hosts roles ssh.yml zabbix
[devops@server1 ansible]$ cd roles/
[devops@server1 roles]$ cd apache/
[devops@server1 apache]$ ls
defaults files handlers meta README.md tasks templates tests vars
[devops@server1 apache]$ ll templates/
total 12
-rw-r--r--. 1 devops devops 11782 Nov 23 20:12 httpd.conf.j2
[devops@server1 apache]$ vim defaults/main.yml
[devops@server1 apache]$ vim tasks/main.yml
[devops@server1 apache]$ vim tasks/main.yml
[devops@server1 apache]$ ansible-playbook apache.yml
ERROR! the playbook: apache.yml could not be found
[devops@server1 apache]$ cd ..
[devops@server1 roles]$ cd ..
[devops@server1 ansible]$ ansible-playbook apache.yml
[devops@server1 ansible]$ cd roles/apache/
[devops@server1 apache]$ ls
defaults files handlers meta README.md tasks templates tests vars
[devops@server1 apache]$ vim handlers/
[devops@server1 apache]$ vim handlers/main.yml
[devops@server1 apache]$ vim tasks/main.yml
[devops@server1 apache]$ vim handlers/main.yml
[devops@server1 apache]$ cd ..
[devops@server1 roles]$ cd ..
[devops@server1 ansible]$ ansible-playbook apache.yml
PLAY [web] ********************************************************************************************************
TASK [Gathering Facts] ********************************************************************************************
ok: [172.25.62.3]
TASK [apache : install apache] ************************************************************************************
ok: [172.25.62.3]
TASK [apache : config apache] *************************************************************************************
ok: [172.25.62.3]
TASK [apache : start apache] **************************************************************************************
changed: [172.25.62.3]
TASK [apache : copy index.html] ***********************************************************************************
changed: [172.25.62.3]
PLAY RECAP ********************************************************************************************************
172.25.62.3 : ok=5 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[devops@server1 ansible]$ curl 172.25.62.3
www.westos.org
開始正文推送zabbix
**
建立四個角色
權限都給爲777
**
**大體架構,根據原來文件配置,將對應文件歸位
模版,靜態文件。主文件,觸發器文件分別放在相應文件夾下
**
**數據庫文件
**數據庫配置文件
注意改掉格式
去掉host和tasks
此處我刪掉了火牆部分不想幹擾太大
觸發器文件去掉開頭
Web塊
一樣的修改方式
Agent塊
Server塊
修改
Zabbix要退的文件文件,調用各個角色
互相連接解決問題
再推
Host文件3作web db 2作agent server
全部關火牆
報錯
數據庫初始化
再推
找不到鏡像路徑
檢查網絡
將所有虛擬機配通能上網就好