ansible-playbook roles编写lnmp剧本

这篇具有很好参考价值的文章主要介绍了ansible-playbook roles编写lnmp剧本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

集中式编写lnmp剧本

执行

分布式编写lnmp剧本

一定要设置ssh免交互

 nginx

mysql

php

 执行文章来源地址https://www.toymoban.com/news/detail-622490.html


集中式编写lnmp剧本

vim /etc/ansible/lnmp.yml
- name: lnmp play
  hosts: dbservers
  remote_user: root
 
  tasks:
  - name: perpare condifure
    copy: src=/etc/yum.repos.d/nginx.repo dest=/etc/yum.repos.d/nginx.repo
  - name: install nginx
    yum: name=nginx state=latest
  - name: start nginx
    service: name=nginx state=started enabled=yes
    
  - name: install mysql
    yum: name=mysql57-community-release-el7-10.noarch.rpm state=latest
  - name: modify file
    replace:
      path: /etc/yum.repos.d/mysql-community.repo
      regexp: 'gpgcheck=1'
      replace: 'gpgcheck=0'
  - name: install mysql-community-server
    yum: name=mysql-community-server state=latest
  - name: start mysql
    service: name=mysqld state=started enabled=yes
 
  - name: add yum file
    command: 'wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm -P /etc/yum.repos.d' - name: rpm epel
    command: 'rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm'
  - name: rpm el7
    command: 'rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm'
  - name: install php
    command: 'yum install -y 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-fpm
    service: name=php-fpm state=started  enabled=yes
  - name: copy configure
    copy: src=/usr/local/nginx/conf/nginx.conf dest=/etc/nginx/conf.d/default.conf
  - name: restart nginx
    service: name=nginx state=started enabled=yes

执行

ansible-playbook lnmp.yml

分布式编写lnmp剧本

一定要设置ssh免交互

ssh-keygen -t rsa
sshpass -p’zxr123‘ ssh-copy-id  192.168.110.60 
mkdir /etc/ansible/roles/httpd/{files,templates,tasks,handlers,vars,defaults,meta} -p
mkdir /etc/ansible/roles/mysql/{files,templates,tasks,handlers,vars,defaults,meta} -p
mkdir /etc/ansible/roles/php/{files,templates,tasks,handlers,vars,defaults,meta} -p
 
touch /etc/ansible/roles/httpd/{defaults,vars,tasks,meta,handlers}/main.yml
touch /etc/ansible/roles/mysql/{defaults,vars,tasks,meta,handlers}/main.yml
touch /etc/ansible/roles/php/{defaults,vars,tasks,meta,handlers}/main.yml

 nginx

cd /etc/ansible/roles/nginx/files

index.php  nginx.repo
 vim /etc/ansible/roles/nginx/files/index.php
<?php
phpinfo();
?>

 vim /etc//ansible/roles/nginx/files/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

 vim /etc/ansible/roles/nginx/main.yml
- include: "init.yml"

- name: copy nginx repo
  copy: src=nginx.repo dest=/etc/yum.repos.d/
- name: install nginx
  yum: name=nginx state=latest
- name: copy index.php
  copy: src=index.php dest=/var/www/html
- name: transmit nginx configuration
  template: src=default.conf.j2 dest=/etc/nginx/conf.d/default.conf
- name: start nginx
  service: name=nginx state=started enabled=yes

vim /etc/ansible/roles/index.php
- name: stop firewalld
  service: name=firewalld state=stopped enabled=no
- name: stop selinux
  command: 'setenforce 0'

