列表中的所有成员都是以相同的缩进级别开头的行,并以(破折号和空格)开头:"- "
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转换为两个空格

ansible 指定单台主机ip ansible -i ip_Developer


编写palybook.yml

cd /mnt/ansible

ansible 指定单台主机ip ansible -i ip_Developer_02


进行语法检测

ansible 指定单台主机ip ansible -i ip_Developer_03


列出主机

ansible 指定单台主机ip ansible -i ip_apache_04


列出所有任务

ansible 指定单台主机ip ansible -i ip_Developer_05


开始执行任务

ansible 指定单台主机ip ansible -i ip_apache_06


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

ansible 指定单台主机ip ansible -i ip_运维_07


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

ansible 指定单台主机ip ansible -i ip_运维_08


ansible 指定单台主机ip ansible -i ip_Developer_09


然后执行

ansible 指定单台主机ip ansible -i ip_运维_10


vim playbook.yml

ansible 指定单台主机ip ansible -i ip_apache_11


ansible 指定单台主机ip ansible -i ip_apache_12


然后执行

ansible-playbook playbook.yml

此时在server3中就安装好数据库并且创建了用户

ansible 指定单台主机ip ansible -i ip_apache_13


当重复执行后会报错

ansible 指定单台主机ip ansible -i ip_Developer_14


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

ansible 指定单台主机ip ansible -i ip_apache_15


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

ansible 指定单台主机ip ansible -i ip_Developer_16

分块调用

ansible 指定单台主机ip ansible -i ip_ansible 指定单台主机ip_17


vim playbook.yml

ansible 指定单台主机ip ansible -i ip_Developer_18


vim playbook.yml

ansible 指定单台主机ip ansible -i ip_运维_19


然后执行

ansible-playbook playbook.yml

当输出结果不想看到一堆代码时,可自定义

vim playbook.yml

ansible 指定单台主机ip ansible -i ip_apache_20


此时就可以在输出界面看到自定义的test ok

ansible 指定单台主机ip ansible -i ip_apache_21


vim webserver.yml

ansible 指定单台主机ip ansible -i ip_运维_22

vim database.yml

ansible 指定单台主机ip ansible -i ip_Developer_23


ansible 指定单台主机ip ansible -i ip_ansible 指定单台主机ip_24


将webserver文件导入playbook文件

ansible 指定单台主机ip ansible -i ip_运维_25


然后执行

ansible-playbook playbook.yml

此时文件就导入成功将playook复制为task并编辑task

ansible 指定单台主机ip ansible -i ip_运维_26


将task中的任务导入webserver中

ansible 指定单台主机ip ansible -i ip_vim_27


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

ansible 指定单台主机ip ansible -i ip_运维_28

变量

scp 172.25.254.2:/etc/httpd/conf/httpd.conf .

编辑文件将端口修改为8080

vim webserver.yml

ansible 指定单台主机ip ansible -i ip_ansible 指定单台主机ip_29


然后执行

ansible-playbook webserver.yml

在server2中查看端口,看到端口为8080

netstat -antlp引入变量

cp httpd.conf httpd.conf.j2

vim httpd.conf.j2

ansible 指定单台主机ip ansible -i ip_apache_30


vim webserver.yml

ansible 指定单台主机ip ansible -i ip_运维_31


然后执行

ansible-playbook webserver.yml

再次将端口修改为8000运行后会报错,原因是server2中selinux

ansible 指定单台主机ip ansible -i ip_运维_32


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

ansible 指定单台主机ip ansible -i ip_运维_33


然后再次执行

ansible-playbook webserver.yml

也可以在命令行中直接传参
ansible-playbook -e “http_port=80” webserver.yml

也可以在hosts文件中添加

ansible 指定单台主机ip ansible -i ip_运维_34


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

ansible 指定单台主机ip ansible -i ip_运维_35

vim hosts

ansible 指定单台主机ip ansible -i ip_apache_36


vim webserver.yml

ansible 指定单台主机ip ansible -i ip_apache_37


然后执行

ansible-playbook webserver.yml添加端口变量

vim webserver.yml

ansible 指定单台主机ip ansible -i ip_apache_38


然后执行

ansible-playbook webserver.yml加入task任务

将webserver.yml中注释打开

编写task.yml

ansible 指定单台主机ip ansible -i ip_ansible 指定单台主机ip_39


然后执行

ansible-playbook webserver.yml加入判断和认证

在server2中,cd /var/www/html

vim .htaccess

ansible 指定单台主机ip ansible -i ip_Developer_40


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

ansible 指定单台主机ip ansible -i ip_运维_41


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

vim /etc/httpd/conf/httpd.conf

ansible 指定单台主机ip ansible -i ip_apache_42


systemctl restart httpd

在网页中访问172.25.254.2:8080

ansible 指定单台主机ip ansible -i ip_ansible 指定单台主机ip_43


输入用户名和密码即可访问

将上述动作部署为自动化
在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 指定单台主机ip ansible -i ip_apache_44


ansible 指定单台主机ip ansible -i ip_运维_45


然后执行

ansible-playbook apache/webserver.ymlvim apache/task.yml

ansible 指定单台主机ip ansible -i ip_运维_46


vim apache/webserver.yml

ansible 指定单台主机ip ansible -i ip_ansible 指定单台主机ip_47


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

vim apache/task.yml

ansible 指定单台主机ip ansible -i ip_vim_48


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

ansible 指定单台主机ip ansible -i ip_Developer_49