ansible work 案例
自动创建文件系统并挂在到固定分区
点击查看代码
- name: formatdata
hosts: localhost
roles:
- format_data
--- tasks/main.yml
- name: setup
setup:
filter:
- ansible_devices
- include: format.yml
vars:
disk: "{{ item.key }}"
with_dict: "{{ ansible_devices }}"
when:
- not item.value.partitions
--- format.yml
- name: Format /{{ disk }} and mount to dir data
shell: |
if [[ {{ disk }} =~ ^(/dev/nvme[1-9]n1|/dev/sd[a-z]|/dev/vd[a-z])$ ]]
then
echo '非合法磁盘列表 推出磁盘初始化进程' {{ disk }}
exit 3
fi
for i in {0..20}
do
if [ $i -eq 0 ]
then
grep '/data ' /etc/fstab
else
grep "/data$i " /etc/fstab
fi
if [ $? -ne 0 ]
then
if [ $i -ge 1 ]
then
endpoint=/data$i
else
endpoint=/data
fi
break
fi
done
partprobe -d -s /dev/{{ disk }}
blkid | grep UUID| grep /{{ disk }}
if [ $? -eq 0 ] ; then
exit
else
if [ -e '/dev/{{ disk }}' ] && [ $(blkid | grep -c /dev/{{ disk }} ) -eq 0 ] ; then
echo format
parted -s /dev/{{ disk }} mklabel gpt
parted /dev/{{ disk }} mkpart ext4 0% 100%
parted -l /dev/{{ disk }}
mkdir $endpoint
#mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/{{ disk }}
mkfs.ext4 -F /dev/{{ disk }}
mount UUID=$(blkid /dev/{{ disk }} -sUUID -ovalue) $endpoint
sed -i '/\$endpoint/d' /etc/fstab
echo "UUID=$(blkid /dev/{{ disk }} -sUUID -ovalue) $endpoint ext4 defaults 0 0" >> /etc/fstab
mount
else
echo 'No device /dev/{{ disk }} exist or Device had partitioned or $endpoint is mounted'
fi
fi
args:
executable: /bin/bash
register: command_result
- debug: msg={{ command_result.stdout }}
screen 非交互执行命令
screen -dSm 10.88.49.185
screen -xS 10.88.49.185 -p0 -X stuff 'mtr 10.88.49.185'$'\n'
本文来自博客园,作者:萱乐庆foreverlove,转载请注明原文链接:https://www.cnblogs.com/leleyao/p/16390576.html