vim /etc/ansible/roles/nginx/template/default.conf.j2
server {
    listen       80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /var/www/html;
        index  index.php index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        root           html;
        fastcgi_pass   192.168.110.60:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

mysql

vim /etc/ansible/roles/mysql/tasks/init.yml
- name: stop firewalld
  service: name=firewalld state=stopped enabled=no
- name: stop selinux
  command: 'setenforce 0'

vim /etc/ansible/roles/mysql/main.yml
- include: "init.yml"

- name: remove mariadb
  shell: 'yum remove mariadb* -y'
- name: wget
  shell: 'wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm -P /etc/yum.repos.d'
- name: install mysql57-community-release-el7-10.noarch.rpm
  yum: name=epel-release
- name: sed
  replace: path=/etc/yum.repos.d/mysql-community.repo regexp="gpgcheck=1" replace="gpgcheck=0"
- name: install mysql-community-server
  yum: name=mysql-community-server
- name: start mysql
  service: name=mysqld.service state=started
- name: passd
  shell: passd=$(grep "password" /var/log/mysqld.log | awk 'NR==1 {print $NF}')
- name: mysql 1
  shell: mysql -uroot -p'passd' --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'ZXRabc@123';"
  ignore_errors: true
- name: mysql 2
  shell: mysql -uroot -pZXRabc@123 -e "grant all privileges on *.* to root@'%' identified by 'ZXRabc@123' with grant option;"
  ignore_errors: true

php

vim /etc/ansible/roles/php/tasks/init.yml
- name: stop firewalld
  service: name=firewalld state=stopped enabled=no
- name: stop selinux
  command: 'setenforce 0'

vim /etc/ansible/rolesphp/tasks/main.yml
- include: "init.yml"

- name: install yum repo
  shell: "rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm && rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm"
  ignore_errors: true
- name: install php
  command: 'yum install -y php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-pdo php72w-xml php72w-fpm php72w-mysqlnd php72w-opcache'
- name: add user
  user:
    name: php
    shell: /sbin/nologin
    system: yes
- name: copy php.ini
  copy: src=php.ini dest=/etc/php.ini
- name: copy www.conf
  copy: src=www.conf dest=/etc/php-fpm.d/www.conf
- name: copy index.php
  copy: src=index.php dest=/var/www/html
- name: start php-fpm
  service: name=php-fpm state=started

 执行

vim /etc/ansible/lnmp.yml
- name: nginx play
  hosts: webservers
  remote_user: root
  roles:
    - nginx

- name: mysql play
  hosts: dbservers
  remote_user: root
  roles:
    - mysql

- name: php play
  hosts: phpservers
  remote_user: root
  roles:
    - php
ansible-playbook lnmp.yml

到了这里,关于ansible-playbook roles编写lnmp剧本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【playbook】Ansible的脚本----playbook剧本

    (1) Tasks :任务,即 通过task调用ansible的模板将多个操作组织在一个playbook中运行 (2) Variables :变量 (3) Templates :模板 (4) Handlers :处理器, 当changed状态条件满足时,(notify)触发执行的操作 (5) Roles :角色 在ansible服务器主机,给远程被管理主机制作安装Apach

    2024年02月14日
    浏览(37)
  • Ansible之playbook剧本

    playbook 是 ansible 用于配置,部署,和管理被控节点的剧本。通过 playbook 的详细描述,执行其中的一系列 tasks ,可以让远端主机达到预期的状态。playbook 就像 Ansible 控制器给被控节点列出的的一系列 to-do-list ,而被控节点必须要完成。也可以这么理解,playbook 字面意思,即剧

    2024年02月09日
    浏览(29)
  • ansible的playbook剧本

    (1)Tasks:任务,即通过 task 调用 ansible 的模块将多个操作组织在一个 playbook 中运行 (2)Variables:变量 (3)Templates:模板 (4)Handlers:处理器,当changed状态条件满足时,(notify)触发执行的操作 (5)Roles:角色 ==Ansible在执行完某个任务之后并不会立即去执行对应的han

    2024年02月12日
    浏览(28)
  • Ansible剧本--Playbook

    在ansible中,类似“脚本”的文件被称作“剧本”,英文称为playbook,用于配置、部署和管理被控节点 只需要把模块按照顺序编排在playbook剧本中,ansible就会按照剧本一步一步的执行,最终达到我们需要实现的效果 playbook是由一个或多个\\\'play\\\'组成的列表,当我们在工作中需要不

    2024年01月19日
    浏览(26)
  • Ansible playbook ----- 剧本

    playbooks 本身由以下各部分组成 (1)Tasks:任务,即通过 task 调用 ansible 的模板将多个操作组织在一个 playbook 中运行 (2)Variables:变量 (3)Templates:模板 (4)Handlers:处理器,当changed状态条件满足时,(notify)触发执行的操作 (5)Roles:角色 //示例: vim test1.yaml ---    

    2024年02月10日
    浏览(35)
  • Ansible之playbooks剧本

    (1)playbooks是ansible用于配置,部署,和管理被控节点的剧本。 (2)通过playbooks的详细描述,执行其中的tasks,可以让远端主机达到预期的状态。playbooks是由一个或多个”play”组成的列表。 当对一台机器做环境初始化的时候往往需要不止做一件事情,使用playbooks。 (3)通过

    2024年02月09日
    浏览(37)
  • Ansible的脚本 --- playbook 剧本

    目录 playbook的简介 什么是playbook playbook组成 应用实例 Templates 模块 tags 模块 Roles 模块  Ansible Playbook 是设定自动化任务的一种蓝图,可在无需人工干预或有限干预的前提下执行复杂的 IT 操作。Ansible Playbook 对一组或一类共同构成 Ansible 清单的主机执行。         Ansible Playbo

    2024年02月21日
    浏览(31)
  • Ansible 的脚本-playbook 剧本

    1.playbooks 本身由以下各部分组成 (1)Tasks:任务,即通过 task 调用 ansible 的模板将多个操作组织在一个 playbook 中运行 (2)Variables:变量 (3)Templates:模板 (4)Handlers:处理器,当changed状态条件满足时,(notify)触发执行的操作 (5)Roles:角色 2.示例 3.定义、引用变量

    2024年02月06日
    浏览(31)
  • 【Ansible 的脚本 --- playbook 剧本】

    playbooks 本身由以下各部分组成 将yum安装的nginx里面的配置文件进行修改,后传输到对应的远程主机 解压wordpress压缩文件,放入到对应的html网页目录底下 进行传输到远程主机里的网页页面目录上 使用浏览器进行访问测试

    2024年02月14日
    浏览(24)
  • Ansible Playbook剧本配置文件

    目录 一、执行文件 修改hosts文件 Playbook的核心元素包含: 用法 实验案例 1.语法检查 2.预测试 3.列出主机 4.列出任务 5.列出标签 6.进行测试 7.测试查看 二、触发器 handlers触发器的实验实例如下 预执行 执行 查看结果 三、角色 /etc/ansible/roles/为角色集合,该目录下有自定义的各

    2024年02月16日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包