ansible安装及原理

ccielife ccielife     2023-04-12     575

关键词:

介绍两种安装方式yum 和编译

1)yum安装
yum install ansible -y
 
2)编译安装
 ...
 
ansible原理和架构
主要包含6个组件:
1)Ansible核心
2)Inventory主机清单
3)Modules模块
4)Playbook剧本
5)Plugins插件
6)连接插件
 
1.1)ansible提供了两种方式来执行任务。
第一,直接用ansible命令。
比如:ansible webserver -m command -a "uptime"
webserver表示主机组
-m 之后是命令模块
-a 之后是模块中的参数
 
第二,使用ansible-playbook命令,使用这个方式更多相当于第一种方法。
ansible-playbook webserver.yml
webserver.yml是一个定义好的Playbook,自动化运维,大部分靠它实现。
 
2.1)Inventory主机清单,就是被管理主机清单,在执行ansible任务时,必须指定被管理的主机清单。
默认在/etc/ansible/hosts文件中定义,也可以使用-i /path/hosts 来指定主机清单文件的位置。
 
3.1)Modules 模块:分为三类,核心模块、扩展模块、自定义模块。
 
4.1)Playbook剧本:可以将一个复杂的任务,非常清晰地表述出来。YAML格式编写。
 
5.1)Plugins插件:插件是ansible功能的补充,比如日志、邮件功能。
 
6.1)连接插件:默认使用SSH协议连接被管理服务器,提供4种连接方式open SSH,local(执行本地任务),paramiko(python的SSH连接库),zeromq(一个基于消息队列的多线程网络库)
 
ansible配置项说明
配置文件的默认路径 /etc/ansible/ansible.cfg
通过分块来定义各项参数,以[分块名称]表示,一共包含以下几块。
  • default:定义一些通用的配置参数
  • inventory = /etc/ansible/hosts    #定义主机清单路径
  • forks  = 5    #定义任务的并发数,默认5个,执行时通过-f 指定
  • sudo_user = root    #定义默认的sudo用户,默认为root
  • gathering = implicit    #允许获取facts的值,如果定义为explicit,将无法获取setup模块所能获取到的变量值
  • host_key_checking = False    #关闭第一次连接系统是检查keys的提示
  • action_plugins = /usr/share/ansible_plugins/action_plugins    #定义插件的路径
  • callback_plugins = /usr/share/ansible_plugins/callback_plugins    #定义插件的路径
  • connection_plugins = /usr/share/ansible_plugins/connection_plugins    #定义插件的路径
  • lookup_plugins = /usr/share/ansible_plugins/lookup_plugins    #定义插件的路径
  • vars_plugins = /usr/share/ansible_plugins/vars_plugins    #定义插件的路径
  • filter_plugins = /usr/share/ansible_plugins/filter_plugins    #定义插件的路径
  • fact_caching = memory    #定义fact的缓存方式,可以选memory和redis
 
  • privilege_escalation:定义一些提升权限的参数,一般保持默认即可。
  • paramiko_connection:定义python的paramiko模块相关的配置优化参数,默认即可。
  • ssh_connection:定义SSH配置参数。
        pipelining = False    #默认为false,定义为true时,ansible通过管道的方式,减少在远程被管理机器上执行任务模块过程的SSH连接数量,来提高性能,如果需要使用sudo切换用户的话,需要在被管理服务器/etc/sudoers中定义Disable requiretty
 
  • acceleerate:定义具体的端口、超时时间等参数,默认即可。
  • selinux:定义文件系统的安全上下文设置,正常情况下操作将复制现有的安全上下文或者使用用户默认,对于某些文件系统,需要文件依照该文件系统中的上下文权限来继承,默认的例外的文件系统是nfs,vboxsd,fuse,ramfs,一般默认配置即可。
 
Inventory定义格式
使用-i参数指定inventory(主机清单)文件的路径,默认在ansible中定义的inventory路径为/etc/ansible/hosts。
支持主机名、ip、主机分组、简单正则、变量参数、主机分组之间的包含关系。
[dbservers]    #定义了一个主机组,执行任务时可以指定某个主机组
db.example.com    #定义被管理主机名称,注意该主机需要能被dns解析为ip地址,比如内网地址的名称和ip,写入host,也是可以的。
192.168.1.100    #定义被管理服务器的ip地址。
 
[gameservers]
gs[1:5]    #使用通配符匹配主机,将包括gs1,gs2...gs5。5台主机
192.168.2.[101:105]    #定义主机ip地址时,也可以使用数字通配符
 
[dnsservers]
dns.sh[a:b].example.com    #支持字母匹配,得到两台主机dns.sha.example.com和dns.shb.example.com
 
[test01]
192.168.2.103 ansible_connection=ssh ansible_ssh_user=root ansible_ssh_pass=P@ssw0rd    #为特定的参数赋值,此处定义了连接类型,ssh用户名和密码。
192.168.2.104 vsftpd_port=2121    #自定义变量,在playbook中可以引用。
 
[test02]
192.168.2.105
192.168.2.106
[test02:vars]    #为一组主机定义相同的变量参数
ansible_connection=ssh
ansible_ssh_user=root
ansible_ssh_pass=P@ssw0rd
 
[testserver:children]    #定义主机组testserver其中包含test01,test02两个分组
test01
test02
 
#所有的主机都包含在all分组中,慎用ansible all -m modules
 
inventory定义中有常用的自带变量
ansible_ssh_port:    #定义连接主机的ssh端口
ansible_ssh_user:    #定义连接到主机的ssh用户
ansible_ssh_pass:    #定义连接到主机的ssh密码
ansible_sudo_pass:    #定义sudo的密码
ansible_connection:    #定义ansible的连接类型,可以是local、ssh或paramiko
ansible_ssh_private_key_file:    #定义私钥路径

 

