【发布时间】:2016-03-18 23:11:02
【问题描述】:
我正在使用 Ansible 设置 VPS。这是我的 build_server yaml 文件:
---
- hosts: do_server
vars_files:
- vars/defaults.yml
sudo: yes
remote_user: root
roles:
- { role: create-deploy-user, tags: ['create-deploy-user'] }
- hosts: do_server
vars_files:
- vars/defaults.yml
remote_user: "{{ deploy }}"
gather_facts: no
roles:
### Server provisioning roles:
- { role: linux-prereqs, tags: ['linux-prereqs'] }
- { role: postgresql, tags: ['postgresql'] }
- { role: rbenv, tags: ['rbenv'] }
- { role: ruby, tags: ['ruby'] }
- { role: nginx-passenger, tags: ['nginx-passenger'] }
### Site specific roles:
- { role: prepare_site, tags: ['prepare_site'] }
它沿着文件运行,直到它到达 linux-prereqs 角色。在这里我得到一个错误:“缺少成为密码”。
我对此有点困惑,因为我没有为我的“部署”用户设置密码,而是在创建用户的过程中添加了我的 SSH 密钥,所以我肯定应该已经获得授权了吗?我的创建部署用户任务是:
- name: create {{ deploy }} user
user:
name: "{{ deploy }}"
comment: "deploy user"
generate_ssh_key: yes
state: present
shell: /bin/bash
- name: authorize my SSH key to access {{ deploy }}
authorized_key:
key: "{{ lookup('file', '/Users/neil/.ssh/id_rsa.pub') }}"
user: "{{ deploy }}"
state: present
- name: add {{ deploy }} to sudoers
lineinfile: "dest=/etc/sudoers state=present line='{{ deploy }} ALL=(ALL:ALL) ALL'"
- name: create www-data group
group:
name: www-data
state: present
有什么想法吗?
【问题讨论】:
标签: unix ubuntu ssh ansible vps