Команда удаления ножа не может удалить странный узел

Я сделал ошибку с командой начальной загрузки и знаю, что у меня есть узел с именем -i, и я хотел бы удалить этот узел:

knife node list
-i

Но когда я пытаюсь запустить команду удаления из ножа, это результат:

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

Поэтому я не могу удалить этот узел.

Любое предложение?


person Robert    schedule 26.01.2017    source источник
comment
Вы пробовали knife node delete "-i". Поскольку я надеюсь, что это разовая проблема, вы можете просто использовать веб-интерфейс.   -  person StephenKing    schedule 26.01.2017
comment
Да. Я пробовал и ничего. Я пытался из командной строки.   -  person Robert    schedule 26.01.2017


Ответы (3)


С помощью какой-то черной магии и ножа exec вы можете удалить из командной строки вот так:

knife exec -E "nodes.search('name:*i') { |n| n.destroy if n.name == '-i' }"

Это зациклит все узлы с именем, оканчивающимся на i, поэтому может потребоваться некоторое время, если у вас их куча, а затем он уничтожит узел, если его имя точно -i.

Если это результат начальной загрузки, у вас также может быть клиент, использование clients вместо nodes должно подойти.

person Tensibai    schedule 26.01.2017

Вы сможете удалить его с помощью веб-интерфейса. Я пробовал то же самое из командной строки, не сработало.

person ann99    schedule 26.01.2017

Вы можете удалить его с помощью опции массового удаления. что-то вроде этого будет работать

Массовое удаление узла ножа "^-[a-z]*"

person T.K    schedule 06.12.2018