ansible简单应用

ansible基于Python开发,集合了众多运维工具的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能,通过ssh实现配置管理、应用部署、任务执行等功能,因此,需要事先配置ansible端能基于密钥认证的方式联系各被管理节点。

命令格式:ansible <host-pattern> [-m module_name] [-a args] [options]

host-pattern     # 目标主机的地址,一般是配置文件中的组名

-m module       # 指定应用的模块

-a  args             # 指定模块的参数

-f                      #一批并行发出多少请求

安装:

[[email protected] ~]# yum install ansible

配置文件:

[[email protected] ansible]# vim /etc/ansible/hosts 
[frontend]
[email protected]  ansible_ssh_host=marvin.com ansible_ssh_port=6789
[email protected]  ansible_ssh_host=sherry.com ansible_ssh_port=6789

test ping:

[[email protected] ansible]# ansible frontend -m ping
[email protected] | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}
[email protected] | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

注意:基于ssh认证模式的ansible只识别authorized_keys这里的公钥  所以如果想要对本机操作 把自己的公钥写到authorized_keys中

列出模块:ansible-doc -l

查看模块:ansible-doc  -s  moudle

以下是几个简单的命令实现:

copy:如果是目录一定要绝对路径,才能递归复制

[[email protected] ansible]# ansible frontend -m copy -a ‘src=/etc/hosts dest=/etc/hosts‘
[[email protected] ansible]# ansible frontend -m command -a ‘cat /etc/hosts‘
[email protected] | SUCCESS | rc=0 >>
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.220 marvin marvin.com
192.168.1.221 sherry sherry.com

[email protected] | SUCCESS | rc=0 >>
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.220 marvin marvin.com
192.168.1.221 sherry sherry.com

crontab edit update time:

[[email protected] ansible]# ansible others -m cron -a ‘name="update time" minute=*/3 hour=* month=* weekday=* job="/usr/sbin/ntpdate marvin &> /dev/null"‘
[[email protected] ansible]# ansible others -m command -a ‘crontab -l‘
[email protected] | SUCCESS | rc=0 >>
#Ansible: update time
*/3 * * * * /usr/sbin/ntpdate marvin &> /dev/null
[email protected] | SUCCESS | rc=0 >>
#Ansible: update time
*/3 * * * * /usr/sbin/ntpdate marvin &> /dev/null
[email protected] | SUCCESS | rc=0 >>
#Ansible: update time
*/3 * * * * /usr/sbin/ntpdate marvin &> /dev/null
[[email protected] ansible]# ansible servers -m command -a ‘date‘
[email protected] | SUCCESS | rc=0 >>
Thu May 19 20:19:36 CST 2016
[email protected] | SUCCESS | rc=0 >>
Thu May 19 20:19:36 CST 2016
[email protected] | SUCCESS | rc=0 >>
Thu May 19 20:19:36 CST 2016
[email protected] | SUCCESS | rc=0 >>
Thu May 19 20:19:36 CST 2016

组添加:

[[email protected] nginx-1.6.3]# ansible frontend -m group -a ‘gid=304 system=yes name=nginx‘
[email protected] | SUCCESS => {
    "changed": true, 
    "gid": 304, 
    "name": "nginx", 
    "state": "present", 
    "system": true
}
[email protected] | SUCCESS => {
    "changed": true, 
    "gid": 304, 
    "name": "nginx", 
    "state": "present", 
    "system": true
}
[[email protected] nginx-1.6.3]# tail /etc/group
nginx:x:304:

添加用户:

[[email protected] home]# ansible frontend -m user -a ‘uid=304 system=yes group=nginx createhome=no shell=/sbin/nologin  name=nginx ‘

删除用户:

[[email protected] home]# ansible frontend -m user -a ‘uid=304 state=absent  name=nginx remove=yes‘

yum:

[[email protected] nginx-1.6.3]# ansible frontend -m yum -a ‘name=openssl-devel state=present‘
时间: 2024-11-05 12:32:50

ansible简单应用的相关文章

Ansible简单安装

系统centos7.3 ip地址192.168.1.10 [安装ansible] yum install epel-release -y yum install ansible -y [SSH部分] #配置ssh免密码登陆,若是用普通用户请在普通用户下创建SSH密钥.且ssh统一使用一个账号. ssh-keygen -t rsa  默认下一步即可. #复制密钥到需要ssh的机器. ssh-copy-id -i #默认会把密钥放入对端机器的/root/.ssh/authorized_keys ss

用ansible简单安装那个nginx

用ansible简单安装nginx [[email protected] ansible-nginx]# cat/etc/redhat-release CentOS release 6.7 (Final) [[email protected] ansible-nginx]# uname -r 2.6.32-573.el6.x86_64 安装ansible yum install -y epel-release && sudoyum install -y ansible 为下载的目录创建个文

自动化运维工具ansible简单介绍

一.Ansible介绍Ansible 简单的说是一个配置管理系统(configuration management system).你只需要可以使用 ssh 访问你的服务器或设备就行.它也不同于其他工具,因为它使用推送的方式,而不是像 puppet 等 那样使用拉取安装agent的方式.ansible可以帮助我们完成一些批量任务,或者完成一些需要经常重复的工作.? 模块化:调用特定的模块,完成特定任务? 有Paramiko,PyYAML,Jinja2(模板语言)三个关键模块? 支持自定义模块?

ansible 简单入门与使用

由于线上用的一直是ansible,但是时常的操作也就那么点儿.今儿总结 之前用过saltstack,不可否认saltstack还是遇到各种小问题:后来开始转向研究一下ansible,一来是他不用像saltstack一样每个都要去部署一个客户端,而且有些操作系统.至于执行速度显然不做更多的说法,其实线上三位级别的服务 器,ansible也不慢. saltstack死活装不上:二来是ansible操作简单,API也是非常的简便.可能跟我掌握不深有关系: 一.ansible安装:centos6 安装e

利用ansible简单修改一批务器密码为统一密码

#!/usr/bin/env python # -*- coding:utf-8 -*- import os import sys import crypt get_passwd = "abcde" new_passwd = crypt.crypt( get_passwd, "ab" ) change_passwd = "usermod -p %s root" %( new_passwd ) ret = os.system( change_pas

ansible简单用法

Ansible简介: ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能. Ansible主要组成部分: USER,普通用户,即SYSTEM ADMINISTRATOR CMDB(资产管理系统) API 调用 PUBLIC/PRIVATE CLOUD API调用 USER-> Ansible Playbook -> Ansibile 利用

python学习-ansible简单使用1

一.介绍 Ansible 一种集成 IT 系统的配置管理.应用部署.执行特定任务的开源平台,是 AnsibleWorks 公司名下的项目,该公司由 Cobbler 及 Func 的作者于 2012 年创建成立. Ansible 基于 Python 语言实现,由 Paramiko 和 PyYAML 两个关键模块构建. Ansible 特点: >> 部署简单,只需在主控端部署 Ansible 环境,被控端无需做任何操作.>> 默认使用 SSH(Secure Shell)协议对设备进行管

ansible简单使用

从控制主机复制文件到本地(fetch),再从本地复制文件到远程控制主机 copy 从控制主机复制文件到本地,并且解压到远程主机 fetch unarchive tasks: 执行tasks各含义: 触发器 notify handlers tag标签 facts类型的变量 ansible-playbook命令的命令行中的自定义变量 如果要指定多个变量,则用多个-e引导即可 两个远程主机(remote host )上面互相传输数据: 参考:https://www.cnblogs.com/xiaoxi

Ansible的简单介绍入门

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