[root@m10 ~]# ansible -i iplist all -m shell -a 'lsblk'
192.168.164.40 | CHANGED | rc=0 >>
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 4G 0 disk /data1
sr0 11:0 1 1024M 0 rom
sdc 8:32 0 2G 0 disk
sda 8:0 0 40G 0 disk
├─sda2 8:2 0 2G 0 part
├─sda3 8:3 0 37.7G 0 part /
└─sda1 8:1 0 300M 0 part /boot
192.168.164.30 | CHANGED | rc=0 >>
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 300M 0 part /boot
├─sda2 8:2 0 2G 0 part [SWAP]
└─sda3 8:3 0 37.7G 0 part /
sdb 8:16 0 2G 0 disk /data1
sr0 11:0 1 1024M 0 rom
2、创建挂载目录
ansible -i iplist all -m shell -a 'mkdir /data1'
3、格式化所有客户端的sdb为xfs
ansible -i iplist all -m filesystem -a "fstype=xfs dev=/dev/sdb force=yes"
注意:磁盘中挂载前假如有数据,则数据会被格式化掉消失。
4、挂载磁盘
ansible -i iplist all -m mount -a 'name=/data1 src=/dev/sdb fstype=xfs state=mounted opts=rw'
1、mount模块介绍
path: 挂载点
src: 挂载的文件
fstype: 挂载的硬盘类型 比如iso9660、ext4、xfs、nfs、
cifs samba的共享文件系统
ntfs windows磁盘文件系统
opts: 传递给mount命令的参数
state: present 开机挂载,仅将挂载配置写入/etc/fstab并不会真的挂载
mounted 挂载设备,并将配置写入/etc/fstab
unmounted 卸载设备,不会清除/etc/fstab写入的配置
absent 卸载设备,并清理/etc/fstab写入的配置
参考:22-Ansible常用模块磁盘管理模块parted、lvg、lvol、filesystem、mount_ansible磁盘管理模块_qq_41417660的博客-CSDN博客
ansible版本以及python版本,建议使用python3以后的版本···
[root@yunwei ~]# ansible --version
ansible 2.8.4
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', ...
二、ansible挂载
ansible all -m mount -a "state=mounted src=/data path=/dev/vdb fstype=nfs"
src#要被挂载的目录或文件
path...
from ansible_parser . play import Play
play = "" # populate with play output
ansible = Play ( play_output = play )
failures = ansible . failures ()
1、首先在server5上添加一块虚拟的空间
[root@server5 ~]# fdisk -l ##查看,然后真迹打开资源管理其添加虚拟空间
[root@foundation35 ~]# virt-manager
2、在server4上编写.yml文件
[devopes@server4 ansible]# vim my_disk.yml
---
- hosts: test...
一、Ansible简介
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架
二、Ansible的架构
Ansible core(核心程序):用来调度执行任务,所需要的模块
Host inventory.
playbook 是 ansible 用于配置,部署,和管理被控节点的剧本。
通过 playbook 的详细描述,执行其中的一系列 tasks ,可以让远端主机达到预期的状态。playbook 就像 Ansible 控制器给被控节点列出的的一系列 to-do-list ,而被控节点必须要完成。
也可以这么理解,playbook 字面意思,即剧本,现实中由演员按照剧本表演,在Ansible中,这次由计算机进行表演,由计算机安装,部署应用,提供对外服务,以及
你可以使用 `ansible-playbook` 命令来初始化一个 Ansible playbook。这个命令用于执行 Ansible playbook 文件,它包含了一系列的任务和配置用于自动化管理远程主机。
在使用 `ansible-playbook` 命令之前,确保你已经安装了 Ansible。然后,创建一个新的 playbook 文件,可以使用任何文本编辑器打开,并按照 YAML 格式编写你的任务和配置。
在 playbook 文件中,你需要指定要管理的主机、角色、变量等信息。以下是一个简单的 playbook 示例:
```yaml
---
- name: My First Playbook
hosts: webserver
become: yes
tasks:
- name: Install Apache
name: apache2
state: present
- name: Start Apache
service:
name: apache2
state: started
在这个示例中,我们定义了一个名为 "My First Playbook" 的 playbook,它将在名为 "webserver" 的主机上安装和启动 Apache。
保存 playbook 文件后,你可以在终端中使用以下命令来执行它:
ansible-playbook playbook.yml
其中 `playbook.yml` 是你保存的 playbook 文件名。
执行命令后,Ansible 将连接到远程主机,并按照 playbook 文件中定义的任务和配置进行操作。
这只是一个简单的初始化过程示例,你可以根据你的需求进行更复杂的配置和任务定义。希望这个回答能够帮到你!如果你有任何其他问题,请随时提问。