33-3 ansible常用模块事例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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


本文出自 “追梦” 博客,请务必保留此出处http://sihua.blog.51cto.com/377227/1850566

以上是关于33-3 ansible常用模块事例的主要内容,如果未能解决你的问题,请参考以下文章

Ansible概述及常用命令模块

Ansible概述及常用命令模块

Ansible------Ansible概述,搭建,常用模块介绍

Ansible playbooks入门和编写规范Ansible Playbooks常用模块介绍常用模块集合

Ansible playbooks入门和编写规范Ansible Playbooks常用模块介绍常用模块集合

ansible常用基础模块