这样做最干净的方法是什么?尝试使用 users 模块将用户添加到 sudo 组,但 Ansible 报告找不到 sudo 组。
我最近开始使用 OSX 来管理我的 linux 机器,所以我对在 OSX 上使用 linux 程序非常陌生。
我想使用带有 Ansible 的 Vagrant 来引导我的开发环境,所以我需要先安装它。
但是我发现了两种在 OSX 上安装 Ansible 的方法:
点子:http : //devopsu.com/guides/ansible-mac-osx.html
自制:https : //github.com/Homebrew/homebrew/blob/master/Library/Formula/ansible.rb
我已经使用 pip 方法安装了 Ansible,因为我首先遇到了该指南。
这两种方法的优缺点是什么?我应该使用 pip 还是 homebrew 安装 Ansible?
我发现轻松安装会干扰自制软件:
Warning: /usr/bin occurs before /usr/local/bin
This means that system-provided programs will be used instead of those
provided by Homebrew. The following tools exist at both paths:
easy_install
easy_install-2.7
Run Code Online (Sandbox Code Playgroud) 我无法将用户添加到多个组,我不断收到 msg: 这个模块需要 key=value 参数。
这是我正在尝试的一段代码:
- name: make a new user
user: name=user
state=present
groups="group1", "group2", "group3"
comment="comment"
Run Code Online (Sandbox Code Playgroud)
文档说: Groups= 将用户放入此逗号分隔的组列表中。当设置为空字符串 ('groups=') 时,用户将从除主要组之外的所有组中删除。
我尝试过使用“group”、“group”和不带冒号的方法,但仍然出现相同的错误。
我目前使用 squid 作为本地网络的代理服务器,但我对它并不完全满意。Nginx 是否也适合用作本地网络上的代理服务器?它是否被积极用于此目的?
正如杰罗姆所说,
您还需要添加一个流程管理器;例如监视器或主管。这是因为 Docker 将监视一个进程。如果需要多个进程,则需要在顶层添加一个来处理其他进程。换句话说,您正在将一个精益简单的容器变成更复杂的东西。
我并不完全清楚为什么您需要在容器内使用进程管理器。
那么有人可以向我解释一下,在容器内安装进程管理器有什么好处?让 systemd 或 upstart 处理进程而不是向容器添加额外的服务不是更好吗?
似乎 Vagrant 不允许我使用 Vmware 在 Windows 上自动配置 Ansible 配置器。
我不确定 Ansible 是否必须安装在主机上(在我的情况下为 Windows)或来宾上。
我尝试使用以下 shell 脚本自动配置来宾机器:
#!/usr/bin/env bash
apt-get update -y
apt-get install openssh-client openssh-server python-pycurl software-properties-common python-software-properties nano -y
sleep 2
echo "deb http://ppa.launchpad.net/rquillo/ansible/ubuntu precise main" >> /etc/apt/sources.list
echo "deb-src http://ppa.launchpad.net/rquillo/ansible/ubuntu precise main" >> /etc/apt/sources.list
sleep 2
apt-get install ansible -y
Run Code Online (Sandbox Code Playgroud)
安装 Ansible 非常好,但我的命令提示符告诉我以下消息:
The executable ansible-playbook Vagrant is trying to run was not found in the %PATH% variable
Run Code Online (Sandbox Code Playgroud)
在检查来宾并尝试执行“ansible-playbook”后,它完全正确地识别了该命令。
然后我想也许 Vagrant 在来宾的路径环境变量中需要“ansible-playbook”。
我运行以下命令将“ansible-playbook”添加到我的 linux 客户机上的 PATH 变量中。
export …
Run Code Online (Sandbox Code Playgroud) 尝试使用 apt 在 playbook 中安装某些依赖项时,我收到“msg:无法锁定 apt 以进行独占操作”,而 vagrant 用户。我怀疑它告诉我这个是因为它在运行任务时无法验证 vagrant 用户。
这是我正在使用的角色声明。
- name: ruby installer
hosts: all
sudo: True
sudo_user: vagrant
roles:
- ruby
Run Code Online (Sandbox Code Playgroud)
这是失败的任务:
- name: Install ruby building dependencies
apt: name={{ item }}
state=installed
update_cache=yes
with_items:
- dependency
Run Code Online (Sandbox Code Playgroud)
当删除“update_cache=yes”并重新运行剧本时,我得到:E:无法锁定管理目录(/var/lib/dpkg/),你是 root 吗?
显然,当用 root 运行它时它工作得很好,但由于一些 ruby(rvm,rbenv 特定)任务,我需要它在不同的用户下运行,而不是 root。
运行我的剧本时如何正确验证流浪用户?有人可以指出我正确的方向吗?