Ansible 初学问题

2017-03-03 02:58:41 +08:00
 dynaguy
想学 Ansible. 有个具体问题请教老司机:

有一个 Ubuntu 16.04 Desktop (A),  PXE preseed 安装的。安装好后的状态是:
1.  openssh-server 已装并运行;
2. 有一个 sudoer 用户“ admin ”, 密码预设好了。登录后可以 sudo
3.  SSH server 默认不容许 root 直接登录

现在我想用 ansible 对这台机器部署一些应用程序,首先要让 ansible 能用 root 自动登录 ssh ,或用 admin 登录然后 sudo (理解的对吗?)这要我手动先做把 puclic key 弄好(传到 A 上)。把这两个搞定才可以继续 ansible...

懒人问题来了:这步能自动实现吗?一台机器我忍了,太多了就烦了。
5022 次点击
所在节点    Ansible
7 条回复
yangqi
2017-03-03 04:38:29 +08:00
在 ansible 里用 admin 密码登录然后自动配置 ssh key 等,然后把密码登录禁用
ETiV
2017-03-03 05:08:37 +08:00
通常来讲,传统的 VPS 这一步不能自动实现

但是如果在创建 VPS 的时候,让你填入了 SSH PUBKEY ,那就可以直接免密码用私钥登录。

然后在 hosts 里指定 ip 、端口、用户名就行了……
cxbig
2017-03-03 05:19:33 +08:00
1. 用密码不太安全
2. admin 登录后能用 sudo 就可以了,在 task 里加(旧版 sudo: yes ,新版 change: yes )
3. 你的本机是什么系统?有没有 ssh-copy-id 命令?用这个命令上传公钥,再配置本地.ssh/config 和 ansible.cfg
参考: https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2
dynaguy
2017-03-03 06:52:48 +08:00
看来手动上传公钥是不可避免的。

我在想能不能在 PXE 安装时就把公钥添加上(加到 /home/admin/.ssh/authorized_keys ),这样 anisble 就可以直接用了,省去上传公钥这步。
clino
2017-03-03 07:40:22 +08:00
写一个脚本来专门做这个事情,或者如果只是 admin 帐号的配置,就用 ssh-copy-id 不就好了
artandlol
2017-03-03 10:54:04 +08:00
用 centos 吧
cxbig
2017-03-06 23:48:09 +08:00
#3 说错了,新版 Ansible 用 become: true 切换到 sudo ,不是 change

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/344494

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX