zoukankan      html  css  js  c++  java
  • Ansible: hosts文件拆分为inventory和定义inventory全局变量

    前言

    随着管理机器的增多,我们在使用Ansible的时候时常会遇到hosts文件过于冗长的问题,极其不便于管理,而将hosts文件拆分为inventory就可解决该问题;另外,hosts中的每个主机条目需要指定用户名和私钥或密码,十分繁琐,而hosts文件支持全局变量,可将该公用信息进行全局指定或分组指定,本文就这两点展开,希望对遇到同样问题的小伙伴有所帮助。

    配置文件

    首先需要修改/etc/ansible/ansible.cfg配置文件

    [defaults]
    #此处为目录或hosts文件,不可更改
    inventory = /etc/ansible/inventory
    #inventory = /etc/ansible/host

    创建inventory目录

    创建/etc/ansible/inventory目录
    在该目录下创建拆分后的hosts文件

    拆分hosts文件

    建议先按照项目创建目录,在项目目录下创建环境的hosts文件,例如下图

    定义inventory全局变量

    cat >/etc/ansible/inventory/all-vars <<"EOF"
    [all:vars]
    ansible_connection=ssh
    ansible_ssh_user=root
    ansible_ssh_private_key_file=/root/.ssh/id_rsa

    清除原有每个inventory的变量

    sed -ig 's/ansible_ssh_user=root ansible_ssh_private_key_file=/root/.ssh/id_rsa//g' ./*

    此处贴上/etc/ansible/inventory/Aproject/online的hosts文件内容

     

  • 相关阅读:
    JavaWeb 之 三层架构:软件设计架构
    JavaWeb 之 MVC 开发模式
    JavaWeb 之 JSTL 标签
    Java 之 JSP
    【LeetCode-动态规划】不同的二叉搜索树
    【深度学习】模型压缩
    【LeetCode-数学】两数相除
    【LeetCode-链表】删除链表的倒数第N个节点
    【LeetCode-链表】合并K个排序链表
    【LeetCode-链表】合并两个有序链表
  • 原文地址:https://www.cnblogs.com/William-Guozi/p/ansible_hosts.html
Copyright © 2011-2022 走看看