一.软件相关模块

1.yum(下载包)

正常操作
yum 与rpm的区别
yum可以解决依赖关系
rpm 全称readhat package manager(红帽包管理工具),需要自己解决依赖
yum源配置

查看yum源配置

cat /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch  #名字
baseurl=http://mirrors.aliyun.com/epel/7/$basearch  #rpm源的地址,后面可以写http,https,ftp,Samba,file:
failovermethod=priority
enabled=1 # 是否开启,1代表开启,0表示关闭
gpgcheck=0  #是否校验签名,1代表校验,0表示校验(校验安全性)
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
yum安装一个包
yum install -y nginx
yum安装一个包组

注:一个包组中有一类功能对于各个软件的处理

yum grouplist #查看包组信息
yum groupinstall 包组名 #安装包组
ansible提供的yum模块
(1)yum模块的参数

disablerepo #禁用源
enablerepo #启用源
name #包名
static #状态,包括安装和卸载
(2)远程在web组的被管控机上下载wget包
ansible web -m yum -a 'name=wget'
(3)将yum源发送到管控机(使用镜像源下载更快,有的包在yum源中),下载安装pip包
ansible web -m copy -a 'src=/etc/yum.repos.d/epel.repo dest=/etc/yum.repos.d/epel.repo'
ansible web -m yum -a 'name=python2-pip' #下载安装pip包
(4)远程卸载wget包
ansible web -m yum -a 'name=wget state=absent'
(5)远程安装包组,@代表包组
ansible web -m yum -a 'name="@Development Tools"'

2.pip(下载yum中没有的包)

正常操作
将代码的环境依赖打包到文件中
pip freeze > a.txt
安装依赖
pip install -r a.txt
安装单个包
pip install 包名
查看安装了哪些包
pip list
ansible提供的pip模块
(1)pip模块的参数

(2)安装flask
ansible web -m pip -a 'name=flask'
requirements #安装电脑上的所有

3.service(启动)

正常操作
安装nginx
ansible web -m yum -a 'name=nginx'
nginx的启动
systemctl start nginx #centos7
service nginx start #centos6
查看nginx进程是否启动
ps -ef|grep nginx
ss -tnlp
设置nginx开机自启动
systemctl enabled nginx #centos7开机自启动
chkconfig nginx on #centos6开机自启动
ansible提供的service模块
(1)启动nginx
ansible web -m service -a 'name=nginx,static=started'
(2)查看是否启动
ss -tnlp
(3)关闭nginx
ansible web -m service -a 'name=nginx,ststic=stoped'

4.cron计划任务,当时任务,周期任务

正常操作
每两个小时执行一次命令
分时日月周 任务
crontab 0 */2 * * * pwd # 每两个小时执行一次命令
编辑计划任务
crontab -e
查看计划任务
crontab -l
ansible提供的cron模块
(1)cron模块的参数
day 天
disabled 禁用
hour 小时
job 任务
minute 分钟
month 月
name 任务名字
weekday 周
(2)新建一个计划任务
ansible web -m cron -a 'minute=27 job="touch /tmp/aaaaaaa.txt" name=touchfile'
(3)删除计划任务
ansible web -m cron -a 'name=touchfile state=absent'
(4)禁用计划任务(会加进去,以井号表示禁用)
ansible web -m cron -a 'minute=30 job="touch /tmp/bbbb.txt" name=touchfile2 disabled=yes'

二.用户相关模块

1.user

正常操作
linux中用户的分类
管理员 root uid 0
普通用户
系统用户 不能登录系统 uid 1-999 centos7,uid 1-499 centos 6
登录用户 可以登录 uid 1000-65535 centos7,uid 500-65535 centos6
linux中用户组的分类
管理员组 root 0
系统用户组 uid 1-999 centos7,uid 1-499 centos 6
登录用户组 uid 1000-65535 centos7,uid 500-65535 centos6
创建新用户
useradd shy

useradd的参数

