自动化运维工具之ansible基础入门

自动化运维工具常用的有 ansible  saltstack  puppet等 ,前两者都是基于python开发,puppet基于ruby开发,今天我们简单介绍下ansible基础

一、基础知识:

1. 简介

ansible基于python开发,集合了众多运维工具的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的

(1) host inventory: 指定操作的主机,是一个配置文件里面定义监控的主机
        (2) 各种模块核心模块、command模块、自定义模块;
        (3) 借助于插件完成记录日志邮件等功能;
        (4) playbook: 剧本执行多个任务时,非必须可以让节点一次性运行多个任务。

2、特性:

(1) no agents: 不需要在被管理主机上安装任务agent
        (2) no server: 无服务器端,使用时,直接运行命令即可
        (3) modules in any languages: 基于模块工作,可使用任意语言开发模块
        (4) yaml not code:使用yaml语言定制剧本playbook
        (5) ssh by default:基于SSH工作

3、优点:

(1) 轻量级,无需在客户端安装agent,更新时,只需要在操作机上进行一次更新即可;
        (2) 批量任务可以写成脚本,而且不用分发到远程就可以执行
        (3) 使用python编写,维护简单

本次实验环境如下

1、建立免秘钥登陆
[[email protected] ansible]# ssh-keygen -t rsa  一路回车即可

[[email protected] ansible]# ssh-copy-id -i /root/.ssh/id_rsa.pub 172.16.80.117
[[email protected] ansible]# ssh-copy-id -i /root/.ssh/id_rsa.pub 172.16.80.118

测试免秘钥效果

2、安装ansible 
[[email protected] ~]# yum install ansible -y

3、修改文件
[[email protected] ansible]# vim /etc/ansible/hosts  定义主机组及主机列表[webservers]172.16.80.117172.16.80.118
4、常用模块介绍
[[email protected] ansible]# ansible-doc -l
a10_server                         Manage A10 Networks AX/SoftAX/Thunder/vThunder devices                                                                          
a10_service_group                  Manage A10 Networks devices‘ service groups                                                                                     
a10_virtual_server                 Manage A10 Networks devices‘ virtual servers                                                                                    
acl                                Sets and retrieves file ACL information.                                                                                        
add_host                           add a host (and alternatively a group) to the ansible-playbook in-memory inventory                                              
airbrake_deployment                Notify airbrake about app deployments                                                                                           
alternatives                       Manages alternative programs for common commands                                                                                
apache2_module                     enables/disables a module of the Apache2 webserver                                                                              
apk                                Manages apk packages                                                                                                            
apt                                Manages apt-packages                                                                                                            
apt_key                            Add or remove an apt key                                                                                                        
apt_repository                     Add and remove APT repositories                                                                                                 
apt_rpm                            apt_rpm package manager                                                                                                         
assemble                           Assembles a configuration file from fragments                                                                                   
assert                             Fail with custom message                                                                                                        
async_status                       Obtain status of asynchronous task                                                                                              
at                                 Schedule the execution of a command or script file via the at command.                                                          
authorized_key                     Adds or removes an SSH authorized key                                                                                           
azure                              create or terminate a virtual machine in azure                                                                                  
azure_rm_deployment                Create or destroy Azure Resource Manager template deployments                                                                   
azure_rm_networkinterface          Manage Azure network interfaces.                                                                                                
azure_rm_networkinterface_facts    Get network interface facts.                                                                                                    
azure_rm_publicipaddress           Manage Azure Public IP Addresses.                                                                                               
azure_rm_publicipaddress_facts     Get public IP facts.                                                                                                            
azure_rm_resourcegroup             Manage Azure resource groups.                                                                                                   
azure_rm_resourcegroup_facts       Get resource group facts.                                                                                                       
azure_rm_securitygroup             Manage Azure network security groups.
模块帮助命令

[[email protected] ansible]# ansible-doc -s ping- name: Try to connect to host, verify a usable python and return `pong‘ on success.  action: ping
4.1ping模块  ansible webservers -m ping

4.2 shell模块(需要执行客户机上的脚本可以用该模块,脚本在被控端)

[[email protected] ansible]# ansible webservers -m shell -a ‘/tmp/test.sh‘

说明:webservers是主机组的名称,-m  后面接的是模块名称,-a后是模块的参数

4.3script模块 (脚本在主控端)
[[email protected] ansible]# ansible webservers -m script -a ‘/root/run.sh‘

4.4 command模块
[[email protected] ansible]# ansible webservers -m command -a ‘uptime‘

