ansible中的角色

发布时间:2023年12月18日

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?

文章来源:https://blog.csdn.net/weixin_59439430/article/details/134903777
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。