ansible介绍

1. 介绍

ansible是一个自动化运维工具,基于Python研发。糅合了众多老牌运维工具的优点实现了批量操作系统配置、批量程序的部署、批量运行命令等功能。仅需在管理工作站上安装ansible程序配置被管控主机的IP信息,被管控的主机无需安装客户端。ansible应用程序存在于epel(第三方社区)源,依赖于很多python组件。

1.1 特性

  1. 模块化设计;

  2. 基于python,有paramikopyyamljinja2这3个关键模块实现

  3. 部署方便,agentless工具

  4. 主从模式工作;

  5. 支持自定义模块

  6. 支持playbook剧本,所有任务按照设置顺序依次执行;

1.2 架构

  • ansible core: ansible自身核心模块;

  • host inventory:主机库,定义可管控的主机列表;

  • connection plugins:连接插件,一般默认ssh协议;

  • modules:core modules为自带,custom modules为自定义模块

  • playbook:剧本模块

1.3 配置文件

主配置文件/etc/ansible/ansible.cfg

主机列表:/etc/ansible/hosts

2. 安装

系统centos6.5

  1. 下载epel源

rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

  1. yum install ansible即可

3. 配置

3.1 添加host

即主机清单(host invenory), 即通知ansible需要管理哪些主机。也可通过-i选项进行单独指定。默认为/etc/ansible/hosts,添加格式:


[group]

hostanme

ip address

支持主机名或IP地址格式,按照组的形式进行添加,同一个IP可同属于多个组

也可通过命令行管理,Ad-hoc command

3.2 ansible命令格式

语法格式:

ansible <host-pattern> [-f forks] [-m module_name] [-a args]

-m: 要执行的模块,默认为==command==

-a:模块参数

-u:ssh连接用户名,默认为==root==,也可在ansible.cfg中配置

-k:体术输入ssh登陆密码

-s:以sudo方式运行

-U:sudo到哪个用户,默认为==root==

-K:提示输入sudo密码,当不是NOPASSWD模式时使用

-C:测试,并不会真运行

-c:连接类型,默认为==smart模式==

-f:fork出多少个进程并发,默认==5个==

-i: hosts文件路径,默认==/etc/ansible/hosts==

-I:指定pattern,对<host_pattern>中已匹配的主机再过滤一次;

--list-hosts: 只打印出哪些主机会执行这个playbook文件,不会实际执行;

-M:要执行的模块路径,默认为==/usr/shar/ansible==

-o: 压缩输出

--private-key:私钥路径

-T:ssh连接超时时间,默认==10s==

-t:日志输出目录,日志文件名已主机名命名

-v:version

3.3 个性配置

修改/etc/ansible/ansible.cfg`文件

  1. host_key_checking = False关闭该注释,用于解决首次连接服务器时提示需验证。

  2. 常用文件目录:

  • inventory:/etc/ansible/hosts

  • library: /usr/share/my_modules/

  • remote_tmp: $HOME/.ansible/tmp

  • local_tmp: $/HOME/.ansible/tmp

  • 配置文件: /etc/ansible/ansible.cfg

3.4 ansible模块

模块就是ansible的命令,模块详细用法可用ansible-doc <module_name>查看

或官网查看:

https://docs.ansible.com/ansible/latest/modules/list_of_all_modules.html

命令行中用模块

可用-m <module_name>来调用模块,-a para添加模块的参数

如:

ansible all -m yum -a "name=httpd state=present"

playbook中使用模块

tasks每个action都是对模块的一次调用,action的写法:

module_name: module_para

常用模块

  • ping

  • debug:用于打印消息

  • copy:本地复制到远端

  • template:从本地复制到远端,并进行变量替换

  • file:设置文件属性

  • user:用户账户

  • yum:yum包管理

  • service:管理服务

  • firewalld:管理防火墙

  • shell:节点上执行shell命令,支持$HOME < > | ; &

  • command:远程节点上执行命令,不支持$HOME < > | ; &

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 运维核心工作: 操作系统安装(物理机、虚拟机)--> 应用程序包部署(安装、配置、服务启动 )--> 批量操作 -...
    Net夜风阅读 1,778评论 0 4
  • 一、简介 在Linux自动化运维中,常见的自动化运维工具可分为需要安装终端的puppet、func和不需要安装终端...
    小尛酒窝阅读 3,062评论 0 6
  • 一、初识ansible 1、ansible是新出现的自动化运维工具 ansible是一个配置管理和应用部署工具,基...
    清风徐来_简阅读 2,602评论 0 15
  • 简介 架构 原理 组成 ANSIBLE PLAYBOOKS:任务剧本(任务集),编排定义Ansible任务集的配置...
    毛利卷卷发阅读 1,202评论 0 2
  • 1)安装2)常用模块3)inventory4)playbook(role\tag\template)5) yaml...
    秦记阅读 4,621评论 2 5

友情链接更多精彩内容