補充:
#inventory = /etc/ansible/hosts #配置主機清單路徑的地方。
#library = /usr/share/my_modules/
#module_utils = /usr/share/my_module_utils/
#remote_tmp = ~/.ansible/tmp
#local_tmp = ~/.ansible/tmp
ansible
ansible劇本編寫方式: 角色
- 規(guī)范ansible程序目錄結(jié)構(gòu)
- 匯總劇本中有定義的主機
3.將任務分開實現(xiàn)不同主機隨時都可以模塊
編寫的步驟
- 1首先進入/etc/ansible/roles的目錄中
- 2 不同的服務創(chuàng)建不同的目錄
- 3 然后再進入目錄中創(chuàng)建子目錄
- 4 有規(guī)劃的創(chuàng)建子目錄
{vars,tasks,templates,handlers,files}
vars: 定義變量信息
tasks: 定義任務信息 -----------> 先編寫
templates: 定義模板文件(jinja2模板文件)
handlers: 定義觸發(fā)器信息
files: 定義需要分發(fā)的文件
利用角色編寫nfs服務
第一個歷程: 編寫文件信息
tasks: 任務信息編寫方式一:
vim main.yaml
- name: 01:install nfs rpcbind
yum:
name: ['nfs-utils', 'rpcbind']
state: installed
- name: 02:copy conf file
copy: src=/etc/ansible/ansible_playbook/nfs.conf dest=/etc/{{ conf_file }}
notify:
- nfs_restart
# - nfs_create_dir
- name: 03:create data dir
file: path={{ data_dir }} state=directory owner=nfsnobody group=nfsnobody
- name: 04:boot server rpcbind
service: name={{ item.name }} state={{ item.state }} enabled={{ item.enabled }}
with_items:
- {name: "rpcbind", state: "started", enabled: "yes"}
- {name: "nfs", state: "started", enabled: "yes"}
- name: 01:install nfs
yum: name=nfs-utils state=installed
- name: 02:mount data dir
mount: src=172.16.1.31:{{ data_dir }} path=/mnt fstype=nfs state=mounted
- name: 03:check mount info
shell: df -h|grep mnt
register: mount_info
- debug: msg={{ mount_info.stdout_lines }}
tasks: 任務信息編寫方式二(拆分成多個小任務----->更標準)
[root@m01 tasks]# ll
total 24
-rw-r--r-- 1 root root 162 Jul 29 10:30 main.yaml //將所有的任務匯總到這里敬拓。每個任務中有判斷功能。
-rw-r--r-- 1 root root 296 Jul 29 10:28 nfs_boot.yaml
-rw-r--r-- 1 root root 194 Jul 29 10:26 nfs_conf.yaml //注意進行判斷
-rw-r--r-- 1 root root 156 Jul 29 10:27 nfs_datadir.yaml
-rw-r--r-- 1 root root 96 Jul 29 10:18 nfs_install.yaml
-rw-r--r-- 1 root root 273 Jul 29 10:28 nfs_mount.yaml
vim main.yaml
- include_tasks: nfs_install.yaml
- include_tasks: nfs_conf.yaml
- include_tasks: nfs_datadir.yaml
- include_tasks: nfs_boot.yaml
- include_tasks: nfs_mount.yaml
vars:
vim main.yaml
conf_file: exports
data_dir: /data
files:
[root@m01 files]# ll
total 4
-rw-r--r-- 1 root root 42 Jul 29 10:34 nfs.conf
//配置文件在角色中放著就可以了。
handlers:
cat main.yaml
- name: nfs_restart
service: name=nfs state=reloaded
可以做一個初始化目錄 roles下的init目錄
使用ansible角色任務讀取的流程圖
讀取流程
- 1.執(zhí)行一鍵化劇本 劇本中匯總多個角色
- 2.加載host文件
- 3.task目錄 找到main.yaml找到具體執(zhí)行什么任務
- 4.如果配置了變量的信息 會找vars
- 5.如果設(shè)計到文件的信息,會找文件的信息
- 6.再去找handlers進行觸發(fā)爪模。