?查看创建目录结构
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
这样把各个部分都分开,各自书写,不用过于考虑缩进,而且更加直观。
---- 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 :
?
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?