批量管理服务ansible,常用模块,剧本的简单介绍01

复制的代码运行错误仔细检查参数信息,作者也么有每一个命令都进行过测试

1. 选择ansible批量管理的意义

为什么选择ansible?

1.提高工作的效率
2.提高工作的准确率
3.减少维护的成本
4.减少重复性的操作

ansible的功能:

1.批量的系统操作配置
2.批量的软件部署
3.批量文件的分发
4.批量系统信息的收集

2. ansible的安装

1.首先要优化yum源:yum优化3,点击

yum -y install ansible 

ansible的一些配置文件

/etc/ansible/ansible.cfg  配置文件
/etc/ansible/hosts   主机清单文件,定义管理主机信息
/etc/ansible/roles   角色目录

2.配置管理主机的清单文件
vim /etc/ansible/hosts
添加要管理的主机IP

172.16.1.31
172.16.1.41

3.测试

ansible all -a "hostname"
ansible 172.16.1.41 -a "hostname"

3. ansible的模块的应用

官网:https://docs.ansible.com/ansible/latest/collections/ansible/builtin/index.html
ansible的语法格式

ansible 主机名称/主机地址/all -m 模块 -a “执行什么动作”

3.1 command模块

第一个模块command

参数作用
chdir执行命令之前切换目录
creates如果文件存在不会执行后边的操作
removes如果文件存在,执行后边的操作
ansible 172..16.1.41 -m command -a "hostname"

扩展应用(参数)
1)chdir 执行命令之前切换目录(默认在家目录)

ansible 172..16.1.41 -m command -a "chdir=/tmp touch oldboy.txt"

2)creates 如果文件存在,不会执行后边的操作

ansible 172..16.1.41 -m command -a "creates=/yang/yq02.txt chdir=/yang touch ya01.txt"

3)removes 如果文件存在,会执行后边的操作

ansible 172..16.1.41 -m command -a "removes=/yang/yq02.txt chdir=/yang touch ya01.txt"

3.2 shell模块

参数作用
chdir执行命令之前切换目录
creates如果文件存在不会执行后边的操作
removes如果文件存在,执行后边的操作

利用shell执行脚本
编写脚本

#!/bin/bash 
yum inatall -y hotp

发送脚本到远程主机

scp -rp yum.sh 172.16.1.41:/server/scripts

修改脚本权限

chmod a+x yum.sh

运行ansible命令

ansible 172.16.41 -m shell -a "sh /server/scripts/yum.sh"

3.3 script 脚本模块

参数作用
chdir执行命令之前切换目录
creates如果文件存在不会执行后边的操作
removes如果文件存在,执行后边的操作

不分发脚本进行执行

ansible 172.16.1.41 -m script -a "/server/scripts/yum.sh"

3.4 copy 模块

参数作用
src需要复制的文件地址
dest复制到的地址
owner文件到的属主信息
group文件的属组
groups文件除了自身,还属于那个属组
backup对文件进行备份,默认no
mode文件的权限chmod
content对传输的文件进行编辑,建议文件内容少的时候使用
remote_src是否对要进行管理的主机进行查找,默认no,从当前主机找

用法例子

ansible 172.1.16.41 -m copy -a "src=/etc/hosts dest=/etc/"

#ansible软件输出信息说明:
颜色:
绿色:查看主机信息/对主机信息未做改动
黄色:对主机信息进行了修改
红色:命令执行出错了 粉色:警告信息,忠告信息
蓝色:显示ansible执行的过程

扩展用法
1)传输文件的时候修改文件的属主属组信息 owner group

ansible 172.1.16.41 -m copy -a "src=/etc/ansible/file/rsync/rsync.password  dest=/etc/  owner=oldboy group=oldboy"

2)传输文件修改权限 mode

ansible 172.1.16.41 -m copy -a "src=/etc/ansible/file/rsync/rsync.password  dest=/etc/  owner=oldboy group=oldboy mode=666"

3)传输文件的时候进行源文件的备份 backup

ansible 172.1.16.41 -m copy -a "src=/etc/ansible/file/rsync/rsync.password  dest=/etc/  backup=yes"

4)传输一个文件,直接编辑文件信息(一行简单的内容) content

ansible 172.1.16.41 -m copy -a "content='oldboy123' dest=/etc/rsync.password"

3.5 file模块

参数作用
owner文件的属主
gorup文件的属组
mode文件的权限chmod
src创建软硬连接的源文件
path要创建的文件,dest/name
recurse递归设置指定目录的文件属性 默认为no
state表明你要进行的操作(见下表)
state的参数作用
absent对目录或文件进行删除
directory创建目录
file检查文件是否存在,不存在红色,存在绿色
hard硬链接
link软连接
touch创建文件

1)创建一个目录 directory

ansible 172.16.1.41 -m file -a "path=/oldboy/ state=directory"

2)多级目录

ansible 172.16.41 -m file -a "path=/oldboy/oldboy02/oldboy03/ state=directory"

3)创建文件信息

ansible 172.16.1.41 -m file -a "path=/oldboy/oldboy.txt state=touch"

4)软链接文件

