我是Ansible的新手。以下是我的要求,
为此,我应该使用playbooks还是ad-hoc命令? 我很乐意在ansible中使用ad-hoc模式,因为我害怕Playbooks。
提前致谢
答案 0 :(得分:1)
您必须编写几个ad hoc命令才能完成此任务。我认为没有任何理由不在这里使用剧本。你会想要learn about playbooks,但是学习它比ad hoc命令要多得多。 sudo部分由您使用-b
选项“成为”使用sudo来为您处理。 Ansible负责通过ssh登录。
您要使用的操作在此类安装中很常见,您可以从源代码安装内容,yum
,get_url
,unarchive
,{ {1}}。举个例子,这是一个非常类似于你需要的过程,演示在RedHat系列系统上从源代码安装redis:
service
您可以在- name: install yum dependencies for redis
yum: name=jemalloc-devel ... state=present
- name: get redis from file server
get_url: url={{s3uri}}/common/{{redis}}.tar.gz dest={{tmp}}
- name: extract redis
unarchive: copy=no src={{tmp}}/{{redis}}.tar.gz dest={{tmp}} creates={{tmp}}/{{redis}}
- name: build redis
command: chdir={{tmp}}/{{redis}} creates=/usr/local/bin/redis-server make install
- name: copy custom systemd redis.service
copy: src=myredis.service dest=/usr/lib/systemd/system/
# and logrotate, redis.conf, etc
- name: enable myredis service
service: name=myredis state=started enabled=yes
文件中定义自定义变量,例如tmp
和redis
。您还需要一个global_vars/all.yaml
文件来定义您的主机和角色。
你可以用以下内容调用剧本:
site.yaml
这可以像在一个节点上一样轻松地在38个节点上运行。
答案 1 :(得分:1)
你想要一本剧本来做这件事。在最简单的层面上,既然你提到了拆包,它可能看起来像这样:
else