ansible自动化运维工具ansible的安装及使用(代码片段)

常用自动化运维工具:①CFengine②Chef③Puppet③SaltStack③Ansible-基于python开发,分布式,无需客户端,轻量级。配置语言采用YAML.Ansible基本架构Ansible工作原理Ansible的安装及使用①CentOSLinuxrelease7.3.1611(Core)安装:yuminstall-yansible[root@iz... 查看详情

ansible概述及各模块应用(代码片段)

ansible概述及各模块应用ansible概述ansible特点ansible工作原理==ansible工具优点==ansible环境部署ansible命令模块command模块cron模块user模块group模块copy模块file模块ping模块service模块模块shell模块script模块yum模块setup模块ansible概... 查看详情

ansible-入门及安装

Ⅰ.Ansible简介ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。仅需在管理工作站上安装ansible程序配... 查看详情

ansible的安装配置及常用模块介绍(代码片段)

Ansible的安装、配置及常用模块介绍 ansible安装方式1、ansible安装常用两种方式,yum安装和pip程序安装这里提供二种安装方式,任选一种即可:1、使用yum安装yuminstallepel-release-yyuminstallansible–y2、使用pip(python的包管理模块)安... 查看详情

ansible安装及使用

一、ansible介绍1、ansible简介    官方的title是“AnsibleisSimpleITAutomation”——简单的自动化IT工具。  Ansible跟其他IT自动化技术的区别在于其关注点并非配置管理、应用部署或IT流程工作流,而是提供一个统一的... 查看详情

ansible基本说明及安装

一.ansible说明 ansible是一款自动化工具,可以完成配置系统、软件发布、高级任务的编排、编排更高级的任务,比如连续部署或零停机时间滚动更新。二.anisble安装 2.1这里希望通过yum方式安装,需要安装EPEL 下载地址:&n... 查看详情

ansible安装及使用

一、ansible介绍1.ansibleansible是新出现的自动化运维工具,基于Python研发。糅合了众多老牌运维工具的优点实现了批量操作系统配置、批量程序的部署、批量运行命令等功能。仅需在管理工作站上安装ansible程序配置被管控主机的IP... 查看详情

ansible安装及常用模块(代码片段)

配置文件:/etc/ansible/ansible.cfg主机列表:/etc/ansible/hosts 安装anslibe wget-O/etc/yum.repos.d/epel.repohttp://mirrors.aliyun.com/repo/epel-6.repoyum-yinstallansible配置文件先备份修改配置文件hosts添加主机组(分组) 如 查看详情

ansible安装及运行中相关error

...过程需要在命令中加上-vvvv,会有蓝色字体表示执行过程ansible较为全面的讨论区:https://github.com/ansible/ansible/issuesQ1:pip安装ansible附加包时编译错误$ sudo pip install paramiko PyYAML Jinja2&n 查看详情

运维自动化|系统运维|ansible的安装及配置使用

安装ansible#yum-yinstallepel-release#yumlistall*ansible*#yuminfoansible#yum-yinstallansibleansible配置文件/etc/ansible/ansible.cfg主配置文件/etc/ansible/hostsInventory/usr/bin/ansible-doc帮助文件/usr/bin/ansible-pla 查看详情

超详细ansible安装及模块详解

简介:ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的... 查看详情

ansible的安装及常用模块

简介Ansible基于Python语言实现,由Paramiko和PyYAML两个关键模块构建。Ansible特点:1、部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作。2、默认使用SSH(SecureShell)协议对设备进行管理。3、主从集中化管理。4、配置... 查看详情

ansible基础理论及安装

Ansible介绍及安装一.ansible自动化运维完成的功能在运维工程中,我们部署一台使其能够在生产环境中使用大致经过一下步骤:安装主机。部署中间件,运行环境等。安装我们实际生产的应用程序。这一系列步骤如果人工一步步去... 查看详情

ansible安装及基础模块介绍(代码片段)

ansible介绍Ansible基于Python开发,集合了众多优秀运维工具的优点,实现了批量运行命令部署程序、配置系统等功能。默认通过SSH协议进行远程命令执行或下发配置,无需部署任何客户端代理软件,从而使得自动化环境部署变得更加简单... 查看详情

ansible安装及使用

软件环境:rhel7.3因为低版本有软件依赖太多要解决server17172.25.135.17控制端server18172.25.135.18web管理server19172.25.135.19mysql管理[[email protected]~]#yuminstallepel-release-7-11.noarch.rpm安装epel软件源[[email protected 查看详情

ansible使用一(ansible的安装及ansible常用模块的使用)(代码片段)

1、ansible概述        Ansible是一款基于Python开发的自动化运维工具,它不需要安装客户端,使用SSH进行通信,同时可支持系统账号认证或秘钥认证,也支持windows客户端。Ansible主要组成部分:  ... 查看详情

002.ansible部署及配置介绍(代码片段)

一Ansible的安装部署1.1PIP方式安装PIP略,可参考《001.Pip简介及使用》。提示:建议将PIP升级到最新:pipinstall--upgradepip。安装依赖1[[email protected]~]#yum-yinstallgccglibc-develzlib-develrpm-buildopenssl-devel安装Ansible1[[email prot 查看详情

ansible自动化运维详解ansible的安装部署参数使用清单管理配置文件参数及用户级ansible操作环境构建(代码片段)

文章目录ansible自动化运维详解(一)ansible的安装部署、参数使用、清单管理、配置文件参数及用户级ansible操作环境构建一、ansible的安装部署1.1、ansible简介1.2、实验环境1.3、安装部署ansible二、ansible的基本信息和参数使... 查看详情