nginx 官方下载
[root@ansible roles]# tree yngx yngx ├── defaults ├── files │ ├── blog.conf │ ├── edusoho-8.2.17.tar.gz │ ├── nginx.repo │ ├── WeCenter_v3.1.9.zip │ └── wordpress-5.0.2-zh_CN.tar.gz ├── handlers │ └── main.yml ├── tasks │ ├── load.yml │ ├── main.yml │ └── main.yml.bak ├── template └── vars └── main.yml
变量
[root@ansible yngx]# cat vars/main.yml user: www group: www dir: /code/
官方yum源
[root@ansible files]# cat nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
任务剧本
[root@ansible yngx]# cat tasks/main.yml - name: cp ngxconf copy: src=blog.conf dest=/etc/nginx/conf.d notify: restart ngx tags: restart ngx - name: cp repo copy: src=nginx.repo dest=/etc/yum.repos.d/ - name: ingx yum: name=nginx state=installed - name: chang ngx user shell: sed -i '/^user/c user www;' /etc/nginx/nginx.conf - include: load.yml tags: load - name: start ngx service: name=nginx state=started enabled=yes
下载产品
[root@ansible yngx]# cat tasks/load.yml - name: load pag get_url: url={{ item }} dest=/code/ with_items: - https://cn.wordpress.org/wordpress-5.0.2-zh_CN.tar.gz - http://ahdx.down.chinaz.com/201605/WeCenter_v3.1.9.zip - http://download.edusoho.com/edusoho-8.2.17.tar.gz 解压 - name: tar 1 unarchive: src=files/{{ item }} dest=/code/ owner={{ user }} group={{ group }} copy=yes with_items: - wordpress-5.0.2-zh_CN.tar.gz - edusoho-8.2.17.tar.gz #- WeCenter_v3.1.9.zip tags: load
nginx配置文件
[root@ansible files]# cat blog.conf server { listen 80; server_name blog.oldboy.com; root /code/wordpress; index index.php index.html; location ~ .php$ { root /code/wordpress; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
安装php7.2剧本
[root@ansible roles]# tree yphp
yphp
├── files
├── handlers
│ └── main.yml
├── tasks
│ └── main.yml
└── vars
[root@ansible tasks]# cat main.yml
- name: install three epel 1 yum: name=https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm state=installed - name: install three epel 2 yum: name=https://mirror.webtatic.com/yum/el7/webtatic-release.rpm state=installed - name: chang www 1 shell: sed -i '/^user/c user = www' /etc/php-fpm.d/www.conf - name: chang www shell: sed -i '/^group/c group = www' /etc/php-fpm.d/www.conf - name: del pag yum: name={{ item }} state=absent with_items: - php-mysql-5.4 - php - php-fpm - php-common - name: insatll php yum: name={{ item }} state=latest with_items: - php72w - php72w-cli - php72w-common - php72w-devel - php72w-embedded - php72w-gd - php72w-mbstring - php72w-pdo - php72w-xml - php72w-fpm - php72w-mysqlnd - php72w-opcache - name: start php service: name=php-fpm state=started enabled=yes
用户目录,基础任务
[root@ansible roles]# tree base/
base/
├── defaults
├── tasks
│ ├── dir.yml
│ ├── main.yml
│ └── user.yml
└── vars
└── main.yml
[root@ansible base]# cat vars/main.yml user: www group: www appdir: /code
[root@ansible tasks]# cat dir.yml
- name: create {{ dir }}
file: path=/code state=directory
[root@ansible tasks]# cat dir.yml
- name: create {{ dir }}
file: path=/code state=directory
[root@ansible tasks]# cat user.yml
- name: create group
group: name={{ group }} gid=777 system=yes
- name: create user
user: name={{ user }} uid=777 system=yes group={{ group }}
[root@ansible tasks]# cat main.yml
- include: dir.yml
- include: user.yml
命令行可执行 剧本里定义的 tags
ansible-playbook -C -t cp lnmp.yml