一、环境准备
(一)ansible目录基本文件
1. mkdir ~/ansible
2. cd ~/ansible
3. vim ansible.cfg
[defaults]
host_key_checking=false
inventory=inventory
4. vim inventoy
[webservers]
web[1:2]
[dbs]
db1
[cluster:children]
webservers
dbs
(二)主机host配置:
1. vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
# 以下ip地址只是示范,自己的ip地址看主机的ip地址,使用ip a s或者ifconfig查看
192.168.88.3 pubserver
192.168.88.11 web1
192.168.88.12 web2
192.168.88.13 db1
(三)下载ansible:
1. vim /etc/yum.repos.d/el9.repo
[app]
baseurl=file:///mydvd/AppStream
gpgcheck=0
[base]
baseurl=file:///mydvd/BaseOS
gpgcheck=0
#[rpms]
#name = rpms
#baseurl = ftp://192.168.88.3/rpms
#gpgcheck = 0
注:baseurl可以是file地址,可以是http或者ftp地址(本机或者其他能够连通的地址都行),只要能够找到资源,便于yum下载。
使用ftp时也有几个步骤:
1)先将el9.repo的ftp资源注释一下(启动ftp后再放开)
2)yum -y install vsftpd
3) vim /etc/vsftpd/vsftpd.conf
将anonymous_enable=NO改为anonymous_enable=YES
4)启动vsftpd并设置开机自启动
systemctl restart vsftpd && systemctl enable vsftpd
或者systemctl enable vsftpd --now
5)然后把需要用到本机资源的ftp地址加上去
[app]
baseurl=file:///mydvd/AppStream
gpgcheck=0
[base]
baseurl=file:///mydvd/BaseOS
gpgcheck=0
[rpms]
name = rpms
baseurl = ftp://192.168.88.3/rpms
gpgcheck = 0
2. 下载ansible
yum -y install ansible
3. 配置免密登录
1)ssh-keygen命令=》一路enter
2)ssh-copy-id root@ip地址,嫌一个个操作麻烦可以使用for循环
[root@pubserver ~]# for i in web{1..2} db1
> do
> ssh-copy-id $i
> done
4. 查看被管理的所有主机
1)cd ~/ansible
2)ansible all --list-hosts
注意:所有的ansible相关命令都必须在ansible目录下执行!
二、普通yum模块安装(在pubserver主机操作web1主机):
1. vim normal_nginx.yml(可查看ansible目录下同名文件)
---
- name: nginx playbook
hosts: web1
tasks:
- yum:
name: nginx
state: latest
- service:
name: nginx
state: started
enabled: yes
- template:
src: index.html
dest: /usr/share/nginx/html/index.html
2. vim index.html(略)
3. ansible-playbook normal_nginx.yml
4. 查看web1主机有没有正常显示内容(ssh连接web1查看或者直接到web1主机查看):
curl web1 或者 curl web1对应的ip地址
三、使用nginx的tar包源码安装(在pubserver主机操作web2主机):
1. vim install_nginx.sh
#!/bin/bash
#
ps aux | grep nginx &&
killall -9 nginx
ls /usr/local/nginx/ &&
rm -rf /usr/local/nginx/
cd /root/lnmp_soft/nginx-1.17.6 &&
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module
make && make install
sed -ri "/^\s+location \/ \{/i\ location /jd { index jd.html; }" /usr/local/nginx/conf/nginx.conf
ss -anpt | grep nginx && /usr/local/nginx/sbin/nginx -s reload || /usr/local/nginx/sbin/nginx
2. vim nginx.yml
第一步:准备nginx及相关软件包
(1) 安装unzip
(2) 安装vim编辑器
(3) 安装支持tab键的软件包
(4) 安装网络相关软件包net-tools
(5) 安装支持killall命令的软件 psmisc
(6) 安装编译工具 gcc make
(7) 安装可以让nginx支持正则的软件包 pcre-devel
(8) 安装可以让nginx支持安装加密网站的软件包 openssl-devel
中间步骤:
把pubserver的lnmp_soft.tar.gz 拷贝传入web2虚拟机的root家目录,并解压tar包,解压后cd进入lnmp_soft,再解压nginx-1.17.6.tar.gz,添加用户nginx
收尾:
1)其中script模块执行install_nginx.sh:cd进入nginx-1.17.6后进行配置(指定安装目录/usr/local/nginx,指定用户nginx,设置安全网站模块)、编译、安装三部曲
注:其实以上都可以结合到install_nginx.sh脚本代码中,最后再使用script模块执行install_nginx.sh就好了,可读性可能会更好(如果能够做到全ansible模块,不使用额外的sh脚本另说)。
2)拷贝前端页面代码到web2主机的/usr/local/nginx/html/目录
---
- hosts: web2
tasks:
- name: yum install
yum:
name:
- unzip
- vim
- bash-completion
- net-tools
- psmisc
- gcc
- make
- pcre-devel
- openssl-devel
- copy:
src: ~/lnmp_soft.tar.gz
dest: /root
- unarchive:
src: ~/lnmp_soft.tar.gz
dest: /root/
- unarchive:
src: ~/lnmp_soft/nginx-1.17.6.tar.gz
dest: ~/lnmp_soft/
- user:
name: nginx
shell: /sbin/nologin
- name: run nginx shell
script: install_nginx.sh
- copy:
src: ~/nginx_pages/jd
dest: /usr/local/nginx/html/
- copy:
src: ~/nginx_pages/qimao
dest: /usr/local/nginx/html/
- copy:
src: ~/nginx_pages/wangyiyun
dest: /usr/local/nginx/html/
- copy:
src: ~/nginx_pages/xianhua
dest: /usr/local/nginx/html/
3. ansible-playbook nginx.yml
4. 查看web2主机有没有正常显示内容(ssh连接web2查看或者直接到web2主机查看):
curl curl web2对应的ip地址/jd/
curl curl web2对应的ip地址/wangyiyun/
...