ansible-galaxy的应用
ansible-galaxy 部署nginx
1.相关命令
1. 查看本机已安装的角色
[root@server ansible]# ansible-galaxy list
- ansible-role-nginx, (unknown version)
2. 联网安装ansible的角色
[root@server ansible]# ansible-galaxy install geerlingguy.nginx
3. 卸载角色
[root@server ansible]# ansible-galaxy remove ansible-role-nginx
- successfully removed ansible-role-nginx
2. 访问galaxy.ansible.com 查找自己想要的角色
点击搜索 进行roles的检索
找到自己需要的角色 点击查看详情 这里建议根据评分和下载量进行选择 选择接近5分的优质角色(通过下载量识别大佬和菜鸡)
点击头像,进入主页,到主页的个人作品搜索框内,输入nginx,进行查找,查找后点击nginx,进入作品详细页面。
3. 角色获取
鉴于国内网络连接galaxy.ansible.com比较费劲 建议访问GitHub获取角色文件 点击【github repo】即可跳转到 GitHub
复制项目地址 进行角色文件的克隆
root@server ansible]# yum -y install git
[root@server ansible]# git clone https://github.com/geerlingguy/ansible-role-nginx.git
正克隆到 'ansible-role-nginx'...
remote: Enumerating objects: 976, done.
remote: Counting objects: 100% (35/35), done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 976 (delta 12), reused 20 (delta 8), pack-reused 941
接收对象中: 100% (976/976), 162.77 KiB | 900.00 KiB/s, 完成.
处理 delta 中: 100% (460/460), 完成.
4.角色的使用
[root@server ansible]# cp -a ansible-role-nginx/ /etc/ansible/roles/
[root@server ansible]# ls
ansible.cfg ansible-role-nginx hosts inventory playbook roles run.yml
[root@server ansible]# rm -rf ansible-role-nginx/
[root@server ansible]# ls
ansible.cfg hosts inventory playbook roles run.yml
[root@server ansible]# vim nginx.yml //编写playbook
---
- hosts: all
remote_user: root
roles:
- role: ansible-role-nginx
[root@server ansible]# ansible-playbook --syntax-check nginx.yml //测试
playbook: nginx.yml
[root@server ansible]# ansible-playbook nginx.yml //执行
PLAY [httpd] *********************************************************************
TASK [Gathering Facts] ***********************************************************
ok: [192.168.58.20]
TASK [ansible-role-nginx : Include OS-specific variables.] ***********************
ok: [192.168.58.20]
TASK [ansible-role-nginx : Define nginx_user.] ***********************************
ok: [192.168.58.20]
TASK [ansible-role-nginx : include_tasks] ****************************************
included: /etc/ansible/roles/ansible-role-nginx/tasks/setup-RedHat.yml for 192.168.58.20
TASK [ansible-role-nginx : Enable nginx repo.] ***********************************
changed: [192.168.58.20]
TASK [ansible-role-nginx : Ensure nginx is installed.] ***************************
changed: [192.168.58.20]
TASK [ansible-role-nginx : include_tasks] ****************************************
skipping: [192.168.58.20]
TASK [ansible-role-nginx : include_tasks] ****************************************
skipping: [192.168.58.20]
TASK [ansible-role-nginx : include_tasks] ****************************************
skipping: [192.168.58.20]
TASK [ansible-role-nginx : include_tasks] ****************************************
skipping: [192.168.58.20]
TASK [ansible-role-nginx : include_tasks] ****************************************
skipping: [192.168.58.20]
TASK [ansible-role-nginx : Remove default nginx vhost config file (if configured).] ***
skipping: [192.168.58.20]
TASK [ansible-role-nginx : Ensure nginx_vhost_path exists.] **********************
ok: [192.168.58.20]
TASK [ansible-role-nginx : Add managed vhost config files.] **********************
TASK [ansible-role-nginx : Remove managed vhost config files.] *******************
TASK [ansible-role-nginx : Remove legacy vhosts.conf file.] **********************
ok: [192.168.58.20]
TASK [ansible-role-nginx : Copy nginx configuration in place.] *******************
changed: [192.168.58.20]
TASK [ansible-role-nginx : Ensure nginx service is running as configured.] *******
changed: [192.168.58.20]
RUNNING HANDLER [ansible-role-nginx : reload nginx] ******************************
changed: [192.168.58.20]
PLAY RECAP ***********************************************************************
192.168.58.20 : ok=11 changed=5 unreachable=0 failed=0 skipped=8 rescued=0 ignored=0