服务端:  ip  192.168.10.201  RHEL 7.0

客户端1ip  192.168.10.202  RHEL 7.3

客户端2ip  192.168.10.203  RHEL 7.3

客户端3ip  192.168.10.204  CentOS 6.8

 

一、服务端安装配置ip 192.168.10.201  RHEL 7.0

1、安装ansible

[root@node1 ~]# yum install ansible -y

2、生成密钥

[root@node1 ~]# ssh-keygen  -t  rsa

blob.png

3、将公钥发给客户端(服务端自己管理自己)

[root@node1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.10.201

[root@node1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.10.202

[root@node1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.10.203

[root@node1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.10.204

测试无须密码认证:

[root@node1 ansible]# for i in 201 202 203 204;do ssh 192.168.10.$i 'date';done

blob.png

4、定义被管理的主机清单:vim  /etc/ansible/hosts

192.168.10.201

[webservers]

192.168.10.202

192.168.10.203

[dbservers]

192.168.10.204

blob.png

5、测试command模块:

运行:ansible 192.168.10.202 -m command -a 'ifconfig'

blob.png

测试全部

 [root@node1 ansible]# ansible  all  -m  command  -a  'ifconfig'

或者:[root@node1 ansible]# ansible  all  -a  'ifconfig'

二、常用模块介绍

ansible  <host-patten>  [ -f forks]  [ -m modlue_name]  [ -a args]

args: key=value

1、默认模块:command,不需使用key=value格式

-a  'COMMAND'

2user:用户管理模块

-a  'name=  state={present|absent}  system=  uid= '

创建用户:

[root@node1 ~]# ansible webservers -m user -a 'name=hacluster state=present'

删除用户:

[root@node1 ~]# ansible webservers -m user -a 'name=hacluster state=absent'

但家目录不会删除

3group模块

-a  'name=  gid=  state=  system= '

4cron模块

-a 'name=  minute=  hour=  day=  month=  weekday=  job=  user=  state= '

[root@node1 ~]# ansible all -m cron -a "name='sync time from ntpserver' minute='*/10' job='/sbin/ntpdate 192.168.10.2 &> /dev/null'"

5copy模块

-a 'dest=  src=  mode=  owner=  group= '

[root@node1 ~]# ansible all -m copy -a 'src=/etc/fstab dest=/root/fstab mode=600'

7file模块

-a 'path=  state=  force=yes'

创建目录:

[root@node1 ~]# ansible all -m file -a 'path=/test state=directory'

删除目录:

[root@node1 ~]# ansible all -m file -a 'path=/test state=absent'

创建连接:在/test目录下创建一个链接文件

1步:ansible all -m file -a 'path=/test state=directory'

2步:ansible all -m file -a 'path=/test/fstab.link src=/etc/fstab state=link'

blob.png

8ping模块:没有参数

9yum模块

[root@node1 ~]# ansible all -m yum -a 'name=nginx state=latest'

10service模块

-a 'name=  state=started|stopped|restarted  enabled='

ansible webservers -m service -a 'name=nginx state=startd enabled=yes'

11shell模块

# ansible all -m shell -a 'echo 12345 | passwd –stdin root'

12sript模块

[root@node1 ~]# vim /tmp/test.sh

#!/bin/bash

echo "ansible">/root/test.txt

[root@node1 ~]# ansible all -m script -a '/tmp/test.sh'

13setup模块

[root@node1 ~]# ansible all -m setup

分类: Linux服务

发表评论

电子邮件地址不会被公开。 必填项已用*标注

5 × 5 =