2

我是配置管理工具的新手。我想使用 Ansible。

我想将代理设置为几个 GNU/Linux Debian(实际上是几个 Raspbian)。

我想追加

export http_proxy=http://cache.domain.com:3128

/home/pi/.bashrc

我也想追加

Acquire::http::Proxy "http://cache.domain.com:3128";

/etc/apt.conf

我想将 DNS 设置为 IPX1.X2.X3.X4创建一个 /etc/resol.conf文件

nameserver X1.X2.X3.X4

我应该写什么剧本文件?我应该如何将此剧本应用于我的服务器?

4

2 回答 2

3

首先学习一点Ansible 基础知识并熟悉 playbook。基本上,您确保您可以通过 SSH 连接到您的 Raspian 机器(使用密钥),并且 Ansible 在这些机器上调用的用户可以运行sudo。(这是难点。)

简单的一点是为手头的任务创建剧本,文档中有很多指向示例剧本的指针。

如果您真的想在一两个文件中添加一行,请使用该lineinfile模块,尽管我强烈建议您为要送到您的机器的文件创建模板并将其与该template模块一起使用。(lineinfile可能会变得非常混乱。)

于 2013-11-15T18:23:59.340 回答
1

我第二个 jpmens。这是 Ansible 中一个非常基本的问题,也是开始使用文档、教程和示例剧本的好方法。

但是,如果您遇到困难或赶时间,您可以像这样解决这个问题(一切都发生在“ansible master”上):

创建一个这样的角色结构:

cd your_playbooks_directory
mkdir -p roles/pi/{templates,tasks,vars}

现在创建角色/pi/tasks/main.yml:

- name: Adds resolv.conf
  template: src=resolv.conf.j2 dest=/etc/resolv.conf mode=0644

- name: Adds proxy env setting to pi user
  lineinfile: dest=~pi/.bashrc regexp="^export http_proxy" insertafter=EOF line="export http_proxy={{ http_proxy }}"

然后角色/pi/templates/resolv.conf.j2:

nameserver {{ dns_server }}

然后是角色/pi/vars/main.yml:

dns_server: 8.8.8.8
http_proxy: http://cache.domain.com:3128

现在在你的剧本根目录制作一个顶级剧本来应用角色,并将其命名为 site.yml :

- hosts : raspberries
  roles:
    - { role: pi }

您可以使用以下方式应用您的剧本:

ansible-playbook site.yml

假设您的机器在覆盆子组中。

祝你好运。

于 2013-11-15T21:01:03.193 回答