利用ansible 实现前端nginx代理后端2个tomcat主机

1.在/etc/hosts 文件中解析4台主机名

2.在/etc/ansible/hosts中添加主机:

[lb]
node1
[tcsrvs]
node[2:3]

3. 基于私钥认证免密码连接:

ssh-keygen -t rsa -P ''
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node{1,2,3,4}

4.ansible all --list-hosts验证是否连接成功

5.对于nginx角色:

mkdir -pv /etc/ansible/roles/{nginx,tomcat}/{files,templates,tasks,handlers,vars,meta,default}

vim task/main.yml
-name: install nginx
  yum : name=nginx state=lastest
  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=yes

vim handlers/main.yml
- name:restart nginx
  service : name=nginx state=restarted

vim files/lb.conf
upstream tcsrvs{
    server node1:8080;
    server node2:8080;
}
server{
    listen 80;
    server_name www.ilinux.io;
    location / {
        proxy_pass http://tcsrvs;
    }
}

mkdir playbook/      cd /playbook
vim nt.yml
- host : lb
  remote_user: root
  roles:
  - nginx

ansible-playbook -C nt.yml ----->至此nginx主机配置完成   

6 配置tomcat,jdk角色

cd /etc/ansible/roles/tomcat/
vim tasks/main.yml
- name : install package
  yum : name={{ item }} state=lastest
  with_items:
  - tomcat 
  -tomcat-admin-webapps
  -tomcat-webapps
  -tomcat-docs-webapps
  when: ansible_os_faminly == "RedHAT"
  -name : start tomcat
  service: name=tomcat state=started enabled=yes
 因为tomcat需要依赖jdk所以另外需要建立一个jdk的角色:
    mkdir jdk/{files,templates,tasks,vars,handlers}
vim tasks/main.yml 
    -name : install jdk
    yum : name=java-{{ version }}-openjdk-devel state=lastest
    name: install env file
    copy: src=java.sh dest=/etc/profile.d/

vim /files/java.sh
     export ....

vim /vars/main.yml
    vertion: 1.8.0

在之前的nt.yml文件中添加一段:

-host: tcsrvs
remote_user: root
roles:
- jdk
- tomcat

ansible-playbook -C nt.yml
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一.ansible (1) ansible: ansible是一款新出现的自动化运维系统,基于python开发并集...
    楠人帮阅读 6,009评论 0 8
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,302评论 19 139
  • ansible介绍ansible常用模块使用playbooktemplates,模板条件测试和循环迭代roles,...
    哈喽别样阅读 5,218评论 0 3
  • 《人生的旋转木马》 和小伙伴们一起去杭州宋城游乐园。 虽然不是周末但是也有不少人排队,太阳的炙热依然没有冲淡内心的...
    逆袭的申申阅读 1,534评论 0 3
  • 前天休息的时候,看了一部《Lost in the Translation》的文艺片。看完之后自己写影评,发现功力不...
    小秋在唱歌阅读 5,503评论 0 1