通过实例学习Ansible系列(19)中正确使用drop-if-exist命令
发布时间
阅读量:
阅读量
在编程世界中,数据库建表过程最常被用来作为drop-if-exist函数的应用案例。
在实际操作中,默认情况下若删除已存在的对象可能引发错误
比如说在创建数据库实例时
首先会删除原有表
然后创建新的数据库
这种行为与其说是一种具体的命令使用
与其说是一种特定的操作方式
其实更接近于ansible提供的幂等性操作
不管原表是否存在
用户只需关注最终的目标状态即可但在实际运行过程中会遇到一个问题:
当第一次执行该命令时
若原表不存在会导致"删除不存在对象"的操作异常出现因此这种情况下就需要谨慎处理了
这种机制不仅适用于数据库操作
同样适用于kubernetes中的namespace、clusterrolebinding等命名空间配置
使用示例
比如以下这种方式就是一个典型的clusterrolebinding实现:首先执行删除操作后再进行创建操作。具体原因在于,在没有预先执行删除操作的情况下(即在已有clusterrolebinding存在时),创建操作将无法成功完成。然而,在首次运行或运行环境中当前未有clusterrolebinding存在的情况下,则会导致删除任务出现错误;不过通过配置ignore_errors参数则可同时处理这两种情况
- name: delete clus
全部评论 (0)
还没有任何评论哟~
