Ansible安装及常用模块

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

主机列表:/etc/ansible/hosts 

安装anslibe 

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum -y install ansible

配置文件先备份

修改配置文件hosts添加主机组 (分组)

如果要远程连接需要配置用户名和密码或密钥(两种方式都可以)

用户密码:

[webtest]
192.168.32.132 ansible_ssh_user=root ansible_ssh_pass=登录密码
192.168.32.131 ansible_ssh_user=root ansible_ssh_pass=登录密码

密钥:

生成私钥和公钥 ssh-keygen -t rsa -P ‘‘

注意文件权限:

[[email protected] .ssh]# cp id_rsa.pub authorized_keys
[[email protected] .ssh]# ll
total 16
-rw-r--r-- 1 root root  408 Mar 14 22:32 authorized_keys
-rw------- 1 root root 1679 Mar 14 22:32 id_rsa
-rw-r--r-- 1 root root  408 Mar 14 22:32 id_rsa.pub
-rw-r--r-- 1 root root  352 Mar 14 22:20 known_hosts
[[email protected] .ssh]# chmod 600 authorized_keys
[[email protected] .ssh]# ll authorized_keys
-rw------- 1 root root 408 Mar 14 22:32 authorized_keys

公钥分别发送到被管理的主机:

scp authorized_keys 192.168.32.132:/root/.ssh/
scp authorized_keys 192.168.32.131:/root/.ssh/

测试OK:

常用模块:

注意:command和shell模块的核心参数直接为命令本身;而其它模块的参数通常为“key=value”格式

-m  command   (如下没写-m command 是因为默认模式是 command)

ansible测试:ping模块测试连通性

第一个要做的就是时间同步:

首先使用ansible的yum模块批量安装ntpdate服务

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

批量删除两种方式:

ansible all -m yum -a "state=removed name=ntpdate"
ansible all -m yum -a "state=absent name=ntpdate"

指定节点安装及删除:

安装:ansible 192.168.32.131 -m yum -a "state=present name=ntpdate"

删除:ansible 192.168.32.131 -m yum -a "state=remove name=ntpdate"

时间同步:

ansible all -a ‘ntpdate ntp1.aliyun.com‘

获取模块列表:ansible-doc -l

获取指定模块的使用帮助:ansible-doc -s MOD_NAME

创建用户:

copy模块:复制文件到远程主机

用法:

(1) 复制文件

-a "src=原地址 dest=目标地址   mode=644 权限 "

(2) 给定内容生成文件

-a "content=  dest=  "

复制文件:

src原地址   dest目标地址  mode权限

注:如果文件存在将覆盖原文件,并没有提示操作需小心。

ansible all -m copy -a "src=/etc/ansible/hosts.bak dest=/opt/ mode=600"

file模块:

用法:

(1) 创建目录:

-a "path=  state=directory"

(2) 创建链接文件:

-a "path=  src=\‘#\‘" /p>

(3) 删除文件:

-a "path=  state=absent“

修改文件用户组属性:

ansible all -m file -a "path=/tmp/hosts.bak mode=644 owner=root group=root"

创建目录及修改属性:

创建目录
ansible webtest -m file -a "path=/opt/work state=directory"
修改组属性
ansible webtest -m file -a "path=/opt/work mode=755 owner=root group=root"

创建软链:

ansible all -m file -a "src=/opt/hosts.bak path=/tmp/hosts.link state=link"

删除软链:

ansible all -m file -a "path=/tmp/hosts.link state=absent"

fetch模块:从远程主机取文件

批量取:
ansible all -m fetch -a "src=/opt/hosts.bak dest=/root"
指定主机取:
ansible 192.168.32.131 -m fetch -a "src=/opt/hosts.bak dest=/root"

cron模块:管理计划任务条目

用法:

-a ""

minute=

hour=

day=

month=

weekday=

job=

name=

user=

        state={present|absent}

创建一个同步时间的计划任务,每5分钟同步一下服务器的时间

ansible all -m cron -a "minute=‘*/5‘ job=‘/usr/sbin/ntpdate ntp1.aliyun.com &> /dev/null‘ name=‘时间同步‘"

删除计划任务:

ansible all -m cron -a "name=‘时间同步‘ state=absent"

hostname模块:管理主机名

用法:

name=

ansible 192.168.32.131 -m hostname -a "name=CentOS_7"

yum模块:使用yum命令完成程序包管理

用法:首先,确定主机的yum源是可用的 yum info samba

-a ""

(1) name=  state={present|latest}

(2) name=  state=absent

批量安装samba
ansible all -m yum -a "name=samba" 或 ansible all -m yum -a "name=samba state=present  |   latest"
查看安装状态
ansible all -a "yum info samba"
删除samba
ansible all -m yum -a "name=samba state=absent"

service模块:服务管理

用法:

-a ""

name=

state=

started

stopped

restarted

enabled=

runlevel=

安装httpd

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

启动httpd

ansible all -m service -a "name=httpd state=started enabled=true"

关闭httpd服务

ansible all -m service -a "name=httpd state=stopped enabled=false"

group模块:增加或删除组

用法:

-a ""

name=

state=

system=

gid=

创建组
ansible all -m group -a "name=ggg system=true"
删除组
ansible all -m group -a "name=ggg state=absent"

user模块:用户管理

使用格式:

name= : 创建的用户名