ansible 172.16.1.41 -m file -a "src=/oldboy/oldboy.txt dest=oldboy/oldboy_link.txt state=link"

5)硬链接文件,与源文件的inode相同(ls -i)

ansible 172.16.1.41 -m file -a "src=/oldboy/oldboy.txt dest=oldboy/oldboy_hard.txt state=hard"

6)删除数据信息

ansible 172.16.1.41 -m file -a "dest=/oldboy/oldboy_link.txt state=absent"
ansible 172.16.1.41 -m file -a "dest=/oldboy/ state=absent"

3.6 yum 模块

参数作用
name指定安装软件的名称
state指定是否安装软件
state参数作用
present latest absent卸载软件
removed卸载
installed安装软件

模块的应用
1)安装

ansible 172.16.1.41 -m yum -a "name=iotop state=installed"

2)卸载

ansible 172.16.1.41 -m yum -a "name=iotop state=absent"

3.7 service模块

参数作用
name服务的名称
state服务的状态
enabled开机自启yes或no
state参数作用
reloaded重启
restarted重启
started启动
stooped停止

开机自启

ansible 172.16.1.41 -m  service -a "name=rsync state=restart enabled=yes"

3.8 cron 模块

参数信息

参数作用
minute分钟,0-59
hour小时,0-23, *, */2
day1-31
month月份,1-12
weekday周几,0-6,周日0
job定时任务需要干的事
name给定时任务取名字
state=absent删除定时任务,只能删除ansible设置的
disabled注释定时任务,yes
ansible 172.16.1.41 -m cron -a "minute=0 hour=2 job='/usr/bin/ntpdate ntp1.aliyun.com >/dev/null 2>&1'"

扩展用法
1)给定时任务设置注释信息 name=’’

ansible 172.16.1.31 -m cron -a "name='time sync' minute=0 hour=2 job='/usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1'"

2)删除指定的任务(只能是ansible设置好的定时任务)

ansible 172.16.1.31 -m cron -a "name='time sync' state=absent"

3)批量的注释定时任务disabled=yes

ansible 172.16.1.31 -m cron -a "name='time sync' minute=0 hour=2 job='/usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1' disabled=yes"

3.9 mount模块

参数作用
src需要挂载的存储设备的或文件信息
path指定目标挂载点目录
fstype指定挂载时的文件系统类型
state参数作用
mounted实现立即挂载,会修改/etc/fstab文件,实现开机自动挂载
unmounted卸载,不会改变/etc/fatab
absent卸载所有
ansible 172.16.1.7 -m mount -a "src=172.16.1.31:/data path=/mnt fstype=nfs state=mounted"
ansible 172.16.1.7 -m mount -a "src=172.16.1.31:/data path=/mnt fstype=nfs state=absent"

3.10 user 模块

参数作用
name创建的用户名称
uid指定uid
gorup用户组
groups用户组
shell用户的登录方式,shell=/sbin/nologin虚拟用户
create_home有没有家目录,参数no ,yes
password用户密码

实现批量创建用户

ansible 172.16.1.41 -m user -a "name=oldboy01"

扩展用法:
1.指定uid

ansible 172.16.1.41 -m user -a "name=oldboy01 uid=6666"

2.指定用户组

ansible 172.16.1.41 -m user -a "name=oldboy02 group=oldboy01"

groups

ansible 172.16.1.41 -m user -a "name=oldboy03 groups=oldboy01"

3.批量创建虚拟用户

ansible 172.16.1.31 -m user -a "name=rsync create_home=no  shell=/sbin/nologin"

4.给指定用户创建密码
生成密文信息的方法

ansible all -i localhost, -m debug -a "msg={{ '密码信息123456' | password_hash('sha512', 'oldboy') }}"

“msg”:
6 6 6oldboy$MVd3DevkLcimrBLdMICrBY8HF82Wtau5cI8D2w4Zs6P1cCfMTcnnyAmmJc7mQaE9zuHxk8JFTRgYMGv9uKW7j1”
}

ansible 172.16.1.31 -m user -a 'name=oldboy08 password=$6$oldboy$MVd3DevkLcimrBLdMICrBY8HF82Wtau5cI8D2w4Zs6P1cCfMTcnnyAmmJc7mQaE9zuHxk8JFTRgYMGv9uKW7j1'

4.剧本的简单介绍

4.1 创建编写剧本的目录

mkdir /etc/ansible/ansible-playbook

4.2 剧本的编写注意事项

1.合理的信息缩进,空两格
2.冒号的使用,:号使用空格,结尾和注释的时候不用
3.- 表示列表,写对会出现黄色的杠

4.3编写剧本的简单测试

剧本的文件命名.yaml 或者.yml
vim rsync_server.yaml

- hosts: 172.16.1.41
  tasks:
    - name: 01-yum-iptop
      yum: name=rsync state=installed

运行前可以检查剧本 --syntax-check

ansible-playbook --syntax-check rsync_server.yaml

在本地进行运行测试 -C

ansible-playbook -C  rsync_server.yaml 

正式运行

ansible-playbook rsync_server.yaml
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长安有故里y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值