-R SU_USER, --su-user=SU_USER #su 的时候切换到那个用户
run operations with su as this user (default=root)
(deprecated, use become)
2.4 配置相关文件
修改主机文件inventory:,此文件定义执行命令的主机列表
设置ansible.cfg参数
inventory =/etc/ansible/hosts #定义资源清单inventory文件的位置,一般保持默认
library =/usr/share/my_modules/ #library指向ansible模块的目录,一般保持默认
forks =10 #设置多少个进程同时工作
sudo_user=root #设置默认执行命令的用户,也可在playbook中重新设置此参数
remote_port=22 #制定连接被管理的管理端口,默认为22
timeout =10 #设置SSH连接的超时时间间隔,单位为秒
2.5 测试
ansible agent -m command -a "touch /tmp/aaa" -vvv
#-m 使用command模块 -a 使用command里面支持的命令参数 -vvv 查看详细过程
三、模块介绍
ansible模块较多,对应可以查看相关文档,此处列出一下日常工作中常用的模块
【copy】模块
ansible agent -m copy -a "src=/root/test.sh dest=/tmp"
【file】
调用-s 参数,需要客户端能够无密码使用sudo命令;
ansible agent -m file -a "dest=/tmp/test.sh mode=755 owner=root group=root" -s
【script】
ansible agent -m script -a "/tmp/test.sh"
【shell】创建用户
ansible agent -m shell -a "/tmp/test.sh"
【group】创建组
ansible agent -m group -a "name=test1 state=present" -s
【user】
ansible agent -m user -a "name=xuel home=/home/xuel state=present" -s
【yum】
可以提供的status:absent,present,installed,removed,latest
ansible agent -m yum -a "name=httpd state=latest" -s
【server】
可以提供的status:running,started,stopped,restarted,reloaded
【cron】
ansible agent -m cron -a 'name="my job" minute=*/1 hour=* day=* month=* weekday=* job="/usr/sbin/ntpdate time1.aliyun.com"'
【get_url】
ansible agent -m get_url -a "url=http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm dest=/tmp"
【synchronize】需要安装rsync
ansible agent -m synchronize -a "src=/root/test.file dest=/tmp"
模块默认使用的为推送push,如果想使用pull功能需添加mode=pull
ansible agent -m synchronize -a "mode=pull src=/tmp/test.file dest=/root/"
【ini_file】
ansible agent -m ini_file -a "dest=/tmp/test.ini section=Mongo option=Host value=127.0.0.1"
该模块Python需要安装ConfigParser
四、ansible-playbook介绍
4.1 核心组件
hosts #执行的远程主机列表
tasks #任务集
varniables #内置变量或自定义变量
templates #可替换模版
handlers #触发操作
4.2 命令
Usage: ansible-playbook playbook.yml
ansible-playbook test1.yml #执行剧本
ansible-vault encrypt test1.yml #加密剧本
ansible-vault decrypt test1.yml #加密剧本
ansible-vault view test1.yml #加密剧本
4.3 YAML语法
1.“---”顶行首写
2.#代码注释
3.缩进统一,不可混用空格与tab
4.缩进级别椅子
5.区分大小写
6.k/v值可以同行写也可换行写,同行使用:分割,换行需要-分割
7.一个网址的功能代码需要最少的元素包括name:task
8.一个name只能包括一个task
4.4 安装并启动mysql playbook实例
---
- hosts: agent
remote_user: root
tasks:
- name: install mysql-server
yum: name=mysql-server state=present
- name: start mysql-server
service: name=mysqld state=started
- name: check mysql service
shell: ps -ef |grep mysqld
执行次playbook将mysql数据库安装到agent服务分组里: