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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~