列表中的所有成员都是以相同的缩进级别开头的行,并以(破折号和空格)开头:"- "
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.ymlvim 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 ##执行后就可以得到交互式界面