ansible学习笔记

*Ansible**测试题*

*题目一:安装和配置Ansible*

*任务描述:*

在CentOS系统上安装Ansible,并配置一个inventory文件,包含至少两台远程主机(可以使用虚拟机或云服务器)。

*要求:*

\1. 安装Ansible,并确保其版本不低于2.9。

image1

yum install ansible -y

\2. 创建一个inventory文件,命名为hosts.ini,并添加两台远程主机的IP地址,分别属于不同的组(例如web_servers和db_servers)。

首先进vi /etc/ansible/ansible.cfg 修改inventory

image50

我是在/etc/ansible/ 这里建了一个hosts.ini文件 touch hosts.ini #可以根据你自己对应的路径修改

vi /etc/ansible/hosts.ini

添加以下内容:

image60

[web_servers]

192.168.100.107 ansible_user=root ansible_ssh_pass=123456 #从机的ip地址以及免密登录配置

[db_servers]

192.168.100.108 ansible_user=root ansible_ssh_pass=123456 #从机的ip地址以及免密登录配置

\3. 使用ansible -m ping命令测试与远程主机的连接。

测试所有主机连通

image70

*题目二:编写Playbook安装软件*

*任务描述:*

编写一个Ansible Playbook,用于在远程主机上安装nginx和mariadb-server软件包。

*要求:*

\1. 创建一个名为install_software.yml的Playbook文件。

touch install_software.yml

注:三台机子互通配置完hosts再往下做

hosts配置如下:

image80

\2. 使用yum模块安装nginx和mariadb-server。

在两台机器上执行 yum install mariadb-server nginx -y

\3. 确保安装任务在web_servers组的主机上执行nginx的安装,在db_servers组的主机上执行mariadb-server的安装

编写配置文件

运行命令 ansible-playbook install_software.yml 执行 编写好的playbook

image100

web_servers测试

可以看到能开启服务了

db_servers上测试

成功安装并且能看到版本

*题目三:配置Nginx服务器*

*任务描述:*

继续使用Ansible,配置已安装的Nginx服务器,使其能够托管一个简单的静态网页。

*要求:*

\1. 在你的本地机器上创建一个名为index.html的文件,内容自定义,例如“Welcome to my Ansible-configured Nginx server!”。

touch index.html vi index.html

image130

\2. 编写一个Playbook,将index.html文件复制到web_servers组主机的/usr/share/nginx/html目录下

\3. image140

iamge150

\5. 成功复制

\6.

\7. 确保Nginx服务在配置完成后重新启动,以应用新的网页内容

关闭防火墙去浏览器访问 对应的web_servers主机的IP

systemctl restart nginx

systemctl stop firewalld

可以看到内容了

*题目四:使用变量和模板*

*任务描述:*

使用Ansible的变量和模板功能,动态配置Nginx的/etc/nginx/conf.d/default.conf配置文件。

*要求:*

\1. 在Playbook中定义变量,用于指定Nginx监听的端口和服务器名称。

\2. 使用Jinja2模板创建一个nginx_config.j2文件,根据变量动态生成Nginx配置内容。

\3. 编写任务,将模板文件应用到远程主机上,并确保Nginx服务重新加载配置。

编写nginx_config.j2文件

vi nginx_config.j2

编写 playbook

vi nginx_config.yml

运行:

cat /etc/nginx/conf.d/default.conf

在/usr/share/nginx/html目录下建一个的test.html 和我们j2文件对应的html文件 写入内容

打开网站可以看到配置生效了

*题目五:配置MariaDB服务器*

*任务描述:*

使用Ansible配置MariaDB服务器,创建一个数据库和一个用户,并授权该用户访问该数据库。

*要求:*

\1. 在db_servers组的主机上安装并启动MariaDB服务。

\2. 创建一个名为mydatabase的数据库。

\3. 创建一个名为myuser的用户,密码为mypassword。

\4. 授权myuser用户从任何主机访问mydatabase数据库,并具有所有权限。

编写playbook

vi db_servers_mariadb.yml

执行

执行过程如果遇到fatal: [192.168.100.108]: FAILED! => {“changed”: false, “msg”: “unable to find /root/.my.cnf. Exception message: (1045, u"Access denied for user ‘root‘@’localhost’ (using password: NO)")”}这个报错就要去db_servers建一个

/root/.my.cnf并且输入以下内容

可以看到已经有数据库了

并且其它主机也能访问了

*题目六:使用角色管理配置*

*任务描述:*

将上述配置任务封装成Ansible角色,以便更好地管理和复用配置。

*要求:*

\1. 创建一个名为nginx_role的角色,包含安装Nginx、配置Nginx和复制静态网页的任务。

ansible-galaxy init nginx_role 创建一个nginx_role角色

vi /etc/ansible/nginx_role/tasks/main.conf #编写它们的任务文件

image280

\2. 创建一个名为mariadb_role的角色,包含安装MariaDB、创建数据库和用户、授权用户访问数据库的任务。

ansible-galaxy init mariadb_role

vi /etc/ansible/mariadb_role/tasks/main.conf #编写它们的任务文件

image290

\3. 编写一个Playbook,使用这两个角色来配置远程主机。

vi use.yml

image300

ansible-playbook use.yml

image310

执行成功


ansible学习笔记
http://example.com/2025/01/25/ansible学习笔记/
Author
fwlw
Posted on
January 25, 2025
Licensed under