knife delete命令无法删除奇怪的节点

时间:2017-01-26 14:47:15

标签: chef knife knife-solo

我使用bootstrap命令出错,并且我知道我有一个名为-i的节点,我想删除该节点:

knife node list
-i

但是当我尝试从knife运行delete命令时,这就是结果:

knife node delete -i

Error: invalid option: -i
USAGE: knife node delete [NODE[,NODE]] (options)
    -s, --server-url URL             Chef Server URL
        --chef-zero-host HOST        Host to start chef-zero on
        --chef-zero-port PORT        Port (or port range) to start chef-zero on.  Port ranges like 1000,1010 or 8889-9999 will try all given ports until one works.
    -k, --key KEY                    API Client Key
        --[no-]color                 Use colored output, defaults to enabled
    -c, --config CONFIG              The configuration file to use
        --config-option OPTION=VALUE Override a single configuration option
        --defaults                   Accept default values for all questions
    -d, --disable-editing            Do not open EDITOR, just accept the data as is
    -e, --editor EDITOR              Set the editor to use for interactive commands
    -E, --environment ENVIRONMENT    Set the Chef environment (except for in searches, where this will be flagrantly ignored)
        --[no-]fips                  Enable fips mode
    -F, --format FORMAT              Which format to use for output
        --[no-]listen                Whether a local mode (-z) server binds to a port
    -z, --local-mode                 Point knife commands at local repository instead of server
    -u, --user USER                  API Client Username
        --print-after                Show the data after a destructive operation
    -V, --verbose                    More verbose output. Use twice for max verbosity
    -v, --version                    Show chef version
    -y, --yes                        Say yes to all prompts for confirmation
    -h, --help                       Show this message

所以我无法删除此节点。

有什么建议吗?

3 个答案:

答案 0 :(得分:3)

使用某种黑魔法和刀具执行程序,您可以从命令行中删除:

class Donation(models.Model):
    amount_id = models.CharField(max_length=12, unique=True, editable=False)
    date_issued=models.DateField(auto_now_add=True)
    description=models.TextField(blank=True, null=True)

    contributor_group = models.ForeignKey(Organization, null=True, blank=True, on_delete=models.CASCADE)
    contributor_individual = models.ForeignKey(Individual, null=True, blank=True, on_delete=models

这将循环遍历名称以i结尾的所有节点,因此如果你有一堆它们可能需要一些时间,那么如果它的名称正好是knife exec -E "nodes.search('name:*i') { |n| n.destroy if n.name == '-i' }" ,它将破坏节点。

如果它是引导程序的结果,您也可以拥有一个客户端,使用-i代替clients应该这样做。

答案 1 :(得分:0)

您可以使用网络界面将其删除。 我从命令行尝试了同样的功能,但没有工作。

答案 2 :(得分:0)

您可以使用批量删除选项将其删除。 这样的事情会起作用

  

刀节点批量删除“ ^-[a-z] *”