state= : present新增,absent删除

force= : 删除用户的时候删除家目录

system= : 创建系统用户

uid= : 指定UID

shell= : 指定shell

home= : 指定用户家目录

创建用户
ansible all -m user -a "name=ggg system=true"
查看
ansible all -a "id ggg"
删除用户
ansible all -m user -a "name=ggg state=absent"

setup模块:收集主机里面的各种信息

信息太多,指定一台收集
ansible 192.168.32.131 -m setup

原文地址:https://www.cnblogs.com/zhink/p/8572175.html

时间: 2024-10-09 00:11:47

Ansible安装及常用模块的相关文章

ansible基础—安装与常用模块

ansible介绍: ansible是一个基于python开发的轻量级自动化运维管理工具,可以用来批量执行命令,安装程序,支持playbook编排.它通过ssh协议来连接主机,省去了在每一台主机安装客户端的麻烦,相对比puppet和saltstack,显得更为简单和轻量. ansible命令参数: Usage: ansible <host-pattern> [options] Options:   -a MODULE_ARGS, --args=MODULE_ARGS              

Ansible的安装及常用模块

简介 Ansible 基于 Python 语言实现,由 Paramiko 和 PyYAML 两个关键模块构建. Ansible 特点: 1.部署简单,只需在主控端部署 Ansible 环境,被控端无需做任何操作.2.默认使用 SSH(Secure Shell)协议对设备进行管理.3.主从集中化管理.4.配置简单.功能强大.扩展性强.5.支持 API 及自定义模块,可通过 Python 轻松扩展.6.通过 Playbooks 来定制强大的配置.状态管理.7.对云计算平台.大数据都有很好的支持.8.

Ansible自动化运维的安装及常用模块解释

(一)前言: Ansible是今年来越来越火的一款开源运维自动化工具,通过Ansible可以实现运维自动化,提高运维工程师的工作效率,减少人为失误.Ansible通过本身集成的非常丰富的模块可以实现各种管理任务,其自带模块超过上千个.更为重要的是,它操作简单,但提供的功能又非常丰富,在运维领域,几乎可以做任何事. Ansible自2012年发布以来,很快在全球流行,其特点如下: Ansible基于Python开发,运维工程师对其二次开发相对比较容易: Ansible丰富的内置模块,几乎可以满足一

Ansible自动化运维的安装及常用模块详解

Ansible作为今年来越来越火的一款开源运维自动化工具,通过Ansible可以实现运维自动化,提高运维工程师的工作效率,减少人为失误.Ansible通过本身集成的非常丰富的模块可以实现各种管理任务,其自带模块超过上千个.更为重要的是,它操作简单,但提供的功能又非常丰富,在运维领域,几乎可以做任何事..Ansible自2012年发布以来,很快在全球流行,其特点如下: 1.Ansible基于Python开发,运维工程师对其二次开发相对比较容易2.Ansible丰富的内置模块,几乎可以满足一切要求3

ansible安装和常用的命令

1.建立ssh无秘钥认证的关系 yum  -y install  expect 1.1cat auto_deploy.sh #!/bin/sh . /etc/init.d/functions #1.product key pair ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa >/dev/null 2>&1  if [ $? -eq 0 ];then   action "create dsa success" /bin/true

Ansible指令和常用模块使用

这里文章记录一下ansible的指令选项和常用的模块使用 ansible指令选项 -m:要执行的模块,默认为command -a:模块的参数 -u:ssh连接的用户名,默认用root,ansible.cfg中可以配置 -k:提示输入ssh登录密码,当使用密码验证的时候用 -s:sudo运行 -U:sudo到哪个用户,默认为root -K:提示输入sudo密码,当不是NOPASSWD模式时使用 -C:只是测试一下会改变什么内容,不会真正去执行 -c:连接类型(default=smart) -f:f

自动化运维之Ansible安装及基本模块应用

ansible简介 Ansible可以同时管理Redhat系的Linux,Debian系的Linux,以及Windows主机.管理节点只在执行脚本时与远程主机连接,没有特别的同步机制,所以断电等异常一般不会影响ansbile. 2.ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能.ansible是基于模块工作的,本身没有批量部署的能力.真

Ansible安装及部分模块初步使用

Ansible安装及初步使用 Ansible概述 由于互联网的快速发展导致产品更新换代速度逐渐加快,运维人员每天都要进行大量的维护操作,仍旧按照传统的方式进行维护工作会使得工作效率低下.这时,部署自动化运维就可以尽可能安全.高效地完成这些工作. 一般会把自动化运维工具划分为两类:一类是使用代理工具,与就是基于专用的Agent程序完成管理功能,如:Puppet.Func.Zabbix等:另外一类是不需要配置代理工具的,可以基于SSH服务来完成管理功能,如:Ansible.Fabric等. Ansi

Ansible 安装 及 基础模块介绍

ansible 介绍 Ansible基于Python开发,集合了众多优秀运维工具的优点,实现了批量运行命令部署程序.配置系统等功能.默认通过SSH协议进行远程命令执行或下发配置,无需部署任何客户端代理软件,从而使得自动化环境部署变得更加简单.可同时支持多台主机并行管理,使得管理主机更加便捷. ansible 安装 在管理端与 被管理端都要安装 yum install -y epel-release ##安装epel源 yum install ansible -y ansible --versio