Loading

ansible-galaxy 示例

ansible-galaxy

https://galaxy.ansible.com/

帮助文档:
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文件仅包含一些一般信息,例如描述和该角色与之兼容的最低版本

posted @ 2020-06-24 13:15  Lust4Life  阅读(407)  评论(0)    收藏  举报