目录
前置条件:
(1) 管理节点安装ansible
(2) 设置ssh免密登录
(3) 管理主机定义列表清单文件
此实验准备:
上传nginx源码包到/opt目录
1.编写playbook剧本
Playbook的语法:
playbook使用yaml语法格式,后缀可以是yaml,也可以是yml
[root@localhost ansible]# vim install_nginx.yml
---
- hosts: 192.168.100.102
remote_user: root
tasks:
- name: "关闭并禁用防火墙"
service: name=firewalld state=stopped enabled=no
- name: "编写yum仓库"
yum_repository: name=local description="local" baseurl=file:///mnt enabled=1 gpgcheck=0 file=local
- name: "挂载镜像到mnt目录"
mount: src=/dev/cdrom path=mnt fstype=iso9660 state=mounted
- name: "安装依赖"
yum: name=pcre-devel,zlib-devel
- name: "创建程序用户"
user: name=nginx shell=/sbin/nologin
- name: "上传nginx源码包到远程主机"
copy: src=/opt/nginx-1.12.0.tar.gz dest=/opt
- name: "解压nginx源码包并安装nginx"
shell: tar xf /opt/nginx-1.12.0.tar.gz -C /usr/src/ && cd /usr/src/nginx-1.12.0 && ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make&&make install
- name: "优化启动路径"
file: src=/usr/local/nginx/sbin/nginx path=/usr/local/sbin/nginx state=link
tags: ln
- name: "更改html页面"
shell: echo -e "<h1>This is nginx installed in ansible mode</h1>" >/usr/local/nginx/html/index.html
tags: html
- name: "关闭并禁用防火墙"
service: name=firewalld state=stopped enabled=no
- name: "启动nginx"
shell: nginx
解释说明:
---
- hosts: 定义远程主机
remote_user: 指定远程主机的用户tasks: ##任务集
语法检测:
[root@localhost ansible]# ansible-playbook --syntax-check install_nginx.yml
#显示剧本名表示语法正确
2.执行剧本:
[root@localhost ansible]# ansible-playbook install_nginx.yml
3.查看远程主机nginx端口
[root@localhost ansible]# ansible 192.168.100.102 -m shell -a "netstat -anput |grep nginx"