ansible hosts配置
- 编辑/etc/ansible/hosts
- 添加本机的public SSH key到目标机器的authorized_keys #ssh-copy-id
- 添加本机的私钥到Ansible
- 运行ansible all -m ping 测试是否添加成功
[all:vars] # *:vars 块变量,all:vars 全局变量
ansible_ssh_private_key_file=/root/.ssh/id_rsa
ansible_ssh_port=22
ansible_ssh_user=root [t3:vars] # t3 使用python解释器是python2
ansible_python_interpreter=/usr/bin/python2
nginx_port=80 # 私有变量在playbooks中使用 [t3]
192.168.11.162 [k8s:children] # 使用children 定义主机组之间继承关系
master
node [master]
k8s-master01 ansible_ssh_host=192.168.11.101
k8s-master01 ansible_ssh_host=192.168.11.102 [node]
k8s-node01 ansible_ssh_host=192.168.11.105
k8s-node01 ansible_ssh_host=192.168.11.106
Inventory 分文件管理(文件名即是组名)
#!/usr/bin/env python
# _*_coding:utf-8_*_ """
@Time : 2019/11/8 15:54
@Author: Simon
@File: get_ansible_hosts.py
@Software: PyCharm
""" try:
from ansible.parsing.dataloader import DataLoader
from ansible.inventory.manager import InventoryManager
from ansible.vars.manager import VariableManager
except ImportError as e:
print("请安装ansible模块, 安装方式pip install ansible") def main(sources):
"""
# 获取ansible hosts 列表
:param sources:
:return:
"""
hosts_list = []
loader = DataLoader()
inventory = InventoryManager(loader=loader, sources=sources)
variable_manager = VariableManager(loader=loader, inventory=inventory)
get_groups_dict = inventory.get_groups_dict()
host_list = inventory.hosts
for _host in host_list:
host = inventory.get_host(hostname=_host)
extra_vars = variable_manager.get_vars(host=host)
extra_vars_group = extra_vars.get("groups")
ans_port = extra_vars.get("ansible_ssh_port") if extra_vars.get("ansible_ssh_port") else extra_vars.get(
"ansible_port")
ans_host = extra_vars.get("ansible_ssh_host") if extra_vars.get("ansible_ssh_host") else extra_vars.get(
"ansible_host")
hosts_list.append({
"hostname": extra_vars.get("inventory_hostname"),
"host": ans_host,
"port": ans_port if ans_port else 22,
"group_name": extra_vars.get("group_names")
}) return hosts_list if __name__ == "__main__":
sources = ["/etc/ansible/hosts"]
print(main(sources))
Python 获取host列表
ansible hosts配置的更多相关文章
- Ansible安装配置及使用
一.Ansible特点 1.不需要安装客户端,通过sshd通信 2.基于模块工作,模块可以由任何序言开发 3.不仅支持命令行使用模块,也支持编写yaml格式的playbook 4.支持sudo 5.有 ...
- Ansible(二) - 配置及命令简介
Ⅰ. Ansible Inventory Hosts文件配置 # mkdir /etc/ansible # touch /etc/ansible/hosts # cat /etc/hosts 127. ...
- ansible hosts文件编写,简单使用测试(普通用户、sudo用户、root用户登录权限测试)
一.配置文件修改: 1.备份原配置文件: cp /etc/ansible/hosts /etc/ansible/hosts.bak 2.修改hosts配置文件: cat <<EOF> ...
- 1、Ansible安装配置
ansible介绍: Ansible是一款基于Python开发的自动化运维工具,主要是实现批量系统配置.批量程序部署.批量运行命令.批量执行任务等等诸多功能.Ansible是一款灵活的开源工具,能够很 ...
- ansible常用配置
1.什么是Ansible 部署参考连接:http://www.ansible.com.cn/ ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfeng ...
- Ansible基础配置与常用模块使用
环境介绍: Ansible服务端IP:192.168.2.215 Ansible客户端IP:192.168.2.216.192.168.2.218.192.168.2.113 一.创建Ansibl ...
- ansible安装配置及最佳实践roles
ansible是什么? ansible是一款轻量级配置管理工具,用于远程批量部署.安装.配置.类似的还有puppet.saltstack,各有所长,任君自选. 官方文档:http://docs.ans ...
- 使用Ansible自动配置JDK环境
1.首先安装好Ansible环境,具体步骤请见Ansible安装 2.先创建hosts文件(为后面编写脚本安装JDK做铺垫) [root@localhost /]# vi hosts [jdktest ...
- Ansible自动化配置详解
第1章 Ansible基本概述 1.1 ansible是一个配置管理系统configuration management system, 你只需要可以使用ssh访问你的服务器或设备就行. 1.安装软件 ...
随机推荐
- 图解kubernetes调度器预选设计实现学习
Scheduler中在进行node选举的时候会首先进行一轮预选流程,即从当前集群中选择一批node节点,本文主要分析k8s在预选流程上一些优秀的筛选设计思想,欢迎大佬们指正 1. 基础设计 1.1 预 ...
- margin和 padding 以及 float :left和float :right的介绍
1.margin和padding的介绍 margin是外边距,padding是内边距,用CSS时首先要做的就是把所有标签的margin和padding清空.这样更容易控制布局和兼容浏览器. p li等 ...
- 关于爬虫的日常复习(2)—— urllib库
- restframewor 版本(version)
1.路由 a.一级路由 from django.contrib import admin from django.urls import path, include from api import u ...
- 【杂项】各类文件头结合winhex使用-转载
———常用文件头——— JPEG (jpg),文件头:FFD8FFE1 PNG (png),文件头:89504E47 (0D0A1A0A) GIF (gif),文件头:47494638 ZIP Arc ...
- 超越队西柚考勤系统——beta冲刺3
一.成员列表 姓名 学号 蔡玉蓝(组长) 201731024205 郑雪 201731024207 何玉姣 201731024209 王春兰 201731024211 二.SCRUM部分 (1)各成员 ...
- CSS-18-媒体查询
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Ganglia安装及配置
Ganglia安装及配置root用户下yum安装所依赖的环境(实际生产环境都已安装)yum -y install apr-develapr-util check-devel cairo-devel p ...
- ios---CoreLocation框架实现定位功能
CoreLocation框架实现定位功能(iOS8.0之后) // // ViewController.m // 定位 // // Created by admin on 2017/9/20. // ...
- ROC 曲线
Receiver Operating Characteristic (接收机操作特性曲线) 是以虚警率为横轴,以击中率为纵轴,长成如下模样: 所谓击中率(hit)是指将正样本判断为正样本的比例,而虚警 ...