首页 > 其他分享 >Ansible 命令模块操作

Ansible 命令模块操作

时间:2022-08-14 17:50:16浏览次数:81  
标签:主机 命令 Ansible 模块 清单 com example

目录

Ansible 命令模块操作

Ansible 清单

用于管理目标主机的列表

部署 Ansible 清单文件

  • 定义清单
    • 清单定义 Ansible 将要管理的一批主机
    • 这些主机也可以分配到组中,以进行集中管理。组可以包含 子组 ,主机也可以是多个组的成员 。清单还可以设置应用到它所定义的主机和组的变量。
  • 可以通过两种方式定义主机清单
    • 静态 主机清单:静态主机清单可以通过 文本文件 来定义。
    • 动态 主机清单:动态主机清单可以根据需要使用 外部信息提供程序通过脚本或其他程序来生成

静态清单

  • 静态清单文件是指定 Ansible 目标受管主机的文本文件。可以使用多种不同的格式编写此文件,包括 INI 样式或 YAML

    YAML 格式检测: http://www.yamllint.com/

    注意 : Ansible 支持多种静态清单格式。此次仅介绍 INI 样式的格式

INI 格式

    • [section]
  • 参数
    • key = value
    • 需要注意的时 key 在 section 内通常时不能重复的,其行为是不确定的,可能会导致前者被覆盖,或直接报错;但 key 在不同的 section 中使可以重复的
  • 注释
    • 注释使用分号(;)表示。在分号后米娜的文字,知道该行结尾都全部为注释。
[ServerA]
enable = 0
port = 8080
[ServerB]
enable = 1
port = 8081
; comment text

定义嵌套组

  • Ansible 主机清单可以包含 由多个主机构成的组 。这通过创建后缀为 :children 的主机组名称来实现。
; INI 格式的清单
[dev]
servera.example.com
serverb.example.com
[test]
serverc.example.com
serverd.example.com
[balance:children]
dev
test
# YAML 格式的清单
all:
  hosts:
    mail.example.com: # 未知主机
  children:
    dev:
      hosts:
        servera.example.com:
        serverb.example.com:
    test:
      hosts:
        serverc.example.com:
        serverd.example.com:

静态清单示例

# 未定义组的主机
servera.lab.example.com
serverb.lab.example.com
serverc.lab.example.com
# 定义组的主机
[webservers]
web1.example.com
web2.example.com
192.168.2.42
# 可以通过主机名,也可以通过IP地址定义
[db-servers]
db1.example.com
db2.example.com
[balance:children]
websevers
db-servers

通过规范简化主机规格

  • 可以通过指定主机名称或 IP 地址的范围来简化 Ansible 主机清单。可以 指定数字或字母的范围
    • [START:END]
  • 范围匹配从 START 到 END(含) 的所有的值。
    • 192.168.[4:7].[0:255] 匹配 192.168.4.0/22 网络中的所有 IPv4 地址
    • server[01:20].examlpe.com 匹配名为 server01.example.com - server20.example.com 的所有主机
    • [a:c].dns.example.com
    • 2001:db8:[a:f]

验证清单

ansible [inventory] --list-hosts

  • 重要
  • 如果清单中含有名称相同的主机和主机组, ansible 命令将显示警告并以主机作为其目标、主机组则被忽略。
  • 两个主机组始终存在 all 主机组含邮费清单中明确列出的每一个主机。 ungrouped 主机组含有清单中明确列出、但不属于任何其他组的没一个主机。

覆盖清单的位置

  • /etc/ansible/hosts 文件被视为系统的 默认静态清单文件 。不过, 通常的做法是不是用该文件 ,而是在 Ansible 配置文件中为清单文件 定义一个不同位置
  • 可以通过 --inventory PATHNAME-i PATHNAME 选项命令行中指定清单文件的位置,其中 PATHNAME 是所需清单文件的路径。
  • 在清单中定义的变量
  • 可以在主机清单文件中 指定 palybook 使用的变量值 。这些变量仅应用到主机或主机组。通常, 最好在特殊目录中定义这些库存变量,而不要直接在清单文件中定义

