首页 > 代码库 > ansible 渲染nginx配置文件(菜鸟版)
ansible 渲染nginx配置文件(菜鸟版)
标题有点吓人,其实做的很基础,简单。没什么技术含量。
1.首先在ansible上形成vhost.fact cat books.txt w ip1 dev 8021 8688 api w ip2 dev 8021 8688 api w是tomcat应用名称,api是域名名称 nginx.py #!/usr/bin/env python # -*- coding: utf-8 -*- import ConfigParser import string, os, sys def ynameconf(): sfile = ‘books.txt‘ inventory = {} with open(sfile, ‘rb‘) as f: for i in f.readlines(): ip = i.strip().split()[1] yname = i.strip().split()[5] # 域名 if not yname in inventory: inventory[yname] = [] inventory[yname].append(ip) return inventory def ynameParser(): cf = ConfigParser.ConfigParser() ynameyname=ynameconf() for k,v in ynameyname.iteritems(): cf.add_section(‘general‘) cf.set("general", "pro_dir", k) cf.set("general", "ip1", v[0]) cf.set("general", "ip2", v[1]) # cf.set(k, ‘,‘.join(v)) cf.write(open("vhost.fact", "w")) ynameP=ynameParser() 生成的vhost.fact的样子 [general] pro_dir = api ip1 = ip1 ip2 = ip2 还有很多问题 1.假如有三台以上机器怎么处理 2.多个域名怎么同时处理,搞到我想到了协程 2.写yml文件,就几行 mkdir -p /etc/ansible/nginx ├── hosts ├── roles │ └── vhost │ ├── default │ ├── files │ ├── handlers │ │ └── main.yml │ ├── meta │ ├── tasks │ │ ├── install.yml │ │ └── main.yml │ ├── templates │ │ ├── set.conf │ │ └── vhost.conf │ └── vars └── vhost.yml 主要tasks/install.yml - name: mkdir shell: mkdir -p /etc/ansible/facts.d - name: copy vhost.fact copy: src=http://www.mamicode.com/etc/ansible/vhost.fact dest=/etc/ansible/facts.d/vhost.fact >
本文出自 “要有梦想,万一实现了呢” 博客,请务必保留此出处http://szgb17.blog.51cto.com/340201/1947640
ansible 渲染nginx配置文件(菜鸟版)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。