Ansible分离部署LAMP架构(1)

permissive - SELinux prints warnings instead of enforcing.

disabled - No SELinux policy is loaded.

SELINUX=disabled

SELINUXTYPE= can take one of these three values:

targeted - Targeted processes are protected,

minimum - Modification of targeted policy. Only selected processes are protected.

mls - Multi Level Security protection.

SELINUXTYPE=targeted

master主机进行anisble配置


[root@master lamp]# vim /etc/ansible/ansible.cfg

inventory = /etc/ansible/inventory

[root@master lamp]# cat /etc/ansible/inventory

[php]

192.168.129.137

[mysql]

192.168.129.135

[httpd]

192.168.129.133

免密登录


  • httpd、mysql、php步骤一样

[root@master ~]# ssh-copy-id root@192.168.129.133

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: “/root/.ssh/id_rsa.pub”

/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed

/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed – if you are prompted now it is to install the new keys

root@192.168.129.133’s password:

Number of key(s) added: 1

Now try logging into the machine, with: “ssh ‘root@192.168.129.133’”

and check to make sure that only the key(s) you wanted were added.

[root@master ~]# ssh-agent bash

[root@master ~]# ssh-add

Enter passphrase for /root/.ssh/id_rsa:

Identity added: /root/.ssh/id_rsa (root@master)

192.168.129.133安装httpd


[root@master ~]# ansible httpd -m yum -a ‘name=httpd* state=installed’

192.168.129.133 | CHANGED => {

“ansible_facts”: {

“discovered_interpreter_python”: “/usr/libexec/platform-python”

},

“changed”: true,

“msg”: “”,

“rc”: 0,

“results”: [

“Installed: mod_http2-1.15.7-3.module_el8.4.0+778+c970deab.x86_64”,

“Installed: cyrus-sasl-devel-2.1.27-1.el8.x86_64”,

“Installed: expat-devel-2.2.5-3.el8.x86_64”,

“Installed: apr-1.6.3-11.el8.x86_64”,

“Installed: apr-devel-1.6.3-11.el8.x86_64”,

“Installed: libdb-devel-5.3.28-40.el8.x86_64”,

“Installed: apr-util-1.6.1-6.el8.x86_64”,

“Installed: httpd-tools-2.4.37-39.module_el8.4.0+778+c970deab.x86_64”,

“Installed: apr-util-bdb-1.6.1-6.el8.x86_64”,

“Installed: openldap-devel-2.4.46-11.el8.x86_64”,

“Installed: apr-util-devel-1.6.1-6.el8.x86_64”,

“Installed: httpd-2.4.37-39.module_el8.4.0+778+c970deab.x86_64”,

“Installed: apr-util-openssl-1.6.1-6.el8.x86_64”,

“Installed: centos-logos-httpd-85.8-1.el8.noarch”,

“Installed: httpd-devel-2.4.37-39.module_el8.4.0+778+c970deab.x86_64”,

“Installed: httpd-filesystem-2.4.37-39.module_el8.4.0+778+c970deab.noarch”,

“Installed: httpd-manual-2.4.37-39.module_el8.4.0+778+c970deab.noarch”

]

}

//开启服务与开机自启

[root@master ~]# ansible httpd -m service -a “name=httpd state=started enabled=yes”

