我想在我的所有别名上编辑所有SSL配置。我找到了一些资源来做到这一点,到目前为止我的代码是
$AdminTask modifySSLConfig {-alias NodeDefaultSSLSettings -sslProtocol TLSv1.2}
$AdminConfig save
我希望能够在我的服务器上找到的所有别名上执行此操作,但我不知道如何
如何做到这一点的任何想法或线索将有所帮助。谢谢。
编辑:
我现在可以使用此代码找到所有SSL配置
[$AdminTask listSSLConfigs {-scopeName (cell):Node01Cell:(node):Node01}
我的下一个问题是,我怎么能从那里提取别名字符串?我只需要别名,以便我可以在另一个变量上替换它,这样我就可以使用foreach循环了
$AdminTask modifySSLConfig {-alias ${aliasvariablegoeshere} -sslProtocol TLSv1.2}
编辑:
set hold [list [$AdminTask listSSLConfigs {-scopeName (cell):Node01Cell:(node):Node01}]]
foreach aliasList [$AdminConfig show $hold] {
foreach aliasName [$AdminConfig show $aliasList] {
set testTrim "alias "
set test5 [string trimleft $aliasName $testTrim]
$AdminTask modifySSLConfig {-alias ${test5} -sslProtocol TLSv1.2}
}
}
$AdminControl save
我已经完成了这个并且只能提取别名并且能够将它放在我想要的变量上,但它给了我一个无效的参数错误。任何想法为什么会发生这种情况,我将如何解决这个问题?
您可以使用以下命令列出所有SSL配置:
AdminTask.listSSLConfigs('[-all true]')
供JACL使用:
$AdminTask listSSLConfigs {-all true}
然后迭代列表并更改您需要的任何内容。您可以提供范围,例如:-all
,而不是-scopeName (cell):localhostNode01Cell:(node):localhostNode01
有关SSLConfig命令的详细信息,请检查SSLConfigCommands command group for the AdminTask object
更新:
一般来说,这应该工作:
foreach aliasList [$AdminTask listSSLConfigs {-scopeName (cell):PCCell1:(node):Node1}] {
puts $aliasList
set splitList [split $aliasList " "]
puts $splitList
set aliasname [lindex $splitList 1]
puts $aliasname
$AdminTask modifySSLConfig { -alias $aliasname -sslProtocol TLSv1.2 }
}
但我不能使$AdminTask
正确解决$aliasname
param ...强烈建议你切换到jython。 ;-)
我已经设法让它工作,似乎无论我做什么,我不能使别名,我必须成为一个有效的参数,所以我做了整个事情作为字符串命令。这是我的代码。
foreach aliasList [$AdminConfig list SSLConfig] {
foreach aliasName [$AdminConfig show $aliasList alias] {
set strTrim "alias "
set strFinal [string trimleft $aliasName $strTrim]
set command "-alias $strFinal -sslProtocol TLSv1.2"
$AdminTask modifySSLConfig $command
puts saved
}
}
$AdminConfig save