1、jinjia2模板
hosts.j2,内容如下(主机名和ip地址使用变
量):
Welcome to 主机名!(比如
servera.lab.example.com)
My ip is ip地址.
要求在所有受管主机生成文
件:/etc/welcome.txt。
2、角色部分
根据下列要求,在/root/ansible/roles 中创建
名为apache的角色:
httpd软件包已安装,设为在系统启动时启用
并启动
防火墙已启用并正在运行,并使用允许访问
Web服务器的规则
模板文件index.html.j2已存在,用于创建具
有以下输出的文件
/var/www/html/index.html:
Welcome to HOSTNAME on IPADDRESS
其中,HOSTNAME 是受管节点的完全限定域
名,IPADDRESS则是受管节点的IP地址。
[student@workstation ansible]$ cd roles/
[student@workstation roles]$ ansible-
galaxy init apache
[student@workstation roles]$ vim
apache/tasks/main.yml
#tasks file for apache
- name: install apache
yum:
name: httpd
state: present
- service:
name:"[(item ])”
state: started
enabled: yes
loop: ##定义变量列表,注意缩
进
- httpd
- firewalld
##定义防火墙策略,可以通过帮助去找呀
ansible-doc -I | grep firewalld
- name: firewalld service ## 按题要求
设置防火墙策略
firewalld:
service: http
permanent: yes
immediate: yes ##用来重新加载防
火墙的,如果不重新加载则不生效啊
state: enabled
- name:user templates ##按题要求,使
用模板模块拷贝文件
template:
src:index.html.j2
dest:/var/www/html/index.html
owner: apache
group: apache
mode:'0644'
[student@workstation roles]$ vim
/root/ansible/roles/apache/templates/inde
x.html.j2
Welcome to (( ansible_facts.fqdn ]) on [f
ansible_facts.default_ipv4.address 】
[student@workstation roles]$ vim
/home/student/ansible/newrole.yml
- name: use http role
hosts: webservers
roles:
- apache
[student@workstation ansible]$ ansible-
playbook
/home/student/ansible/newrole.yml##
记得回到ansible目录下执行playbook
[student@workstation ansible]$ curl
http://serverc
Welcome to serverc.lab.example.com
on 172.25.250.12
[student@workstation ansible]$ curl
http://serverd
Welcome to serverd.lab.example.com
on 172.25.250.13
[student@workstation roles]$ vim
/home/student/ansible/newrole.yml
- name: use http role
hosts: webservers
roles:
- apache
[student@workstation ansible]$ ansible-
playbook
/home/student/ansible/newrole.yml##
记得回到ansible目录下执行playbook
[student@workstation ansible]$ curl
http://serverc
Welcome to serverc.lab.example.com
on 172.25.250.12
[student@workstation ansible]$ curl
http://serverd
Welcome to serverd.lab.example.com
on 172.25.250.13