Ansible playbook在主机上运行时出错-主机:
在main.yml中编写一个任务,使用ansible中的服务模块在服务“ssh”中停止和启动服务Ansible playbook在主机上运行时出错-主机:,ansible,Ansible,在main.yml中编写一个任务,使用ansible中的服务模块在服务“ssh”中停止和启动服务 --- - hosts: localhost become: true become_method: sudo tasks: - name: stop service service: name: ssh state: stopped - name: start service service: na
---
- hosts: localhost
become: true
become_method: sudo
tasks:
- name: stop service
service:
name: ssh
state: stopped
- name: start service
service:
name: ssh
state: started
当运行时,它给出以下错误
[WARNING]: Unable to parse /projects/challenge/localhost as an inventory source
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that
the implicit localhost does not match 'all'
ERROR! unexpected parameter type in action: <class 'ansible.parsing.yaml.objects.AnsibleSequence'>
The error appears to be in '/projects/challenge/fresco_module/tasks/main.yml': line 2, column 3, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be
---
- hosts: localhost
^ here
[警告]:无法将/projects/challenge/localhost解析为清单源
[警告]:未分析任何资源清册,只有隐式localhost可用
[警告]:提供的主机列表为空,只有本地主机可用。注意
隐式localhost与“all”不匹配
错误!作用中的意外参数类型:
错误出现在“/projects/challenge/fresco_module/tasks/main.yml”中:第2行第3列,但可能是
根据确切的语法问题,在文件中的其他位置。
令人不快的界线似乎是
---
-主机:本地主机
^这里
首先,您应该能够对本地主机执行SSH。
你可以试试
ssh user@localhost date
您可以创建一个hosts文件,将其命名为hosts
,并向其中添加以下内容
[localhost]
localhost
[localhost:vars]
ansible_ssh_user=user
ansible_ssh_pass=pass
ansible_sudo_pass=sudopass
并以同样的方式运行剧本
ansible-playbook -i hosts main.yml
首先,您应该能够对localhost执行SSH。 你可以试试
ssh user@localhost date
您可以创建一个hosts文件,将其命名为hosts
,并向其中添加以下内容
[localhost]
localhost
[localhost:vars]
ansible_ssh_user=user
ansible_ssh_pass=pass
ansible_sudo_pass=sudopass
并以同样的方式运行剧本
ansible-playbook -i hosts main.yml
使用命令模块可以停止和启动服务,使用
sudo服务ssh-stop
和sudo服务ssh-start
达到了我的目的。
无法使用服务模块执行此操作,仍然不知道使用命令模块能够停止和启动服务,使用
sudo service ssh stop
和sudo service ssh start
达到了我的目的。
无法使用服务模块执行此操作,仍然不知道能否共享用于运行给定playbook.ansible-playbook main.yml的命令能否共享用于运行给定playbook.ansible-playbook main.ymlSince
的命令只有隐式本地主机可用
,只使用本地
连接,因此不涉及ssh连接。像您这样重新定义localhost对于使用ssh对localhost进行测试来说是很好的,但这并不是必需的,在这种特殊情况下也不会解决OP的问题。由于某些原因,他的剧本并没有得到验证,他在问题中并没有给出。是的,只有本地主机可用,不需要ssh。以某种方式使用角色运行playbook。由于只有隐式本地主机可用
,因此将只使用本地
连接,因此不涉及ssh连接。像您这样重新定义localhost对于使用ssh对localhost进行测试来说是很好的,但这并不是必需的,在这种特殊情况下也不会解决OP的问题。由于某些原因,他的剧本并没有得到验证,他在问题中并没有给出。是的,只有本地主机可用,不需要ssh。不知何故,他设法使用角色运行剧本。