Ansible详解(一)基础安装和配置

ansible 是一款轻量级自动化运维工具,由的 Python 语言开发,结合了多种自动化运维工具的特性,实现了批量系统配置,批量程序部署,批量命令执行等功能; ansible 是基于模块化实现批量操作的。

一、安装

控制机器

pip install ansible==2.5.5

yum install sshpass

受控机器

yum install libselinux-python

yum install python2-simplejson

version<python2.4

测试

echo 127.0.0.1>host

ansible all -m ping -i hosts --ask -pass

二、管理协议

Ansible 通过 ssh 协议对受控机器管理,可使用口令和秘钥对两种方式进行权限验证,默认使用密钥对方式。

秘钥对

1.在控制机器生成秘钥对

ssh -keygen -t rsa -b 4096 -C*kk

2.添加公钥到受控机器

  • 拷贝添加:ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
  • 本地添加:cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys

3.测试

ssh [email protected]

ansible all -m ping -i hosts

三、配置

inventory

1.ansible 管理主机信息的配置

2.配置文件格式

  • ini
  • yaml

3.配置文件路径

  • 通过命令行参数制定:ansible -i
  • 通过环境变量制定:export ANSIBLE_INVENTORY
  • 默认配置路径:/ect/ansible/hosts

4.配置内容

4.1基本配置

host_v1.ini

127.0.0.1
ip

host_v1.yaml

---
all:
hosts:
 127.0.0.1:
 ip:

测试

ansible all -m ping -ihosts -i host_v1.ini

ansible all -m ping -i hosts -i host_v1.yaml

ansible 127.0.0.1-m ping -ihosts -i host_v1.ini

ansible ip -m ping -ihosts -i host_v1.yaml

主机参数配置

1.参数项

alias 主机别名

ansible_connection

默认 smart

可选值:local、smart、ssh、paramiko

ansilbe_host 登录主机地址

ansilbe_port 默认 22

ansilbe_user 登录主机用户名

ansible_become

是否启用 sudo 权限

默认: false

可选值 :true、false

ansible_become_pass

登录主机用户密码,用于切换 sudo 权限

建议使用 ansible 命令行参数ask_become_pass 替换

ansible_become_user

切换 sudo 后 执行进程中使用的用户名

ansible_ssh_pass

登录主机使用密码

建议使用 ansible 命令行参数ask_pass 替换

ansible_ssh_private_key_file

登录主机使用私钥

ansible_python_interpreter

受控机器执行 Python 解释器

默认 /bin/env/python

hosts_v2.ini

hosts_v2.yaml

组&组变量

  • 可对主机进行分组并命名,批量对主机进行操作
  • 一个主机可属于多个组

host_v3.ini

host_v3.yaml

测试

ansible ip -m ping -ihosts -i host_v3.yaml

ansible webserver -m command -a ‘sleep 30‘ -ihost_v3.ini --become --ask-become-pass

组中组

host_v4.ini

host_v4.yaml

测试

ansible test --list hosts -i host_v4.yaml

ansible test -m ping -ihosts -i host_v4.yaml

配置分割

  • 在 hosts 文件中值配置主机分组信息,主机配置与组配置分别存储在 host_vars 和 group_vars 目录
  • 主机配置存储在 host_vars 目录中,文件名使用别名.yaml
  • 组配置存储在 group_vars 目录中,文件名使用组名.yaml

host_v5.ini

localhost

[webserver]
mytest

[test:children]
webserver

host_v5.yaml

---
all:
hosts:
 localhost:
children:
  webserver:
    hosts:
     mytestm:
  test:
   children:
    webserver:

host_vars

host_vars/localhost.yaml

---
ansible_connect: local

host_vars/mytest.yaml

---
ansible_host: ip
ansible_user:silence

group_vars

group_vars/webserver.yaml

---
ansible_connect:smart
ansible_port:22
ansible_become_user: root
ansible_python_interpreter:"/bin/env python2.6"

测试

ansible test -m ping -i host_v5.yaml

ansible test -m setup -i host_v5.yaml

ansible test -m command -a ‘sleep 30‘ -ihost_v5.ini --become --ask-become-pass

动态 inventory

文件 inventory.py脚本内容

初始化权限

xhmod +x inventory.py

测试

ansible all --list -hosts -i inventory.py

ansible all -m ping -i inventory.py

ansible.cfg

1.配置文件路径

  • export ANSIBLE_CONFIG=~/ansible.cfg
  • ansible.cfg
  • ~/.ansible.cfg
  • /etc/ansible/ansible.cfg

2.默认配置

3.配置项

host_key_checking

  • 是否检查控制密钥存在于 know_hosts 列表
  • 默认值 :true
  • 可选值:true、false

未完待续......

作者:KK

链接:http://t.cn/RrAjAte

51Reboot 第19期Python实战班、第8期自动化运维班正在招生中

详情咨询QQ Ada:279312229

原文地址:https://www.cnblogs.com/reboot51/p/9215141.html

时间: 2024-10-05 05:09:51

Ansible详解(一)基础安装和配置的相关文章

详解 Windows 下 Eclipse CDT 配置 C/C++ 编译环境

