我的库存文件的内容 -
[webservers]
x.x.x.x ansible_ssh_user=ubuntu
[dbservers]
x.x.x.x ansible_ssh_user=ubuntu
Run Code Online (Sandbox Code Playgroud)
在我的任务文件中,它是共同的角色,即它将在两台主机上运行,但我想在主机Web服务器上运行以下任务,而不是在库存文件中定义的dbservers中运行
- name: Install required packages
apt: name={{ item }} state=present
with_items:
- '{{ programs }}'
become: yes
tags: programs
Run Code Online (Sandbox Code Playgroud)
模块有用还是有其他方法?我怎么能这样做?
据我所知,Ansible的S3模块,它只能立刻得到一个对象.
我的问题是,如果我想一次从S3存储桶下载/获取整个存储桶或多个对象,该怎么办?有什么黑客攻击吗?
我正在使用此任务向文件添加一行:
lineinfile: "dest={{ ansible_env.HOME }}/{{ deploy_dir }}/config/deploy/{{ stage_name }}.rb
insertbefore='# role-based syntax'
line='server "'{{ ip_addr }}'", user: "'{{ user_name }}'", roles: %w{'{{ role }}'}'"
Run Code Online (Sandbox Code Playgroud)
其中添加了这一行:
server '172.16.8.11', user: 'vagrant', roles: %w{'api'}
Run Code Online (Sandbox Code Playgroud)
但我不想要周围的引号api。相反,我想要这个输出:
server '172.16.8.11', user: 'vagrant', roles: %w{api}
Run Code Online (Sandbox Code Playgroud)