4.5 yum模块
[[email protected] ~]# ansible webservers -m command -a ‘yum install httpd -y‘

4.6 service模块 
[[email protected] ~]# ansible webservers -m service -a ‘name=httpd state=started‘
对服务的操作有 started  stopped restarted reloaded四个参数

4.7 copy模块
[[email protected] ~]# ansible webservers  -m copy -a ‘dest=/tmp src=/root/run.sh‘

4.8 cron模块
[[email protected] ~]# ansible all -m cron -a ‘name="Cron job" minute=*/5 hour=* day=* month=* weekday=* job="/usr/bin/ntpdate pool.ntp.org"‘

4.9 file模块
[[email protected] ~]# ansible all -m file -a "dest=/tmp/test.sh mode=777 owner=martin group=martin"

时间: 2024-10-12 02:42:09

自动化运维工具之ansible基础入门的相关文章

自动化运维工具之Ansible(一)

1.简介: ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric"虽然基本都没有用过")的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能.ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.主要包括: 连接插件connection plugins:负责和被监控端实现通信: host inventor

自动化运维工具之ansible

ansible ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能. ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架. 主要包括: (1).连接插件connection plugins:负责和被监控端实现通信: (2).host inventory:指定

自动化运维工具之ansible的简单应用

ansible: ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能.ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,例如shell,copy,ping等,ansible只是提供一种框架.ansible的主要特性: 模块化:调用特定的模块,完成特定任务 基于Python语言实现,由Pa

自动化运维工具之Ansible(二)

一.Ansible基础安装 通过Yum安装rpm使用与epel6,7等.但是必须安装Python2.4或者更高的版本的Python. 添加源: wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo yum install ansible -y 二.Ansible配置 1.ssh面密钥登陆设置 ##生成公钥/私钥 ssh-keygen -t rsa ssh-copy-id -i ~/.ssh/id

自动化运维工具puppet的基础使用

一.puppet的简介 puppet是一种开源的.新一代的集中化的配置管理工具.可管理的平台有windows,Linux,Unix等.有自己的配置语言(资源申报语言),可管理文件.软件包.系统服务.用户等.这些统称为puppet的资源.puppet是采用ruby语言研发的. 工作流程 如下图: 工作模型: 单机模型:实现定义多个manifests --> complier --> catalog --> apply master/agent模型:集中式管理 架构: 工作原理: puppe

自动化运维工具-Ansible基础

目录 自动化运维工具-Ansible基础 自动化运维的含义 Ansible 基础及安装 Ansible的架构 Ansible的执行流程 ansible配置文件 ansible Inventory(主机清单文件) Ansible ad-hoc ansible常用模块 实战 自动化运维工具-Ansible基础 自动化运维的含义 1.手动运维时代 2.自动化运维时代 3.自动化运维工具给运维带来的好处 Ansible 基础及安装 1.什么是Ansible Ansible是一个自动化统一配置管理工具 2

自动化运维工具ansible的基本应用

在很多场景中我们都需要在多个主机上执行相同的命令或者是做相同的配置工作,此时,为了简化操作,我们可以借助一些自动化的工具来完成我们的需求,这种工具我们称之为自动化运维工具.ansible就是其中之一,下面我们就来用ansible来实现一些简单操作. 下面是ansible可以实现很多工具的功能,框架图如下所示:ansible不能实现操作系统的安装 ansible作者就是早期puppet和func的维护者之一,因为ansible充分吸取了puppet和func的优势,又力图避免他们的劣势. OS P

3.1 自动化运维工具ansible

自动化运维工具ansible 运维自动化发展历程及技术应用 Iaas 基础设施即服务Pass 平台服务SaaS 软件即服务 云计算工程师核心职能 Linux运维工程师职能划分 自动化动维应用场景 文件传输命令执行 应用部署配置管理任务流编排 企业实际应用场景分析 1 Dev开发环境 使用者:程序员功能:程序员开发软件,测试BUG的环境管理者:程序员123 2 测试环境 使用者:QA测试工程师功能:测试经过Dev环境测试通过的软件的功能管理者:运维说明:测试环境往往有多套,测试环境满足测试功能即可

自动化运维工具ansible基础应用

ansible是一款自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置,批量程序部署,批量运行命令等功能. ansible是基于模块工作的,本事没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.主要包括: 1.连接插件connection plugins:负责和被监控端进行通信 2.host inventory:指定操作的主机,是一个配置文件里卖弄