Ansible的roles说明

1. 各目录含义解释

roles:          <--所有的角色必须放在roles目录下,这个目录可以自定义位置,默认的位置在/etc/ansible/roles
   project:      <---具体的角色项目名称,比如nginx、tomcat、php
       files:     <--用来存放由copy模块或script模块调用的文件。
       templates: <--用来存放jinjia2模板,template模块会自动在此目录中寻找jinjia2模板文件。
       tasks:     <--此目录应当包含一个main.yml文件,用于定义此角色的任务列表,此文件可以使用include包含其它的位于此目录的task文件。
           main.yml
       handlers:  <--此目录应当包含一个main.yml文件,用于定义此角色中触发条件时执行的动作。
           main.yml
       vars:      <--此目录应当包含一个main.yml文件,用于定义此角色用到的变量。
           main.yml

2. Ansible Roles示例

通过ansible roles安装配置nfs服务,此处的roles不使用默认的路径/etc/ansible/roles
1. 搭建结构
mkdir /mnt/myansible_roles
cd /mnt/myansible_roles

创建ansible.cfg
cat > ansible.cfg  << EOF 
[defaults]
inventory      = hosts
sudo_user      = root
transport      = smart
remote_port    = 22
remote_user = root
log_path = /mnt/myansible_roles/logs/ansible.log
deprecation_warnings = False
command_warnings = False
host_key_checking = False
interpreter_python = auto_legacy_silent
# gather_facts = no
EOF

创建hosts
cat > hosts << EOF
[nfsServer]
192.168.137.248
EOF

mkdir logs
mkdir -p roles/nfs-server/{tasks,vars,files,templates,handlers}

tree
.
├── ansible.cfg
├── hosts
├── logs
├── roles
│   └── nfs-server
│       ├── files
│       ├── handlers
│       ├── tasks
│       ├── templates
│       └── vars
└── site.yaml

2. 编写nfs-server
cd /mnt/myansible_roles/roles/nfs-server
# 创建tasks/main.yaml
cat > tasks/main.yaml << EOF
- name: install nfs-utils rpcbind
  yum: 
    name:
      - nfs-utils
      - rpcbind
    state: installed

- name: create data directory
  file:
    path: "{{ data_dir }}"
    state: directory
    owner: nfsnobody
    group: nfsnobody
#  ignore_errors: True

#- name: create config file
#  copy: src="exports" dest="/etc/"
#  notify:
#    - restart nfs

#- name: create config file
#  copy: 
#    src: exports
#    dest: /etc/
#  notify:
#    - restart nfs

#- name: create config file
#  template: src="exports.j2" dest="/etc/exports"
#  notify:
#    - restart nfs

- name: create config file
  template: 
    src: exports.j2
    dest: /etc/exports
  notify:
    - restart nfs

- name: start process
  service:
    name: "{{ item }}"
    enabled: yes
    state: started
  with_items:
    - rpcbind
    - nfs

- name: check server
  #shell: /usr/sbin/showmount  -e localhost
  shell: /usr/sbin/showmount  -e "{{ansible_eth0.ipv4.address}}"
  register: result

- name: display result
  debug: msg={{ result.stdout_lines }}
EOF

# 创建vars/main.yaml
cat > vars/main.yaml << EOF 
data_dir: /sharding_data
EOF

# 创建handlers/main.yaml
cat > handlers/main.yaml << EOF 
- name: restart nfs
  service:
    name: nfs
    state: restarted
    enabled: yes
EOF

# 创建files/exports
cat > files/exports << EOF 
/sharding_data/ 192.168.137.0/24(rw,sync)
EOF

# 创建templates/exports.j2
cat > templates/exports.j2 << EOF 
{{ data_dir }} 192.168.137.0/24(rw,sync)
EOF

.
├── files
│   └── exports
├── handlers
│   └── main.yaml
├── tasks
│   └── main.yaml
├── templates
│   └── exports.j2
└── vars
    └── main.yaml

3. 测试,执行
cd /mnt/myansible_roles/
cat > site.yaml << EOF 
---
- hosts: all
  roles:
    - nfs-server
EOF

# 语法检查
ansible-playbook --syntax-check site.yaml  
# 预执行
ansible-playbook -C site.yaml
# 如果都没问题就可以执行
ansible-playbook site.yaml
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341