33-3 ansible常用模块事例

管理端:192.168.1.131 Centos7.2

node1: 1.132 Centos7.2

node2: 1.133 Centos7.2

node3: 1.122 Centos6.7

[[email protected] ~]# yum -y install ansible

[[email protected] ~]# ssh-keygen -t rsa -P ‘‘

[[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.131 #管理本机

[[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.132

[[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.133

[[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.122

[[email protected] ~]# cd /etc/ansible/

[[email protected] ansible]# cp hosts{,.bak}

[[email protected] ansible]# vim hosts

添加

[websrvs]

192.168.1.132

192.168.1.133

[dbservs]

192.168.1.122

测试

1、对单台主机执行命令

[[email protected] ansible]# ansible 192.168.1.132 -m command -a ‘ifconfig‘

2、对全部主机执行命令

[[email protected] ansible]# ansible all -m command -a ‘ifconfig‘ 

3、对指定主机组执行下载文件命令

ansible websrvs -a ‘wget -O /tmp/epel-release-latest-7.noarch.rpm http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm‘

注:必须指定文件名

4、对指定主机组创建用户

[[email protected] ansible]# ansible websrvs -m user -a "name=hacluster state=present"

5、对指定主机组删除用户

[[email protected] ansible]# ansible websrvs -m user -a "name=hacluster state=absent" 

6、设置计划任务:从ntp服务器上同步所有主机时间

[[email protected] ansible]# ansible all -m cron -a ‘name="sync time from ntpserver" minute="*/10" job="/sbin/ntpdate 192.168.1.62 &> /dev/null"

7、取消所有主机上name="sync time from ntpserver"的计划任务

[[email protected] ansible]# ansible all -m cron -a ‘name="sync time from ntpserver" state=absent‘

8、复制本机上的文件至指定主机组

[[email protected] ansible]# ansible websrvs -m copy -a ‘src=/etc/fstab dest=/tmp/fstab.tmp mode=600‘

9、在所有主机上创建指定目录

[[email protected] ansible]# ansible all -m file -a ‘path=/tmp/testdir state=directory‘

10、对所有主机上的文件创建链接文件

[[email protected] ansible]# ansible all -m file -a ‘path=/tmp/fstab.symlink state=link src=/tmp/fstab.tmp‘

11、强制删除所有主机上的链接文件

[[email protected] ansible]# ansible all -m file -a ‘path=/tmp/fstab.symlink state=absent force=yes‘

12、测试管理主机是否在线

[[email protected] ansible]# ansible all -m ping

13、在指定主机组上用yum安装nginx

[[email protected] ansible]# ansible websrvs -m yum -a ‘name=nginx state=latest‘

14、在指定主机组上启动nginx并设定开机启动

[[email protected] nginx]# ansible websrvs -m service -a ‘name=nginx state=started enabled=yes‘

15、在指定主机组上停止nginx并取消开机启动

[[email protected] nginx]# ansible websrvs -m service -a ‘name=nginx state=stopped enabled=no‘

16、在指定主机组上添加centos用户,并设定密码为centos

[[email protected] nginx]# ansible websrvs -m user -a ‘name=centos state=present‘

[[email protected] nginx]# ansible websrvs -m command -a ‘echo centos | passwd --stdin centos‘ #错误,这里不能使用command,应使用shell,command命令不支持管道以下面语句为准

[[email protected] nginx]# ansible websrvs -m shell -a ‘echo centos | passwd --stdin centos‘

17、在指定主机组上执行本地shell脚本

[[email protected] ~]# vim /tmp/test.sh 

#!/bin/bash

#

echo "$(hostname) ansible is good." > /tmp/ansible.txt

[[email protected] ~]# ansible websrvs -m script -a ‘/tmp/test.sh‘

18、取得指定主机组上的相关信息

[[email protected] ~]# ansible websrvs -m setup

时间: 2024-10-11 04:34:19

33-3 ansible常用模块事例的相关文章

ansible常用模块详解

ansible常用模块详解: ansible <host-pattern> [-m module_name] [-a args] [options] #ansible命令格式  指定主机组或ip地址  指定调用模块   传递给模块的参数   ansible-doc -l #列出可用模块 ansible-doc -s model_name #查看指定模块详细用法 command:ansible默认模块,对指定主机执行命令,不能理解特殊字符 例:ansible web -a 'date' #对we

Ansible 常用模块详解(3)

title: Ansible 常用模块详解(3) date: 2018-12-01 15:22:11 tags: Ansible categories: Ansible copyright: true --- Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能,ansible是基于模块工作的,本身没有批量部署的能力,真正具有批量部署的是an

二:Ansible常用模块

二:Ansible常用模块 一:Ansible命令模块 1.1 command # 默认模块, 执行命令 [[email protected] ~]# ansible web_group -a "hostname" 1.2 shell # 如果需要一些管道操作,则使用shell [[email protected] ~]# ansible web_group -m shell -a "ps -ef|grep nginx" -f 50 注意:command不识别管道符

2. ansible常用模块

Ansible通过模块的方式来完成一些远程的管理工作. ansible-doc -l查看所有模块 ansible-doc -s module来查看某个模块的参数, ansible-doc help module来查看该模块更详细的信息. 模块命令 -i 设备列表路径,可以指定一些动态路径 -f 并发任务数 -private-key 私钥路径 -m 模块名称 -M 模块夹的路径 -a 参数 -k 登陆密码 -K sudo密码 -t 输出结果保存路径 -B 后台运行超时时间 -P 调查后台程序时间

ansible常用模块介绍

ansible查看模块用法 例子 查看shell 模块使用方法 [[email protected] opt]# ansible-doc -s shell 注: -i 指定配置文件  tomcatserver自己定义的工作组  -m 指定模块 file模块 file模块包含如下选项: force:需要在两种情况下强制创建软链接,一种是源文件不存在但之后会建立的情况下:另一种是目标软链接已存在,需要先取消之前的软链,然后创建新的软链,有两个选项:yes|no group:定义文件/目录的属组 mo

Ansible常用模块介绍及使用

ansible常用命令解析: 查看当前 ansible 都支持哪些模块: ansible-doc -l 查看某一模块可以使用的参数:ansible-doc -s copy (eg:copy模块) ansible用法: ansible 主机名 -m 模块名 -a 模块参数 -m:模块的名字,如果执行单一的命令不用加-m,默认走command -a: 模块参数,如果模块是command,-a 后面跟的就是命令参数 -i : 指定hosts文件位置      默认:/etc/ansible/hosts

Ansible常用模块及API

Ansible安装 安装EPEL作为安装Ansible的yum源(CentOS6.4): rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm 安装Ansible: yum install ansible -y 配置文件: 路径:/etc/ansible/hosts配置说明:webservers为组名,下面的ip或域名则是属于该组的主机. [webservers] 192.168.1.111

ansible使用一(ansible的安装及ansible常用模块的使用)

1.ansible概述        Ansible是一款基于Python开发的自动化运维工具,它不需要安装客户端,使用SSH进行通信,同时可支持系统账号认证或秘钥认证,也支持windows客户端. Ansible主要组成部分: (1)ANSIBLE PLAYBOOKS:任务剧本(任务集),编排定义Ansible任务集的配置文件,由Ansible顺序依次执行,通常是JSON格式的YML文件: (2)INVENTORY:Ansible管理主机的清单: (3)MODULES:Ansible执行命令的

Ansible常用模块基本操作

Ansible是一个系列文章,我会尽量以通俗易懂.诙谐幽默的总结方式给大家呈现这些枯燥的知识点,让学习变的有趣一些. 前言 对于任何一个框架,一个应用,为了更便于推广,便于使用,便于商业化,都会顺便提供很多常用的模块,这样让大家也很容易使用起来.Ansible也是一样的,所以这些常用的模块,就好比基本功,基本招式一样,我们需要掌握这些基本功,掌握这些基本招式.这篇文章,就对这些常用的模块进行一个比较全面的总结. ping模块 ping是测试远程节点的SSH连接是否就绪的常用模块,但是它并不像Li