Vagrant ansible playbook语法有问题
我刚刚开始使用ansible,我发现playbook语法在提供一个流浪文件时遇到了麻烦。下面是我的ansible剧本Vagrant ansible playbook语法有问题,vagrant,ansible,ansible-playbook,Vagrant,Ansible,Ansible Playbook,我刚刚开始使用ansible,我发现playbook语法在提供一个流浪文件时遇到了麻烦。下面是我的ansible剧本 --- - hosts: all tasks: - name: update apt cache apt: update_cache=yes become: yes become_method: sudo - name: create a directory for projects file: path=/home/projects
---
- hosts: all
tasks:
- name: update apt cache
apt: update_cache=yes
become: yes
become_method: sudo
- name: create a directory for projects
file: path=/home/projects
state=directory
- name: create a directory for our project
file: path=/home/projects/myproject
state=directory
- name: install git
apt: name=git
become: yes
become_method: sudo
- name: initiaite git
command: git init
args:
chdir: /home/projects/myproject
- name: pull git
git: repo=https://github.com/path/to/repo.git
dest=/home/projects/myproject
- name: install mysql
apt: name=mysql-server
become: yes
become_method: sudo
- name: create mysql db for project
mysql_db: name=mydb
encoding=utf8
- name: create user and assign privileges
mysql_user: name=foo
password=bar
priv=mydb.*,GRANT
- name: install pip
apt: name=pip
become: yes
become_method: sudo
- name: install virtualenv
pip: name=virtualenv
become: yes
become_method: sudo
- name: Create the initial virtualenv
command: virtualenv /home/projects/myproject/venv -p python2.7 creates="/home/projects/myproject/venv"
- name: install requirements
pip:
requirements=/home/projects/myproject/requirements.txt
virtualenv=/home/projects/bankproblem/venv
我的问题是在第四个任务中,我试图安装git
ERROR: Syntax Error while loading YAML script, playbook.yml
Note: The error may actually appear before this position: line 21, column 1
become_method: sudo
^
Ansible failed to complete successfully. Any error output should be
visible above. Please fix these errors and try again.`
有人请给我解释一下发生了什么事
我的vagrant文件
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "trusty-server-cloudimg-amd64-vagrant-disk1.box"
config.vm.box_url = "https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64- vagrant-disk1.box"
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.provision :ansible do |ansible|
ansible.playbook = "playbook.yml"
end
end
顺便说一句,请忽略剧本的天真写法,因为我的初衷是简单地开始。就是这样
git: repo=https://github.com/path/to/repo.git
dest=/home/projects/myproject
我需要使用
git: repo=https://github.com/path/to/repo.git dest=/home/projects/myproject
我真傻!现在没有语法错误了。很奇怪。你能删除
been\u方法:sudo
行看看会发生什么吗?(sudo是默认的been方法)。@leucos这太傻了。请参见答案嗯,好吧,我被困在了been_方法行:)是的,如果使用'git:>'(要避免)或冒号语法(更可取),YAML可以执行多行。比如@leucos,看看你是否知道这是怎么回事