ansible中的角色

1.理解roles在企业中的定位及写法

 查看创建目录结构

ansible - galaxy list

指定新的位置

vim ansible.cfg 

        roles_path  =        ~/.ansible/roles

 

 建立项目

cd roles/
ansible-galaxy init vsftpd
tree vsftpd/

编辑任务执行(顺序)文件

vim vsftpd/tasks/main.yml 

---
# tasks file for vsftpd
- name: install vsftpd
  dnf:
    name: vsftpd
    state: present
- name: start vsftpd
  service:
    name: vsftpd
    enabled: yes
- name: set firewalld
  firewalld:
    service: ftp
    state: enabled
    permanent: yes
    immediate: yes
- name: setup config file
  template:
    src: vsftpd.conf.j2
    dest: /etc/vsftpd/vsftpd.conf
  notify: restart vsftpd
 

编辑j2文件

vim vsftpd/templates/vsftpd.conf.j2

        anonymous_enable={{state}}

编辑变量文件 

vim vsftpd/vars/main.yml 

---
# vars file for vsftpd
state: YES

编辑触发器文件

vim vsftpd/handlers/main.yml 

---
# handlers file for vsftpd
- name: restart vsftpd
  service:
    name: vsftpd
    state: restarted

编辑yaml文件

cd ..
 vim vsftpd.yml 

 - name: create ftp server
  hosts: all
  roles: 
    - name: create vsftpd
      role: vsftpd

运行

ansible-playbook vsftpd.yml

这样把各个部分都分开,各自书写,不用过于考虑缩进,而且更加直观。

2.关于roles执行的技巧

playbook 中使用 roles
---
- hosts : server2
  roles :
    - role : role1
    - role : role2
      var1 : value1                   ## 此处变量会覆盖 roles 中的定义变量
直接覆盖数据
vim vsftpd.yml 
- name: create ftp server
  hosts: all
  roles: 
    - name: create vsftpd
      role: vsftpd
      state: 'NO'
# 控制任务执行顺序 #
---
- hosts : server2
  roles :
    - role : role1                           ## 角色任务
  pre_tasks :                               ##角色执行前执行的 play
    - tasks1
  tasks :                                       ##普通任务
    - tasks2
  post_tasks :                                 ##在角色和普通任务执行完毕后执行的 play
    - tasks3
  handlers :

3.role的下载和共享

#ansible—galaxy 命令工具 #
* Ansible Galaxy 是一个免费共享和下载 Ansible 角色的网站 可以帮助我们更好的定义和学习 roles
* ansible - galaxy 命令默认与 https :// galaxy.ansible.com 网站 API 通信 可以查找 下载各种社区开发的 Ansible 角色

 

* ansible - galaxy Ansible 1.4.2 就已经被包含了
* galaxy.ansible.com 网站查询 roles
在官网找到后下载

ansible-galaxy collection install altispeed.web

将自己编写的打包以及怎么下载

tar zcf vsftpd.tar.gz vsftpd

mv vsftpd.tar.gz /tmp/
rm -fr vsftpd

vim vsftpd_role.yaml
        - src: file:///tmp/vsftpd.tar.gz
          name: westos


ansible-galaxy install -r vsftpd_role.yaml 

  • 23
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值