Ansible进阶之企业级应用
1.环境
- cat /etc/hosts
- 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
- ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
- 10.0.0.50 ansible-master
- 10.0.0.51 ansible-node1
- 10.0.0.52 ansible-node2
- 10.0.0.53 ansible-node3
- ssh-keygen -t rsa -P ""
- ssh-copy-id -i ~/.ssh/id_rsa.pub root@ansible-node1
- ssh-copy-id -i ~/.ssh/id_rsa.pub root@ansible-node2
- ssh-copy-id -i ~/.ssh/id_rsa.pub root@ansible-node3
- cat /etc/ansible/hosts
- [lb]
- ansible-node1
- [tcsrvs]
- ansible-node2
- ansible-node3
- # 创建角色目录
- mkdir -pv /etc/ansible/roles/{nginx,tomcat}/{files,templetes,tasks,vars,handlers,meta,default}
- # 配置文件
- cat /etc/ansible/roles/nginx/tasks/main.yml
- - name: install nginx
- yum: name=nginx state=latest
- when: ansible_os_family == "RedHat"
- - name: install conf
- copy: src=lb.conf dest=/etc/nginx/conf.d/
- tags: conf
- notify: restart nginx
- - name: start nginx
- service: name=nginx state=started enabled=true
- cat /etc/ansible/roles/nginx/handlers/main.yml
- - name: restart nginx
- service: name=nginx state=restarted
- cat /etc/ansible/roles/nginx/files/lb.conf
- upstream tcsrvs {
- server ansible-node2:8080;
- server ansible-node3:8080;
- }
- server {
- listen 80;
- server_name www.ilinux.net;
- location / {
- proxy_pass http://tcsrvs;
- }
- }
- cat /etc/ansible/playbooks/nginx-tomcat.yml
- - hosts: lb
- remote_user: root
- roles:
- - nginx
- - hosts: tcsrvs
- remote_user: root
- roles:
- - {role: jdk,version: 1.8.0}
- - tomcat
- ansible-playbook -C nginx.yaml
2.ansible以roles的方式安装tomcat
- cat /etc/ansible/roles/tomcat/tasks/main.yml
- - name: install package
- yum: name={{ item }} state=latest
- with_item:
- - tomcat
- - tomcat-admin-webapps
- - tomcat-webapps
- - tomcat-docs-webapp
- when: ansible_os_family == "RedHat"
- - name: start tomcat
- service: name=tomcat state=started enabled=true
- # 安装jdk
- mkdir -pv /etc/ansible/roles/jdk/{files,templetes,tasks,vars,handlers,meta,default}
- # 系统安装的openjdk不用手动提供java家目录
- cat /etc/ansible/roles/jdk/tasks/main.yml
- - name: install openjdk
- yum: name=java-{{ version }}-openjdk-devel state=latest
- - name: create env file
- copy: src=java.sh dest=/etc/profile.d/
- cat files/java.sh
- export JAVA_HOME=/usr
Ansible进阶之企业级应用的更多相关文章
- devops工具-Ansible进阶playbook&roles
一.playbook介绍 playbook 是 Ansible 管理配置.部署应用的核心所在,一个playbook由有多“play组成”,而一个play实际就是一个task,每个task是由多 ...
- Ansible进阶--playbook的使用
一.什么是playbooksplaybooks是ansible的脚本.如同shell脚本一样,它是控制远程主机的一系列命令的集合,通过YAML语言编写.执行一些简单的任务,我们可以使用ad-hoc命令 ...
- ansible进阶模板和角色使用
使用场景 Ansible 由于采用ssh远程连接登录管理,虽然不需要额外安装agent,但是速度慢效率低.不适合管理大规模的主机一般最大规模在200-300台,超大规模的主机管理适合使用puppet ...
- Ansible 进阶技巧
原文 http://www.ibm.com/developerworks/cn/linux/1608_lih_ansible/index.html?ca=drs- 简介 Ansible 是一个系 ...
- ansible进阶小技巧--tags
用ansible写playbook的朋友可能会发现,当配置工作很多时,如果在中间过程出错了,修改后想重新执行,前面的一大堆步骤让人感觉很烦躁.虽然提供了“retry”文件,但是却只是根据host来判断 ...
- [转] Ansible 进阶 | facts 缓存
[From] https://blog.csdn.net/bruce_6/article/details/81328975 什么是 Ansible factsAnsible facts 是远程系统的信 ...
- Ansible进阶
YAML YAML简介 YAML是一个可读性高,并用来表达资料序列的格式.YAML参考了其它多种语言,包括:XML.C语言.Python.Perl以及电子邮件格式RFC2822等 它是一种直观的能够被 ...
- ansible基础-安装与配置
一 安装 1.1 ansible架构 ansible是一个非常简单的自动化部署项目,由python编写并且开源.用于提供自动化云配置.配置文件管理.应用部署.服务编排和很多其他的IT自动化需求. an ...
- Ansible开发之路
一.初识Ansible 链接:https://www.cnblogs.com/baishuchao/articles/9164083.html 二.Ansible的架构 链接:https://www. ...
随机推荐
- Git-Git初始化
创建版本库及第一次提交 通过如下操作来查看一下您的Git版本. $ git --version git version 1.7.4 在开始 Git 之旅之前,我们需要设置一下 Git 的配置变量,这是 ...
- Spring核心技术(十四)——ApplicationContext的额外功能
在前文的介绍中我们知道,org.springframework.beans.factory包提供了一些基本的功能来管理和控制Bean,甚至通过编程的方式来实现.org.springframework. ...
- Detecting iOS
Detecting iOS I am not a fan of User Agent sniffing, but here is how you would do it: var iOS = /iPa ...
- 赢友网络通用框架V10.0.0(WinuAppSoft) 基础框架设计表
/* * 版权所有:赢友网络(http://www.winu.net/) * 开发人员:新生帝(JsonLei) * 设计名称:赢友网络通用框架V10.0.0(WinuAppSoft) * 设计时间: ...
- 无法启动此程序,因为计算机中丢失OgreMain_d.dll。尝试重新安装该程序以解决此问题。
这个问题很奇怪啊,不明白什么原因? 打开VS2010,打开项目,运行,就提示”无法启动此程序,因为计算机中丢失OgreMain_d.dll.尝试重新安装该程序以解决此问题.“ 然后就去配置环境变量,包 ...
- 移动web前端开发小结
注意:Chrome模拟手机的显示的界面是有误差的,强烈建议一定要在真机测试自己的移动端页面(以移动端页面为准). 1.页面高度渲染错误,页面的高度是否包含了导航,(华为手机就是偏偏有底部菜单) 设置窗 ...
- poj2914 Minimum Cut 全局最小割模板题
Minimum Cut Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 8324 Accepted: 3488 Case ...
- caffe-dnnh实验
下面是我在做基于深度哈希的大规模图像检索中的一个实验,相关文档介绍给大家,具体内容查看提供的相关链接,总结的很到位了,我就不再赘述. 实践cvpr2015年的深度哈希图像检索论文:Simultaneo ...
- mvc与mvp与mvvm
==MVC,MVP和MVVM都是常见的软件架构设计模式,它通过分离关注点来改进代码的组织方式== MVC.MVP和MVVM的相同点和不同点 不同部分是C(Controller).P(Presenter ...
- AsyncSocket
如果需要在项目中像QQ微信一样做到即时通讯,必须使用socket通讯,本人也是刚学习,分享一下,有什么不对的地方希望大家指正 ios原生的socket用起来不是很直观,所以我用的是AsyncSocke ...