从前(我认为在1.9版之前),我们可以在命令行中将 -s 用于sudo。现在不起作用。我在Ubuntu 18.04上使用2.85版。
Public Class MyUserControl
Public Event MyErrorEvent(Ex as Exception)
Public Sub RaiseAnErrorSub(Ex as Exception)
RaiseEvent MyErrorEvent(Ex)
End Sub
End Class
Public Module
Public Sub DoSomething()
'Performs an operation
'An Error could happen here
'Need to raise the usercontrol's event at this point....
RaiseAnErrorSub(Ex) 'How can this call the usercontrol of this module?
End Sub
End Module
-这会导致错误,但没有特权,而是$ ansible all -m apt -a “name=httpd state=latest”
ERROR! Extraneous options or arguments
-这曾经很久了。同样,不是$ ansible -s all -m apt -a “name=httpd state=latest”
尝试了-s
和-b
-都给出了-错误!无关的选项或参数
也尝试了--become
-同样的错误
此命令行语法是否错误-所有这些随时间变化了吗?
我们该如何解决-仅使用剧本?
更新1
报价问题副本从ms单词中粘贴-单词以某种方式将其转换为--就是这种转换的过程。因此,只需使用记事本即可。
现在用--become-user=root
和“ ”
选项替换了" "
。
尝试了它进一步
-b
但是失败: [警告]:找不到合适的人选。改用apt-get
ansible -b all -m apt -a "name=httpd state=latest"
不确定此错误的含义-“安装'httpd'失败:E:包'httpd'没有候选安装程序”。目标计算机是ubuntu 18.04
此命令有效
apache2(对于debian)与-b(对于sudo):
x.x.x.x | FAILED! => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"cache_update_time": 1570925983,
"cache_updated": false,
"changed": false,
"msg": "'/usr/bin/apt-get -y -o \"Dpkg::Options::=--force-confdef\" -o \"Dpkg::Options::=--force-confold\" install 'httpd'' failed: E: Package 'httpd' has no installation candidate\n",
"rc": 100, ...
答案 0 :(得分:2)
问题在于,Ubuntu没有名为httpd
的程序包,该程序包在以下错误消息中进行了说明:failed: E: Package 'httpd' has no installation candidate
Red Hat发行版家族(RHEL,CentOS和Fedora)将其称为httpd
,因为从技术上讲,这就是upstream project name is,即Debian发行版家族(Ubuntu属于其后代)之所以将其称为apache2
是因为在LAMP堆栈的鼎盛时期,httpd
服务通常被简称为“ Apache”,而我们目前的主要版本为2。
答案 1 :(得分:1)
我认为您只需将引号替换为简单的双引号或单引号即可。
ansible all -m apt -a "name=httpd state=latest"
或
ansible all -m apt -a 'name=httpd state=latest'
您的shell可能无法识别您正在使用的打开/关闭引号,因此将“name=httpd
作为-a
选项的参数,并且不知道如何处理{ {1}}。
答案 2 :(得分:1)
如上所述,httpd在Ubuntu中称为apache2,因此您可以使用以下命令。
ansible all -m apt -a "name=apache2 state=latest"