ansible-galaxy 示例
ansible-galaxy
帮助文档:
https://docs.ansible.com/ansible/latest/galaxy/user_guide.html#finding-collections-on-galaxy
使用示例
示例来源:https://www.linuxtechi.com/use-ansible-galaxy-roles-ansible-playbook/
How to Download and Use Ansible Galaxy Roles in Ansible Playbook
[root@ansible ~]# ansible-galaxy --help
[root@ansible ~]# ansible-galaxy search ntp
[root@ansible ~]# ansible-galaxy info bennojoy.ntp
[root@ansible ~]# ansible-galaxy install bennojoy.ntp
[root@ansible ~]# ansible-galaxy list
[root@ansible ~]# cd /etc/ansible/roles/bennojoy.ntp/
[root@ansible bennojoy.ntp]# ls -l
[root@ansible ~]# cat hosts
[CentOS]
elastic7-01 ansible_host=192.168.1.15 ansibel_port=22 ansible_user=linuxtechi
#测试主机是否连通
[root@ansible ~]# ansible -m ping -i hosts elastic7-01
[root@elastic7-01 ~]# head -30 /etc/ntp.conf
[root@ansible ~]# vi /etc/ansible/roles/bennojoy.ntp/defaults/main.yml
#修改ntp-server 的变量
ntp_server: [in.pool.ntp.org]
[root@ansible ~]# vi ntpsite.yaml
---
- name: Configure NTP on CentOS/RHEL/Debian System
become: true
hosts: all
roles:
- {role: bennojoy.ntp}
[root@ansible ~]# ansible-playbook -i hosts ntpsite.yaml
其他实验
https://github.com/geerlingguy/ansible-role-java
#安装Java
ansible-galaxy install geerlingguy.java
[root@mini-install ~]# cat hosts
#192.168.21.131 ansible_ssh_user=root ansible_ssh_pass='123123' key=131
#192.168.21.134 ansible_ssh_user=root ansible_ssh_pass='123123' key=132
192.168.190.133 ansible_ssh_user=root ansible_ssh_pass='redhat'
[root@mini-install ~]# cat variables.yml
- hosts: 192.168.190.133
roles:
- role: geerlingguy.java
when: "ansible_os_family == 'RedHat'"
java_packages:
- java-1.8.0-openjdk
###执行安装
ansible-playbook -i hosts variables.yml
构建自己的ansible-galaxy
[root@ansible ~]# ansible-galaxy init pk.backup
- pk.backup was created successfully
[root@mini-install pk.backup]# tree
.
├── defaults
│ └── main.yml
├── files
├── handlers
│ └── main.yml
├── meta
│ └── main.yml
├── README.md
├── tasks
│ └── main.yml
├── templates
├── tests
│ ├── inventory
│ └── test.yml
└── vars
└── main.yml
8 directories, 8 files
第一个是defaults目录,该目录包含文件,这些文件包含具有最低优先级的变量,如果在var目录中分配了相同的变量,它将优先于default。 handlers目录托管处理程序。该文件和模板保留您的角色可能需要复制的任何文件,以及分别在剧本中使用的Jinja模板。任务目录是包含任务的剧本的存放位置。 var目录包含所有承载角色中使用的变量的文件。测试目录由样本清单和测试手册组成,可用于测试角色。元目录包括对其他角色的任何依赖关系以及作者信息。
最后,README.md文件仅包含一些一般信息,例如描述和该角色与之兼容的最低版本

浙公网安备 33010602011771号