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 

相关推荐

  1. Ansible如何处理play错误Ansible角色

    2023-12-12 06:42:02       65 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-12 06:42:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-12 06:42:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-12 06:42:02       82 阅读
  4. Python语言-面向对象

    2023-12-12 06:42:02       91 阅读

热门阅读

  1. Ansible hanlder是啥?Ansible Block是啥?

    2023-12-12 06:42:02       49 阅读
  2. 02.类模板

    2023-12-12 06:42:02       38 阅读
  3. Springboot Redis Lua 分布式限流器

    2023-12-12 06:42:02       71 阅读
  4. css中的 box-sizing: border-box

    2023-12-12 06:42:02       55 阅读
  5. Go Self-reproducing programs (自重写)

    2023-12-12 06:42:02       57 阅读
  6. Matlab 对称轴探测(二维点集)

    2023-12-12 06:42:02       67 阅读
  7. Mr_HJ / form-generator项目文档学习与记录

    2023-12-12 06:42:02       49 阅读