1.环境

  1. cat /etc/hosts
  2. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  3. ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
  4. 10.0.0.50 ansible-master
  5. 10.0.0.51 ansible-node1
  6. 10.0.0.52 ansible-node2
  7. 10.0.0.53 ansible-node3
  8. ssh-keygen -t rsa -P ""
  9. ssh-copy-id -i ~/.ssh/id_rsa.pub root@ansible-node1
  10. ssh-copy-id -i ~/.ssh/id_rsa.pub root@ansible-node2
  11. ssh-copy-id -i ~/.ssh/id_rsa.pub root@ansible-node3
  12. cat /etc/ansible/hosts
  13. [lb]
  14. ansible-node1
  15.  
  16. [tcsrvs]
  17. ansible-node2
  18. ansible-node3
  19. # 创建角色目录
  20. mkdir -pv /etc/ansible/roles/{nginx,tomcat}/{files,templetes,tasks,vars,handlers,meta,default}
  21. # 配置文件
  22. cat /etc/ansible/roles/nginx/tasks/main.yml
  23. - name: install nginx
  24. yum: name=nginx state=latest
  25. when: ansible_os_family == "RedHat"
  26. - name: install conf
  27. copy: src=lb.conf dest=/etc/nginx/conf.d/
  28. tags: conf
  29. notify: restart nginx
  30. - name: start nginx
  31. service: name=nginx state=started enabled=true
  32.  
  33. cat /etc/ansible/roles/nginx/handlers/main.yml
  34. - name: restart nginx
  35. service: name=nginx state=restarted
  36.  
  37. cat /etc/ansible/roles/nginx/files/lb.conf
  38. upstream tcsrvs {
  39. server ansible-node2:8080;
  40. server ansible-node3:8080;
  41. }
  42.  
  43. server {
  44. listen 80;
  45. server_name www.ilinux.net;
  46. location / {
  47. proxy_pass http://tcsrvs;
  48. }
  49. }
  50.  
  51. cat /etc/ansible/playbooks/nginx-tomcat.yml
  52. - hosts: lb
  53. remote_user: root
  54. roles:
  55. - nginx
  56. - hosts: tcsrvs
  57. remote_user: root
  58. roles:
  59. - {role: jdk,version: 1.8.0}
  60. - tomcat
  61.  
  62. ansible-playbook -C nginx.yaml

2.ansible以roles的方式安装tomcat

  1. cat /etc/ansible/roles/tomcat/tasks/main.yml
  2. - name: install package
  3. yum: name={{ item }} state=latest
  4. with_item:
  5. - tomcat
  6. - tomcat-admin-webapps
  7. - tomcat-webapps
  8. - tomcat-docs-webapp
  9. when: ansible_os_family == "RedHat"
  10. - name: start tomcat
  11. service: name=tomcat state=started enabled=true
  12.  
  13. # 安装jdk
  14. mkdir -pv /etc/ansible/roles/jdk/{files,templetes,tasks,vars,handlers,meta,default}
  15. # 系统安装的openjdk不用手动提供java家目录
  16. cat /etc/ansible/roles/jdk/tasks/main.yml
  17. - name: install openjdk
  18. yum: name=java-{{ version }}-openjdk-devel state=latest
  19. - name: create env file
  20. copy: src=java.sh dest=/etc/profile.d/
  21.  
  22. cat files/java.sh
  23. export JAVA_HOME=/usr