其实 windows 下,C.C++ IDE 也不少,但许多IDE的 UI 和用户体验基本都停留在上个世纪,除了 eclipse CDT 和 visual studio,但后者现在是个巨无霸,安装文件都 3 个多G,而且这货安装容易删除难,但 eclipse CDT 就不一样了,熟悉 java eclipse 的同学能快速适应~ 1.Eclipse及CDT的安装 到Eclipse的官方网站http://www.eclipse.org上下载Eclipse. 离线安装CDT.CDT的全称是C/C++

自动化运维工具——ansible详解案例分享

自动化运维工具--ansible详解案例分享(一)目录ansible 简介ansible 是什么?ansible 特点ansible 架构图ansible 任务执行ansible 任务执行模式ansible 执行流程ansible 命令执行过程ansible 配置详解ansible 安装方式使用 pip(python的包管理模块)安装使用 yum 安装ansible 程序结构ansible配置文件查找顺序ansible配置文件ansuble主机清单ansible 常用命令ansible 命令集a

yum与rpm的详解 --用来安装软件

                   yum与rpm的详解                           --用来安装软件 关键字:本地yum  第三方yum  yum参数 yum软件控制 rpm参数  永久挂载   软件的依赖性 第一部分:配置本地yum源      1.yum安装http服务,并共享给其他主机可以访问 如果在服务器不在的情况下或是无法从网上获取第三方软件时,此时,可以利用自己的镜像进行安装,需要一个与本机匹配的安装镜像,rhel-server-7.0-x86_64-dv

jQuery Mobile的默认配置项详解,jQuery Mobile的中文配置api,jQuery Mobile的配置说明,配置大全

学习jQuery Mobile也有一段时间了,越来越上手了,也越来越喜欢他了.我根本就没有理由拒绝他的好.这里我有分享一下我对它的配置项的使用说明一下. 看代码解释: $(document).live("pageinit",function(event){ $.mobile.loadingMessage = "正在加载数据,请稍候......"; $.mobile.pageLoadErrorMessage="很抱歉,系统好像再打小瞌睡......"

Tomcat 7.0 64位免安装解压版 安装及配置

Tomcat 7.0 win7 64位免安装解压版 安装及配置 Tomcat 推荐官方下载,地址如下 http://tomcat.apache.org/download-70.cgi 或者可在我的CSDN论坛下载,地址为: http://download.csdn.net/detail/shangguanyunlan/9273785 我下载的是apache-tomcat-7.0.65 最新的已经到8了,自己选择合适的版本即可. 下载解压到任意盘符,自己决定,我是下载到D盘的. 环境变量配置:Ja

Kafka详解之二、如何配置Kafka集群

Kafka集群配置比较简单,为了更好的让大家理解,在这里要分别介绍下面三种配置 单节点:一个broker的集群 单节点:多个broker的集群 多节点:多broker集群 一.单节点单broker实例的配置 1.首先启动zookeeper服务 Kafka本身提供了启动zookeeper的脚本(在kafka/bin/目录下)和zookeeper配置文件(在kafka/config/目录下),首先进入Kafka的主目录(可通过 whereis kafka命令查找到): [[email protect

SharedPreferences详解(一)——基础知识

我们在开发软件的时候,常需要向用户提供软件参数设置功能,例如我们常用的微信,用户可以设置是否允许陌生人添加自己为好友.对于软件配置参数的保存,如果是在window下通常我们会采用ini文件进行保存.如果是J2EE下面,我们会采用properties属性文件或者xml进行保存.在我们的Android应用中又适合采用什么方式保存软件配置参数呢?Android平台给我们提供了一个SharedPreferences类,它是一个轻量级应用程序内部轻量级的存储方案,特别适合用于保存软件配置参数,比如bool

(转)web.config详解之在文件中配置网站默认页面

在<configuration></configuration>中添加下面的配置 <system.webServer>        <defaultDocument>            <files>                <clear />                <add value="index.aspx" />                <add value=&qu

详解Springboot中自定义SpringMVC配置

详解Springboot中自定义SpringMVC配置 WebMvcConfigurer接口 ? 这个接口可以自定义拦截器,例如跨域设置.类型转化器等等.可以说此接口为开发者提前想到了很多拦截层面的需求,方便开发者自由选择使用.由于Spring5.0废弃了WebMvcConfigurerAdapter,所以WebMvcConfigurer继承了WebMvcConfigurerAdapter大部分内容. WebMvcConfigurer接口中的方法 举例1:configurePathMatch配置

JAVAWEB开发之Maven的入门详解——Maven的安装以及项目的结构和Maven的使用以及私服的搭建与配置

什么是Maven? 翻译为专家,内行.Maven是跨平台的项目管理工具.主要服务于基于Java平台的项目构建,项目管理和项目信息管理.那么怎么样才算是理想的项目构建呢?理想的项目构建就是必须具备高度自动化,跨平台,可重用的组件,标准化这些特性. 什么是依赖?为什么要进行依赖管理? - 所谓的依赖就是自动下载.进行依赖管理主要是为了统一的对这些依赖进行管理. 都有哪些项目信息? -项目名称描述,开发者信息,开发人员信息,项目的版本号等等. 什么项目构建? - 所谓的项目构建就是对项目进行清理.编译