我接管了一台Ubuntu 14.04服务器.它有一个名为"deployer"的用户(与capistrano一起使用),因此需要sudo权限.通过此设置,我可以登录服务器并执行以下操作:
workstation> ssh deployer@myserver
myserver> sudo apt-get install git
myserver> exit
workstation>
Run Code Online (Sandbox Code Playgroud)
我试图找出如何使用Ansible(版本2.0.2.0和python 2.7.3)来创建一个名为"deployer"的用户,并能够使用该id登录到服务器然后sudo-ish之类的事情,如"apt --get install".我的剧本看起来像这样:
---
- hosts: example
become: yes
tasks:
- name: Update apt cache
apt:
update_cache: yes
cache_valid_time: 3600
- group: name=sudo state=present
- name: Add deployer user and add it to sudo
user: name=deployer
state=present
createhome=yes
become: yes
become_method: "sudo"
- name: Set up authorized keys for the deployer user
authorized_key: user=deployer key="{{item}}"
with_file:
- /home/jaygodse/.ssh/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)
运行这个剧本之后,我能够以"deployer"的形式进入机器,(例如ssh deployer @ myserver)但是如果我运行sudo命令,它总是要求我输入我的sudo密码.
我理解"deployer"用户最终必须找到进入visudo用户文件的方式,但是我无法弄清楚要调用哪个神奇的Ansible咒语以便我可以作为部署者ssh进入机器然后运行sudo命令(例如sudo) apt-get install git")没有提示输入sudo密码. …
我正在尝试在我的本地系统上克隆一个 git repo。我已手动完成此操作并且它工作正常,但是当我尝试通过 ansible 执行此操作时,它不起作用
这是我的玩法:
---
- name: Create a directory on root
file:
path: "{{ local_home_dir }}/superb-queue"
owner: "{{ local_user }}"
group: "{{ local_user }}"
state: directory
delegate_to: localhost
- name: Clone the bitbucket queue repo locally
git:
repo: git@bitbucket.org:superbhq/queue-main.git
dest: "{{ local_home_dir }}/superb-queue"
clone: yes
recursive: yes
force: yes
accept_hostkey: yes
version: master
key_file: "{{ local_home_dir }}/.ssh/id_rsa"
become_user: "{{ local_user }}"
delegate_to: localhost
Run Code Online (Sandbox Code Playgroud)
我得到的错误是
ASK [deploy-queue-main : Clone the bitbucket queue repo locally] ******************************************************************************************************************************************
fatal: [10.0.3.219 -> …Run Code Online (Sandbox Code Playgroud)