Ansible进阶之企业级应用的更多相关文章

  1. devops工具-Ansible进阶playbook&roles

    一.playbook介绍     playbook 是 Ansible 管理配置.部署应用的核心所在,一个playbook由有多“play组成”,而一个play实际就是一个task,每个task是由多 ...

  2. Ansible进阶--playbook的使用

    一.什么是playbooksplaybooks是ansible的脚本.如同shell脚本一样,它是控制远程主机的一系列命令的集合,通过YAML语言编写.执行一些简单的任务,我们可以使用ad-hoc命令 ...

  3. ansible进阶模板和角色使用

    使用场景 Ansible 由于采用ssh远程连接登录管理,虽然不需要额外安装agent,但是速度慢效率低.不适合管理大规模的主机一般最大规模在200-300台,超大规模的主机管理适合使用puppet ...

  4. Ansible 进阶技巧

    原文  http://www.ibm.com/developerworks/cn/linux/1608_lih_ansible/index.html?ca=drs-   简介 Ansible 是一个系 ...

  5. ansible进阶小技巧--tags

    用ansible写playbook的朋友可能会发现,当配置工作很多时,如果在中间过程出错了,修改后想重新执行,前面的一大堆步骤让人感觉很烦躁.虽然提供了“retry”文件,但是却只是根据host来判断 ...

  6. [转] Ansible 进阶 | facts 缓存

    [From] https://blog.csdn.net/bruce_6/article/details/81328975 什么是 Ansible factsAnsible facts 是远程系统的信 ...

  7. Ansible进阶

    YAML YAML简介 YAML是一个可读性高,并用来表达资料序列的格式.YAML参考了其它多种语言,包括:XML.C语言.Python.Perl以及电子邮件格式RFC2822等 它是一种直观的能够被 ...

  8. ansible基础-安装与配置

    一 安装 1.1 ansible架构 ansible是一个非常简单的自动化部署项目,由python编写并且开源.用于提供自动化云配置.配置文件管理.应用部署.服务编排和很多其他的IT自动化需求. an ...

  9. Ansible开发之路

    一.初识Ansible 链接:https://www.cnblogs.com/baishuchao/articles/9164083.html 二.Ansible的架构 链接:https://www. ...

随机推荐

  1. Git-Git初始化

    创建版本库及第一次提交 通过如下操作来查看一下您的Git版本. $ git --version git version 1.7.4 在开始 Git 之旅之前,我们需要设置一下 Git 的配置变量,这是 ...

  2. Spring核心技术(十四)——ApplicationContext的额外功能

    在前文的介绍中我们知道,org.springframework.beans.factory包提供了一些基本的功能来管理和控制Bean,甚至通过编程的方式来实现.org.springframework. ...

  3. Detecting iOS

    Detecting iOS I am not a fan of User Agent sniffing, but here is how you would do it: var iOS = /iPa ...

  4. 赢友网络通用框架V10.0.0(WinuAppSoft) 基础框架设计表

    /* * 版权所有:赢友网络(http://www.winu.net/) * 开发人员:新生帝(JsonLei) * 设计名称:赢友网络通用框架V10.0.0(WinuAppSoft) * 设计时间: ...

  5. 无法启动此程序,因为计算机中丢失OgreMain_d.dll。尝试重新安装该程序以解决此问题。

    这个问题很奇怪啊,不明白什么原因? 打开VS2010,打开项目,运行,就提示”无法启动此程序,因为计算机中丢失OgreMain_d.dll.尝试重新安装该程序以解决此问题.“ 然后就去配置环境变量,包 ...

  6. 移动web前端开发小结

    注意:Chrome模拟手机的显示的界面是有误差的,强烈建议一定要在真机测试自己的移动端页面(以移动端页面为准). 1.页面高度渲染错误,页面的高度是否包含了导航,(华为手机就是偏偏有底部菜单) 设置窗 ...

  7. poj2914 Minimum Cut 全局最小割模板题

    Minimum Cut Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 8324   Accepted: 3488 Case ...

  8. caffe-dnnh实验

    下面是我在做基于深度哈希的大规模图像检索中的一个实验,相关文档介绍给大家,具体内容查看提供的相关链接,总结的很到位了,我就不再赘述. 实践cvpr2015年的深度哈希图像检索论文:Simultaneo ...

  9. mvc与mvp与mvvm

    ==MVC,MVP和MVVM都是常见的软件架构设计模式,它通过分离关注点来改进代码的组织方式== MVC.MVP和MVVM的相同点和不同点 不同部分是C(Controller).P(Presenter ...

  10. AsyncSocket

    如果需要在项目中像QQ微信一样做到即时通讯,必须使用socket通讯,本人也是刚学习,分享一下,有什么不对的地方希望大家指正 ios原生的socket用起来不是很直观,所以我用的是AsyncSocke ...