在清单中定义变量

  • 可以在主机清单中指定 palybook 使用的变量值。这些变量经应用到特定的主机或主机组。通常,最好在特殊目录中定义这些库存变量,而不要直接在清单文件中定义

    • 主机变量

      ; INI 格式
      [atlanta]
      host1 http_port=80 maxRequstsPerChild=8080
      host1 http_port=303 maxRequstsPerChild=9090
      
      # YAML 格式
      atlanta:
        hosts;
          host1:
            http_port: 80
            maxRequstsPerChild: 8080
         host2:
            http_port: 303
            maxRequstsPerChild: 9090
      

Ansible 配置文件

包括一个名为 ansible.cfgINI 格式文件、环境变量、命令行选项、剧本关键字和变量

  • Ansible 提供了 四个来源控制它的行为 。按照优先级从 最低(最容易覆盖)最高(覆盖所有其他) 的顺序

    • Configuration settings
    • Command-line options
    • Playbook keywords
    • Variables
  • 可以在配置文件中进行更改和使用更改,该配置文件将按照一下顺序进行搜索:

    • ANSIBLE_CONFIG (environment variable if set)
    • ansible.cfg (in the home directory)
    • ~/.ansible.cfg (in the home directory)
    • /etc/ansible/ansible.cfg
  • 配置文件是 INI 格式的一种变体。当注释开始一行时, hash号(#) 和分号(

    标签:主机,命令,Ansible,模块,清单,com,example
    From: https://www.cnblogs.com/Anzi-0524/p/16585836.html

相关文章

  • Dos基础命令
    打开CMD的方式开始+系统+命令提示符Win+R输入cmd打开控制台*在任意文件夹下面,按住shift键+鼠标右键,再次处打开命令行窗口资源管理器的地址栏前面加上cmd+路径......
  • 设计模式 16 命令模式
    参考源https://www.bilibili.com/video/BV1u3411P7Na?p=24&vd_source=299f4bc123b19e7d6f66fefd8f124a03命令模式(CommandPattern)属于行为型模式概述现在各大电子......
  • Docker 常用命令
    基本命令安装Centoscd/etc/yum.repos.dwgethttps://download.docker.com/linux/centos/docker-ce.repoyuminstalldocker-ce-y如果安装过程中报错:packagedock......
  • 【Linux】ps -ef|grep -v grep|awk '{print $2}' 命令详解
    前言在Linux中使用脚本命令时,经常见到ps-ef|grep-vgrep|awk'{print$2}'这一句命令前半部分的ps-ef|grep命令,相信经常接触Linux的人肯定明白,但是后半部分的两次gr......
  • find命令的7种用法
    find命令的7种用法,看完就没有不会用的Cloud研习社 Cloud研习社 2022-08-1007:31 发表于山东收录于合集#实战经验31个#Linux122个#云计算29个#计算机32个......
  • Nuget服务器包管理常用命令
    设置KeynugetsetApiKey[Your-API-Key]-Sourcehttps://www.nuget.org/api/v2/package/打包nugetpackAliang.Common.Helper.csproj-PropConfiguration=Re......
  • 第7章 函数——C++的编程模块
    第7章函数——C++的编程模块7.8编程练习题第1题#include<iostream>usingnamespacestd;//编写一个程序,不断要求用户输入两个数,直到其中的一个为0.//对于两......
  • Windows下搭建kafka并通过命令消费
    一、依赖环境准备1、检查JDK是否存在且和JVM版本一致,我这里系统是64位,JVM也是64位          2、如果出现以下报错则是JVM不一致   二......
  • 个人linux下开发常用命令
    以下为个人使用的命令:文件和目录操作命令ls全拼list,功能是列出目录的内容及其内容属性信息cd全拼changediretory,功能是从当前工作目录切换到指定工作目录cp全拼......
  • 2022.8.14 模块化、Webpack、Vue-element-admin
    06、模块化相当于形成包6.1、简介模块化产生的背景随着网站逐渐变成”互联网应用程序”,嵌入网页的Javascript代码越来越庞大,越来越复杂。Javascript模块化编程,已经成......