一、ansible中的File模塊
file模塊是對文件進行的操作
file模塊的一些參數 group #文件的屬組 mode #文件權限 owner #文件屬主 path #文件路徑 state directory 目錄 file touch 空文件 absent 刪除 link 軟連接 hard 硬鏈接 例子: ansible all -m file -a "path=/IT state=directory owner=it" 創建IT目錄,並制定屬主是it ansible all -m file -a "path=/tmp/IT.txt state=touch mode=777" 創建文件IT.txt 並指定權限 ansible all -m file -a "path=/tmp/cron src=/var/log/cron state=link" 創建軟連接,連接是自己本機的文件前面的path是連接存放地址,后面的src是源文件地址 ansible all -m file -a "path=/tmp/cron state=absent" 刪除軟連接 ansible all -m file -a "path=/IT state=absent" 刪除文件夾
補充知識
軟連接 快捷方式 ln -s 源文件修改軟連接修改 源文件刪除軟連接失效 可以跨分區
硬鏈接 硬盤的位置 ln 源文件修改硬鏈接修改 源文件刪除硬鏈接不變 不可以跨分區
復制 開辟新空間 cp 源文件修改cp的不變 源文件刪除不變 可以跨分區
二、ansible中Fetch模塊
拉取遠程主機的文件,並以主機IP地址或者主機名為目錄,並保留了原來的目錄結構
dest 目標地址 src 源地址 ansible all -m fetch -a "src=/var/log/cron dest=/tmp" 將所有被控機下 /var/log/cron 拉取到主控機下的 /tmp 下
三、ansible中Yum模塊
1.yum和rpm有什么關系,區別是什么
yum的底層是rpm來執行的
區別:
yum自動解決依賴關系,rpm需要手動解決依賴關系
2.被控機的yum源怎么配置
我們要在其他的被控機器上比如安裝redis怎么辦
首先要將管控機上的yum的epel源復制到被管控機上 ansible all -m copy -a "src=/etc/yum.repos.d/epel.repo dest=/etc/yum.repos.d/epel.repo" 第二步在管控機上執行 yum.repos.d]# ansible all -m yum -a "name=redis"
第一步執行完就相當於配置完了被控機的epel源,然后執行第二部就安裝完事了
我們可以打開主控機中的 vi /etc/yum.repos.d/epel.repo 文件看下里面有啥,你會發現這幾行代碼:
[epel] #名稱 name=Extra Packages for Enterprise Linux 7 - $basearch #全名或者描述信息 baseurl=http://mirrors.aliyun.com/epel/7/$basearch # 源url地址 failovermethod=priority enabled=1 #是否啟用,1啟用,0不啟用 gpgcheck=0 #是否檢驗key文件,0不校驗 1校驗 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
那么,yum模塊怎么安裝包組呢????
先看下有哪些參數:
disablerepo #禁用某個源 enablerepo #啟用某個源 name #包名 state install #安裝 remove #卸載 ansible web -m yum -a "name=python2-pip" #安裝軟件包 ansible web -m yum -a "name=python2-pip,redis" #安裝多個包 ansible web -m yum -a "name='@Development Tools'" #安裝開發工具包組 ansible web -m yum -a "name=nginx state=absent" #卸載 安裝完成后可以執行 yum grouplist #查包組信息
四、Pip模塊
先來熟悉下pip的命令
pip freeze > a.txt # 導出本地環境,當然我的名命有問題隨便命名的 pip install -r a.txt #安裝導出的所有的包 pip uninstall 包名 #卸載
pip模塊的參數
chdir #切換目錄
name #包名
requirements #導出的文件
virtualenv #虛擬環境
五、Service模塊
Linux服務的命令是這樣的
Linux服務命令 服務啟動命令 centos 7 systemctl start redis centos 6 service redis start 開機自啟動 centos 7 systemctl enaable redis centos 6 chkconfig redis on
以及一些默認端口號
ssh 22 http 80 https 443 mysql 3306 redis 6379 mongodb 27017 oracle 1521 tomcat 8080 windows 遠程桌面 3389 ftp 20 21 django 8000 flask 5000
Service模塊一些參數
enaled #開機啟動
name #服務名稱
state
started #啟動
stopped #停止
restarted #重啟
reloaded #重載(平滑重啟)
use 啟動的用戶
用法舉個栗子
ansible all -m service -a "name=redis state=started" 將redis服務啟動 ansible all -m service -a "name=redis state=stopped" 將redis服務關閉 ansible all -m service -a "name=redis enabled=yes" 設置開機自啟動
六、cron定時任務模塊
模塊參數
day #天
disabled #禁用crontab,表現形式加#
hour #小時
job #任務
minute #分鍾
month #月
name #名字,任務描述
user #用戶
weekday #周
任務名字name必須不同否則不會執行,如果不加name默認為None
使用方法舉個栗子
ansible all -m cron -a "minute=12 name=touchfile job='touch /tmp/IT.txt'" 創建文件 ansible all -m cron -a "name=touchfile state=absent" 刪除任務 ansible all -m cron -a "minute=12 name=touchfile2 job='touch /tmp/IT2.txt' disabled=yes" #注釋 ansible all -m cron -a "name=None state=absent" 刪除名稱為空的計划任務
七、User模塊
linux命令關於user的
-d 設置用戶家目錄 useradd -d /opt/alex2 alex2 -g 設置用戶的屬組 useradd -g alex2 alex3 -G, --groups 附加組 useradd -G alex2,root alex4 -r, --system 系統賬號 useradd -r alex5 # 系統賬號沒有家目錄 -s, --shell #設置用戶登錄后的shell useradd -s /sbin/nologin alex8 -u, --uid UID #設置用戶的id useradd -u 2000 alex9 設置了用戶的id以后,在設置用戶則從最大的id開始往后數 用戶分類 超級管理員 root 0 普通用戶 系統用戶 啟動一些服務或者進程,不能登錄 1-999 centos7 1-499 centos6 從大到小 登錄用戶 可以登錄的用戶 1000-65535 centos7 500-65535 centos6 從小到大 userdel userdel alex8 默認不刪除家目錄 -r 刪除用戶的家目錄 userdel -r alex9 刪除用戶並刪除用戶的家目錄
User模塊的一些參數以及用法例子
group #屬組
groups #附加組
home #設置家目錄
name #用戶名
remove #刪除用戶並刪除用戶的家目錄
shell #用戶登陸后的shell
system #系統用戶
uid #用戶id
ansible web -m user -a "name=alex10 shell=/sbin/nologin home=/opt/alex10 uid=3000 groups=root" #創建用戶,並指定用戶的shell,家目錄,uid,以及附加組 ansible web -m user -a "name=alex11 shell=/sbin/nologin home=/opt/alex11" ansible web -m user -a "name=alex12 system=yes" #創建系統用戶 ansible web -m user -a "name=alex12 state=absent" #刪除用戶,單不刪除家目錄 ansible web -m user -a "name=alex11 state=absent remove=yes" # 刪除用戶並刪除用戶的家目錄
八、Group模塊
Linux關於組的命令
groupadd -g 設置id -r 系統組 超級管理員組 root 0 普通組 系統組 1-999 centos7 1-499 centos6 從大到小 登錄用戶組 1000-65535 centos7 500-65535 centos6 從小到大 查看 tail /etc/group groupadd -g 3000 wusir10 groupadd -r wusir11
Group模塊
gid 組id system 系統組 name 名稱 ansible web -m group -a "name=wusir10 system=yes gid=5000" 創建系統組 ansible web -m group -a "name=wusir11" 創建普通的組 ansible web -m group -a "name=wusir11 state=absent" #刪除組