列表中的所有成员都是以相同的缩进级别开头的行,并以(破折号和空格)开头:"- "
A list of tasty fruits
- Apple
- Orange
- Strawberry
- Mango
字典以简单的形式表示(冒号后面必须有一个空格):key: value
An employee record
martin:
name: Martin D’vloper
job: Developer
skill: Elite
可能存在更复杂的数据结构,例如字典列表,值是列表的字典或两者的混合:
Employee records
- martin:
name: Martin D’vloper
job: Developer
skills:- python
- perl
- pascal
- tabitha:
name: Tabitha Bitumen
job: Developer
skills:- lisp
- fortran
- erlang
vim ~/.vimrc ##将yaml文件中的tab转换为两个空格

编写palybook.yml
cd /mnt/ansible

进行语法检测

列出主机

列出所有任务

开始执行任务

将playbook.yml文件中hosts: test改为hosts: all,然后重新测试

当执行多个任务时,一个任务出现错误后,就会跳过。
编写playbook.yml


然后执行

vim playbook.yml


然后执行
ansible-playbook playbook.yml
此时在server3中就安装好数据库并且创建了用户

当重复执行后会报错

此时在登陆时给予用户密码即可

再次执行就不会报错(-t表示只执行某个模块,使用时要给模块定义名字[tags:xxx])

分块调用

vim playbook.yml

vim playbook.yml

然后执行
ansible-playbook playbook.yml
当输出结果不想看到一堆代码时,可自定义
vim playbook.yml
此时就可以在输出界面看到自定义的test ok

vim webserver.yml

vim database.yml


将webserver文件导入playbook文件

然后执行
ansible-playbook playbook.yml
此时文件就导入成功
将playook复制为task并编辑task

将task中的任务导入webserver中

此时可以看到task的任务已经导入到了webserver中

变量
scp 172.25.254.2:/etc/httpd/conf/httpd.conf .
编辑文件将端口修改为8080
vim webserver.yml

然后执行
ansible-playbook webserver.yml
在server2中查看端口,看到端口为8080
netstat -antlp
引入变量
cp httpd.conf httpd.conf.j2
vim httpd.conf.j2

vim webserver.yml

然后执行
ansible-playbook webserver.yml
再次将端口修改为8000运行后会报错,原因是server2中selinux

修改server2中selinux状态,将其改为警告模式

然后再次执行
ansible-playbook webserver.yml
也可以在命令行中直接传参
ansible-playbook -e “http_port=80” webserver.yml
也可以在hosts文件中添加

此时要注释webserver.yml文件中的

vim hosts

vim webserver.yml

然后执行
ansible-playbook webserver.yml
添加端口变量
vim webserver.yml

然后执行
ansible-playbook webserver.yml
加入task任务
将webserver.yml中注释打开
编写task.yml

然后执行
ansible-playbook webserver.yml
加入判断和认证
在server2中,cd /var/www/html
vim .htaccess

htpasswd -c /etc/httpd/conf/htpasswd wxh ##生成用户

注:再次生成用户时不能加-c,如果加了会覆盖之前的
vim /etc/httpd/conf/httpd.conf

systemctl restart httpd
在网页中访问172.25.254.2:8080

输入用户名和密码即可访问
将上述动作部署为自动化
在server2中
scp .htaccess 172.25.254.1:/mnt/ansible/
scp /etc/httpd/conf/htpasswd 172.25.254.1:/mnt/ansible
在server1中
mkdir apache
mv htpasswd .htaccess apache/
mv httpd.conf.j2 webserver.yml httpd.conf index.html apache/
mv task.yml apache/
此时调用命令需要跟路径
如:ansible-playbook apache/webserver.yml
vim apache/webserver.yml


然后执行
ansible-playbook apache/webserver.yml
vim apache/task.yml

vim apache/webserver.yml

ansible-playbook --start-at-task “Check webserver” apache/webserver.yml ##从Check webserver开始执行
交互式输入
vim apache/task.yml

ansible-playbook apache/task.yml ##执行后就可以得到交互式界面

Ansible自动化配置与管理实践
本文详细介绍了如何使用Ansible进行自动化配置管理,包括YAML语法的应用、任务执行、变量使用、文件导入及权限设置等,展示了从配置文件到实际应用的全过程,涉及Web服务器、数据库的配置和安全控制。
3466

被折叠的 条评论
为什么被折叠?