-d 指定用户的家目录(默认在/home下)
-g 指定用户的组
-G 指定用户的附加组
-s 指定登陆后使用的shell
-r 创建一个系统组(系统用户)
useradd -r shy 创建一个系统用户,从999倒叙
useradd -s /sbin/nologin shy #创建普通用户,从1000开始升序
useradd -d /opt/shy #创建用户时,指定用户的家目录
useradd -u 3000 shy2 #指定uid创建用户
删除用户
userdel alex #仅删除用户
userdel -r alex #删除用户和加目录
ansible提供的user模块
(1)user模块的参数
group 组
groups 附加组
home 家目录
name 用户名
password 密码
shell 用户登录后使用shell
system 创建系统用户
uid 指定id创建用户
state 状态
remove 删除用户
(2)创建一个uid为4000,不能用shell登录的,指定用户的家目录,用户的附加组
ansible web  -m user -a 'name=ccc uid=4000 home=/opt/ccc groups=root shell=/sbin/nologin'
(3)删除用户(家目录不会删除)
ansible web -m user -a 'name=shy static=absent'
(4)删除用户(家目录也删除)
ansible web -m user -a 'name=shy static=absent remove=yes'

2.group

正常操作
创建用户组
groupadd shy
删除用户组
groupdel shy
查看用户组信息
tail -l /etc/group
ansible提供的group模块
(1)group模块的参数

gid 组的id
name 组名
system 系统组
static 状态
创建一个组名为shy的系统组
ansible web -m group -a 'name=shy system=yes'
删除组
ansible web -m group -a 'name=shy static=absent'
小练习

在web组中创建一个用户组shy1

ansible web -m group -a 'name=shy1'

在web组中创建一个用户组shy2

ansible web -m group -a 'name=shy2'

把/etc/fstab文件复制到/tmp/f

ansible web -m copy -a 'src=/etc/fatab dest=/tmp/f'

安装nginx,并设置开机自启

ansible web -m service -a 'name=nginx enabled=yes'

三.ansible剧本

1.作用

当相同的任务多次执行时,将任务内容编辑到脚本中,以后执行时,执行脚本即可,节省时间

2.yaml编程语言

(1)作用

常用来写配置文件

(2)语法表示
字典的表示 key:value
列表的表示 -

注:后缀名.yaml或.yml

例:

name:shy
age:18
addr:heilongjiang
hobby:
- running
- skiing
- sleeping

注:yaml对语法要求十分严格(:后一定要有一个空格,=前后一定不能有空格)

(3)用yaml编写配置文件
 - hosts: web
tasks:
- name: creategroup
group: name=shy10
- name: createuser
user: name=user10

3.ansible-palybook模块 (用于执行.yml文件)

(1)ansiblepalybook的参数

-C, --check   # 检查,白跑,干跑
-f FORKS, --forks=FORKS #用来做并发
--list-hosts # 列出主机列表
--syntax-check # 语法检查
(2)检查文件的语法
ansible-playbook --syntax-check p1.yml
(3)跑一下配置文件试试(不产生结果)
ansible-playbook -C p1.yml
(4)真正的执行配置文件
ansible-playbook  p1.yml

注:执行顺序,从上往下执行

(5)特性

幂等性:不管执行多少遍,结果都是一样的

4.传参

(1)语法
- hosts: web
tasks:
- name: create{{ user }}
user: name={{ user}}
(2)传参方式
方式一
ansible-playbook -e 'user=shy11' p2.yml
方式二

修改/etc/ansible/hosts文件

[db]
192.168.107.132 user=shy12
192.168.107.133 user=shy13
方式三

修改/etc/ansible/hosts文件

[db:vars] #表示组的参数
user=shy14
方式四
- hosts: db
vars:
- user: shy15
tasks:
- name: create{{ user }}
user: name={{ user}}
方式五
- hosts: db
tasks:
- name: sum
shell: echo 7+8|bc
register: user
- name: createuser
user: name={{user.stdout}}
(3)bc模块(用于计算)
echo 3+4|bc #计算3+4
(4)传参优先级
-e > playbook > hosts

