Ansible -01-1 安装与用户模块实例

0x00 前言

ansible 与puppet saltstack一样是自动化运维工具 ,它不需要安装agent客户端而是使用ssh进行推送,分发工作。实现了批量操作系统配置、批量程序的部署、批量运行命令等功能。

0x01 安装

wget  -P  /etc/yum.repos.d/ http://list.attacker.club/4.config/yum/centos7-epel.repo
# 使用阿里yum 源,如果是centos 6 下载路径改为centos6-epel.repo

yum install ansible
# 安装ansible工具

ssh-keygen -t rsa -P ''
#生成空密码密钥

ssh-copy-id  -i 45.63.xx.xx
#将本机公钥推送到目标主机~./ssh/authorized_keys中

0x02 ansible常用模块

ansible-doc -l ;查看到当前 ansible 都支持哪些模块,

ansible-doc  -s  模块名;查看该模块有哪些参数可以使用。

copy模块
file模块
cron模块
group模块
user模块
yum模块
service模块
script模块
ping模块
command模块
raw模块
get_url模块
synchronize模块

 

0x03 常见模块实例

copy模块:

    目的:把主控端/root目录下的a.sh文件拷贝到到指定节点上

    命令:ansible 10.1.1.113 -m copy -a 'src=/root/a.sh dest=/tmp/'

    执行效果:

wKioL1TB_EWytdwHAALpQ_NZj_Y676.jpg

 

 

 

file模块:

    目的:更改指定节点上/tmp/t.sh的权限为755,属主和属组为root

    命令:ansible all -m file -a "dest=/tmp/t.sh mode=755 owner=root group=root"

    执行效果:

spacer.gifwKiom1TB-23S6GIaAAFkf3LCV0I648.jpg

 

cron模块:

    目的:在指定节点上定义一个计划任务,每隔3分钟到主控端更新一次时间

    命令:ansible all -m cron -a 'name="custom job" minute=*/3 hour=* day=* month=* weekday=* job="/usr/sbin/ntpdate 172.16.254.139"'

    执行效果:

wKioL1TB_EXAZ9npAAKlZcJk-2A313.jpg

 

group模块:

    目的:在所有节点上创建一个组名为nolinux,gid为2014的组

    命令:ansible all -m group -a 'gid=2014 name=nolinux'

    执行效果:

spacer.gifwKiom1TB-22w2EHsAAEyGxpaZ1Q696.jpg

 

user模块:

    目的:在指定节点上创建一个用户名为nolinux,组为nolinux的用户

    命令:ansible 10.1.1.113 -m user -a 'name=nolinux groups=nolinux state=present'

    执行命令:

wKioL1TB_EajzhgWAAKh8udIwfU616.jpg

补充:删除用户示例

spacer.gifwKiom1TB-27BpMDGAAJUaZVZKlQ882.jpg

 

yum模块:

    目的:在指定节点上安装 lrzsz 服务

    命令:ansible all -m yum -a "state=present name=httpd"

    执行效果:

wKioL1TB_EaTCw3xAAo06fOJT9o358.jpg

 

service模块:

    目的:启动指定节点上的 puppet 服务,并让其开机自启动

    命令:ansible 10.1.1.113 -m service -a 'name=puppet state=restarted enabled=yes'

    执行效果:

wKiom1TB-27BK1j6AAE7uhMosLQ824.jpgspacer.gif

 

script模块:

    目的:在指定节点上执行/root/a.sh脚本(该脚本是在ansible控制节点上的)

    命令:ansible 10.1.1.113 -m script -a '/root/a.sh'

    执行效果:

wKioL1TB_EehJLUgAAFvF7DUzTA542.jpgspacer.gif

 

ping模块:

    目的:检查指定节点机器是否还能连通

    命令:ansible 10.1.1.113 -m ping

    执行效果:

wKioL1TB_EfDOcX3AAD56pSs8vw739.jpg

 

command模块:

    目的:在指定节点上运行hostname命令

    命令:ansible 10.1.1.113 -m command -a 'hostname'

    执行效果:

wKiom1TB-2_TVLsoAAH9514heiw532.jpgspacer.gif

 

raw模块:

    目的:在10.1.1.113节点上运行hostname命令

    命令:ansible 10.1.1.113 -m raw-a 'hostname|tee'

    执行效果:

wKioL1TB_EfiXSlvAAD6X2f-nZ4937.jpg

 

get_url模块:

    目的:将http://10.1.1.116/favicon.ico文件下载到指定节点的/tmp目录下

    命令:ansible 10.1.1.113 -m get_url -a 'url=http://10.1.1.116/favicon.ico dest=/tmp'

    执行效果:

wKiom1TB_ZvyFnXpAAQItOAiI4M141.jpg

 

synchronize模块:

    目的:将主控方/root/a目录推送到指定节点的/tmp目录下

    命令:ansible 10.1.1.113 -m synchronize -a 'src=/root/a dest=/tmp/ compress=yes'

    执行效果:

delete=yes   使两边的内容一样(即以推送方为主)

compress=yes  开启压缩,默认为开启

--exclude=.Git  忽略同步.git结尾的文件

wKioL1TB_EjxkmYpAAYA5Ai3IPg889.jpg

由于模块,默认都是推送push。因此,如果你在使用拉取pull功能的时候,可以参考如下来实现

mode=pull   更改推送模式为拉取模式

    目的:将10.1.1.113节点的/tmp/a目录拉取到主控节点的/root目录下

    命令:ansible 10.1.1.113 -m synchronize -a 'mode=pull src=/tmp/a dest=/root/'

    执行效果:

wKiom1TB-3CwhN2dAASKTtTpOxI903.jpg

       由于模块默认启用了archive参数,该参数默认开启了recursive, links, perms, times, owner,group和-D参数。如果你将该参数设置为no,那么你将停止很多参数,比如会导致如下目的递归失败,导致无法拉取

wKiom1TB-3CwM88JAAKGdhDvVqI952.jpg

转载于:https://my.oschina.net/attacker/blog/679616

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值