192.168.129.133 | SUCCESS => {

“ansible_facts”: {

“discovered_interpreter_python”: “/usr/libexec/platform-python”

},

“changed”: false,

“enabled”: true,

“name”: “httpd”,

“state”: “started”,

“status”: {

“ActiveEnterTimestamp”: “Mon 2021-07-19 19:12:12 CST”,

“ActiveEnterTimestampMonotonic”: “1076238167”,

“ActiveExitTimestampMonotonic”: “0”,

……略

192.168.129.135安装mariadb


[root@master ~]# ansible mysql -m yum -a ‘name=mariadb state=present’

192.168.129.135 | CHANGED => {

“ansible_facts”: {

“discovered_interpreter_python”: “/usr/libexec/platform-python”

},

“changed”: true,

“msg”: “”,

“rc”: 0,

“results”: [

“Installed: mariadb-3:10.3.17-1.module+el8.1.0+3974+90eded84.x86_64”,

“Installed: mariadb-common-3:10.3.17-1.module+el8.1.0+3974+90eded84.x86_64”,

“Installed: mariadb-connector-c-3.0.7-1.el8.x86_64”,

“Installed: mariadb-connector-c-config-3.0.7-1.el8.noarch”

]

}

//安装mariadb-server

[root@master ~]# ansible mysql -m yum -a ‘name=mariadb-server state=present’

192.168.129.135 | CHANGED => {

“ansible_facts”: {

“discovered_interpreter_python”: “/usr/libexec/platform-python”

},

“changed”: true,

“msg”: “”,

“rc”: 0,

“results”: [

“Installed: mariadb-errmsg-3:10.3.17-1.module+el8.1.0+3974+90eded84.x86_64”,

“Installed: mariadb-gssapi-server-3:10.3.17-1.module+el8.1.0+3974+90eded84.x86_64”,

“Installed: mariadb-server-3:10.3.17-1.module+el8.1.0+3974+90eded84.x86_64”,

“Installed: mariadb-server-utils-3:10.3.17-1.module+el8.1.0+3974+90eded84.x86_64”,

“Installed: perl-DBD-MySQL-4.046-3.module+el8.1.0+2938+301254e2.x86_64”,

“Installed: mariadb-backup-3:10.3.17-1.module+el8.1.0+3974+90eded84.x86_64”

]

}

//开启服务于开机自启

[root@master ~]# ansible mysql -m service -a ‘name=mariadb state=started enabled=yes’

192.168.129.135 | CHANGED => {

“ansible_facts”: {

“discovered_interpreter_python”: “/usr/libexec/platform-python”

},

“changed”: true,

“enabled”: true,

“name”: “mariadb”,

“state”: “started”,

“status”: {

“ActiveEnterTimestampMonotonic”: “0”,

“ActiveExitTimestampMonotonic”: “0”,

……略

192.168129.137安装php


[root@master ~]# ansible php -m yum -a ‘name=php state=present’

192.168.129.137 | CHANGED => {

“ansible_facts”: {

“discovered_interpreter_python”: “/usr/libexec/platform-python”

},

“changed”: true,

“msg”: “”,

“rc”: 0,

“results”: [

“Installed: apr-util-bdb-1.6.1-6.el8.x86_64”,

“Installed: httpd-2.4.37-39.module_el8.4.0+778+c970deab.x86_64”,

“Installed: apr-util-openssl-1.6.1-6.el8.x86_64”,

“Installed: centos-logos-httpd-85.8-1.el8.noarch”,

“Installed: httpd-filesystem-2.4.37-39.module_el8.4.0+778+c970deab.noarch”,

“Installed: httpd-tools-2.4.37-39.module_el8.4.0+778+c970deab.x86_64”,

“Installed: nginx-filesystem-1:1.14.1-9.module_el8.0.0+184+e34fea82.noarch”,

“Installed: php-fpm-7.2.24-1.module_el8.2.0+313+b04d0a66.x86_64”,

“Installed: php-7.2.24-1.module_el8.2.0+313+b04d0a66.x86_64”,

“Installed: php-common-7.2.24-1.module_el8.2.0+313+b04d0a66.x86_64”,

“Installed: mod_http2-1.15.7-3.module_el8.4.0+778+c970deab.x86_64”,

“Installed: php-cli-7.2.24-1.module_el8.2.0+313+b04d0a66.x86_64”,

“Installed: apr-1.6.3-11.el8.x86_64”,

“Installed: apr-util-1.6.1-6.el8.x86_64”

]

}

//安装php相关组件

[root@master ~]# ansible php -m yum -a ‘name=php-* state=present’

192.168.129.137 | CHANGED => {

“ansible_facts”: {

“discovered_interpreter_python”: “/usr/libexec/platform-python”

},

“changed”: true,

“msg”: “”,

“rc”: 0,

……略

修改apache的配置


[root@master ~]# ansible httpd -m lineinfile -a ‘path=/etc/httpd/conf/httpd.conf line=“<VirtualHost :80>\nDocumentRoot “/var/www/html/www1”\nServerName www.192.168.129.133.com\nProxyRequests off\nProxyPassMatch ^/(..php)$ fcgi://192.168.129.137:9000/var/www/html/www1/$1\n<Directory “/var/www/html/www1”>\nOptions None\nAllowOverride None\nOrder allow,deny\nAllow from all\n\n”’

192.168.129.133 | CHANGED => {

“ansible_facts”: {

“discovered_interpreter_python”: “/usr/libexec/platform-python”

},

“backup”: “”,

“changed”: true,

“msg”: “line added”

}

//在http主机上查看

[root@httpd conf]# cat /etc/httpd/conf/httpd.conf

<VirtualHost *:80>

DocumentRoot “/var/www/html/www1”

ServerName www.192.168.129.133

ProxyRequests Off

ProxyPassMatch ^/(.*.php)$ fcgi://192.168.129.137:9000/var/www/html/www1$1

<Directory “/var/www/html/www1”>

Options none

AllowOverride none

Require all granted

[root@master ~]# ansible httpd -m lineinfile -a ‘path=/etc/httpd/conf/httpd.conf regexp=“^AddType " insertafter=”^AddType application/x-" line=“AddType application/x-httpd-php .php”’

192.168.129.133 | CHANGED => {

“ansible_facts”: {

“discovered_interpreter_python”: “/usr/libexec/platform-python”

},

总结

总体来说,如果你想转行从事程序员的工作,Java开发一定可以作为你的第一选择。但是不管你选择什么编程语言,提升自己的硬件实力才是拿高薪的唯一手段。

如果你以这份学习路线来学习,你会有一个比较系统化的知识网络,也不至于把知识学习得很零散。我个人是完全不建议刚开始就看《Java编程思想》、《Java核心技术》这些书籍,看完你肯定会放弃学习。建议可以看一些视频来学习,当自己能上手再买这些书看又是非常有收获的事了。

rtafter=“^AddType application/x-” line=“AddType application/x-httpd-php .php”’

192.168.129.133 | CHANGED => {

“ansible_facts”: {

“discovered_interpreter_python”: “/usr/libexec/platform-python”

},

总结

总体来说,如果你想转行从事程序员的工作,Java开发一定可以作为你的第一选择。但是不管你选择什么编程语言,提升自己的硬件实力才是拿高薪的唯一手段。

如果你以这份学习路线来学习,你会有一个比较系统化的知识网络,也不至于把知识学习得很零散。我个人是完全不建议刚开始就看《Java编程思想》、《Java核心技术》这些书籍,看完你肯定会放弃学习。建议可以看一些视频来学习,当自己能上手再买这些书看又是非常有收获的事了。

[外链图片转存中…(img-Uu3vQGa8-1714276050103)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 30
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ansible是一个强大的自动化运维工具,常用于Linux服务器的配置和部署。在LAMP(Linux, Apache, MySQL, PHP)架构部署,你可以使用Ansible来管理整个环境的配置,包括安装软件包、配置服务、数据库等。Ansible配置文件通常使用YAML(一种人类可读的数据序列化语言)编写,它的核心是playbooks,这是一种包含一系列任务的文本文件。 在Ansible中,一个基本的LAMP部署playbook可能包含以下几个部分: 1. `hosts`: 定义要部署到的服务器列表,可以是主机名或IP地址。 2. `tasks`: 包含一系列`block`,每个`block`代表一个操作,例如安装软件包(`apt`或`yum`)、创建用户或目录、配置Apache或MySQL等。 3. `roles`: 如果有多个任务可以复用,可以将它们组织成角色(role),提高代码的可重用性和可维护性。 4. `vars`: 可以定义变量,如数据库用户名、密码等,这些可以在多个任务中引用。 5. `handlers`: 当某个任务完成后,可能会触发其他任务执行,如重启服务。 一个基本的LAMP部署playbook示例可能如下: ```yaml --- - name: Deploy LAMP stack hosts: web_servers vars: mysql_root_password: 'your_mysql_password' php_version: '7.4' tasks: - name: Install OS packages apt: name: - apache2 - mysql-server - php{{ php_version }} state: present - name: Configure Apache template: src: apache.conf.j2 dest: /etc/apache2/sites- name: Start and enable Apache service: name: apache2 state: started enabled: yes - name: Secure MySQL mysql_user: name: root password: "{{ mysql_root_password }}" priv: '*.*:ALL' grant: 'GRANT' - name: Restart MySQL for changes service: name: mysql state: restarted handlers: - name: restart_apache service: name: apache2 state: restarted ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值