ansible(二)的更多相关文章

  1. Ansible二三事

    现在,慢慢测试一下ANSIBLE的功能,不过,总体感觉是,比SALTSTACK运行要慢,好像还有点点不稳定.... 但,在局域环境的表现,还是不错的... ~~~~~~~~~~~~~ 有几个小事要注意 ...

  2. ansible 二主机和组

    主机清单的管理 Ansible安装好之后的主机清单配置文件有如下两种: 1.yum安装,配置文件默认路径为: /etc/ansible/hosts 2.源码包安装,主机清单配置文件路径需要从软件包里面 ...

  3. Ansible(二) - 配置及命令简介

    Ⅰ. Ansible Inventory Hosts文件配置 # mkdir /etc/ansible # touch /etc/ansible/hosts # cat /etc/hosts 127. ...

  4. Ansible Ubuntu 安装部署

    一.安装: $ sudo apt-get install ansible 二.配置: a.基本配置 $ cd /etc/ansible/ $ sudo cp hosts hosts_back 备份一个 ...

  5. Ansible学习笔记

    一.Ansible简介 Ansible是一种agentless(基于ssh),可实现批量配置.命令执行和控制,基于Python实现的自动化运维工具. 其特性有: ①模块化:通过调用相关模块,完成指定任 ...

  6. Ansible - 简介和应用自动化基础实践

    installAnsible简介和应用自动化基础实践 一.引入: 1.1  如官方定义,Ansible is The simplest way to automate apps and IT infr ...

  7. ansible 自动化运维

    Ansible 自动化运维 ansible安装epel #yum list all *ansible*#yum install *ansible*#yum info ansible#rpm -ql a ...

  8. ansible学习笔记一

    ansible学习笔记一 参考博客: ansible学习 - 51CTO博客 一.安装 1 .下载epel源 wget -O /etc/yum.repos.d/epel.repo http://mir ...

  9. Ansible基础入门

    1.1 Ansible是什么        随着移动互联.物联网.互联网+.大数据.云计算等大规模应用的催生推动,以及人们日常生活的互联网化,互联网的蓬勃发展不仅冲击影响着整个经济体,更对人们的生活理 ...

随机推荐

  1. 【record】10.2..10.9

    .

  2. JAVA自带API的压缩与解压

    Java API中的 java.util.zip.*;包下包含了Java对于压缩文件的所有相关操作.我们可以使用该包中的方法,结合IO中的相关知识,进行文件的压缩和解压缩相关操作. ZipFile j ...

  3. 5.1 入门整合案例(SpringBoot+Spring-data-elasticsearch) ---- good

    本节讲解SpringBoot与Spring-data-elasticsearch整合的入门案例. 一.环境搭建 新建maven项目,名字随意 pom.xml <parent> <gr ...

  4. Arcgis api for javascript学习笔记(4.5版本) - 本地部署及代理配置

    在开发过程中,由于api的文件比较多,没必要每个项目都将api加入到解决方案中.况且在VS中如果将api加入解决方案,在编写css或js代码时,由于智能提示需要扫描脚本等文件,会导致VS很卡.所以个人 ...

  5. Ubuntu不输入密码执行sudo命令方法介绍

    作为ubuntu等桌面系统,默认登录的帐号是没有root权限的,为了提升权限来执行任务,我们一般用到sudo+命令来执行,但是不难发现我们一般都要输入密码.那么有没有什么方法可以让我们执行sudo的时 ...

  6. HTML 基础知识(特殊字符的转义)

    1. body.head(meta) <body></body>标签的常见属性: bgcolor:整个页面的背景: text:设置文本颜色 link:设置连接颜色(),vlin ...

  7. 使用WPF创建画图箭头

    原文:使用WPF创建画图箭头 今天要给leader line画个箭头,所以就google一下,找到下面的文章,写的不错,可以实现我的需求,所以就摘录下来. 我把源代码中的arraw.cs加入到我的工程 ...

  8. toolbox、library 的组织

    不要重复制造轮子:重复利用已完成的函数: 1. 一个普通的 matlab toolbox bigData:规模较大的数据集: data:一般的数据集: demos:演示程序,直接可以运行: tools ...

  9. VC6下深入理解new[]和delete[](在多线程下new和delete的时候,必须选择上多线程库,不然可能造成进程崩溃)

    多少年了,一直处于C与C++混用的状态,申请空间一直用malloc,释放空间一直用free,为什么?因为他们好理解易操作,就如同输出一直用printf而不用<<,输入一直用scanf而不用 ...

  10. WPF 自定义的图表(适用大量数据绘制)

    原文:WPF 自定义的图表(适用大量数据绘制) 在WPF中绘制图表比较简单,有很多的第三方控件,但是在绘制大量数据的时候,就显得有些吃力,即便是自己用StreamGeometry画也达不到理想的效果, ...