2016-06-11 66 views
1

我正在使用ansible启动aws实例。 aws实例上有一个名为“ubuntu”的默认用户,我需要设置新用户。 Here是手动设置用户的指南,但有没有什么办法通过ansible自动完成?在实例启动时创建ubuntu用户ansible aws

+1

检查这个脚本,你需要在运行此脚本同样的事情你的剧本https://gist.github.com/martinhbramwell/4223476 – error2007s

回答

3

下面是另一个版本,这一个你避免使用外壳模块,而是使用原生用户模块,用于authorized_keys的

--- 
- hosts: "{{ host_name }}" 
    become: yes 
    become_method: sudo 
    tasks: 
    - name: Create user deploy 
    user: name=deploy comment="The Deploy user" group=admin shell=/bin/bash 
    - name: Copy deploy's authorized_keys file 
    authorized_key: user=deploy key="your_authorized_key_file_name" 
0

这里有一个例子剧本我写的正是这么做的 -

--- 
- hosts: "{{ host_name }}" 
    become: yes 
    become_method: sudo 
    tasks: 
    - name: Create user deploy 
    shell: "adduser --disabled-password --gecos \"\" deploy10" 
... 

如果需要,您可以创建这个剧本略有改动密码的用户,然后将authorized_keys的部分到这个剧本。如果您需要任何帮助,请告诉我。

+1

你应该在Ansible作为最后的手段炮轰出局。使用Ansible的模块可以让您更轻松地使您的剧本/角色幂等,而无需使用大量的欺骗或注册和检查任务输出。 – ydaetskcoR

+0

你是对的,我应该使用用户模块..我已经这样写了这个游戏,因为我们特别需要使用'--disabled-password'标志,我找不到一种方法来做到这一点与用户模块。无论如何感谢提示。 –